Conf42: Golang 2021

...

Using Arch-Go to continuously test the quality of our architecture

Francisco Daines
Senior Software Developer @ Walmart

Francisco Daines's LinkedIn account Francisco Daines's twitter account


In every product, we start by defining architectural guidelines and code conventions, but the hard part is to check if the code adheres to these definitions over the time. Arch-Go is a testing tool that can be included as part of the CI pipeline to continuously verify our architectural guidelines.

Most authors defines software architecture as a set of important decisions which are hard to change. If we are working in a software artifact, then these decisions are represented as architectural guideline, because of that it’s very common to talk about some unwritten rules like “Don’t call repository components from components in the presentation packages”, or “prefer the use of structs over too many parameters or return values in functions/methods”. We can check this kind of rules as part of a code review process, but as this is manual, is errors-prone, then is possible to pass this quality-gate and push code into our master branch that breaks our guidelines, so we need a way to automatically check if our code adheres to these rules.

This talk is about Arch-Go, a testing tool which provides a simple way to document the architectural guidelines and checks if our Go code complies with those rules as part of a continuous integration pipeline. We will review why we need to check architecture quality and how Arch-Go can help us to automate it.

Awesome conferences for

Priority access to all content

Community Discord

Exclusive promotions and giveaways