DEV Community

Cover image for Introducing Go-Architect
Francisco Daines
Francisco Daines

Posted on

Introducing Go-Architect

Summary

In this article, I will introduce you to a tool called Go-Architect, we will see its main features and how it can be used to analyze the architecture of a project in Go language.

TL/DR

You can find the complete project documentation at https://go-architect.github.io/

What is Go-Architect?

Go-Architect is a Software Architecture Analysis Tool for projects written in Go language. You can use this tool to analyze the design of your artifacts in order to ease decisions related to refactoring your code, fixing issues or evolving the artifact's features.

Go-Architect First View

Why we should use an Architecture Analysis Tool?

Software Architecture Analysis Tool are used to improve quality and maintainability of software architectures.

There are some benefits for using this kind of tools, like:

  • Early Detection of Design Flaws: Architecture analysis tools can help identify design flaws, inconsistencies, or violations of architectural principles before they become critical issues, saving time and resources by addressing problems when they are easier and cheaper to fix.
  • Quality Assurance: These kind of tools can enforce best practices, coding standards and clean architecture concepts, ensuring that the software architecture adheres to established guidelines.
  • Enhance Maintainability: Ensuring that our architecture adheres to established architectural guidelines over time.
  • Architectural Evolution Analysis: This tools offers several ways to analyze (in different ways) the changes in software architecture over the time.

Features

Go-Architect Provides the following set of analysis tools.
Analysis Tools

Project Metrics

This Tool display common metrics used to have a quick idea of the size and complexity of our project.
Project Metrics Tool

Dependencies Graph

The Dependency Graph is a visual representation that illustrates the relationships and dependencies between packages in a software artifact. It helps developers and maintainers understand packages relations, which is crucial for managing and building complex software projects.
Dependencies Graph Tool

Dependency Structure Matrix

The Dependency Structure Matrix (DSM) Tool is a graphical representation used to visualize and analyze dependencies between packages in a Project.
Dependency Structure Matrix Tool

Instability & Abstractness

The Instability v/s Abstractness Graph is a powerful tool used to analyze how maintainable, flexible, and easy to understand is an artifact.
Instability and Abstractness Tool

Dependency Coupling Analysis

Dependency Coupling Tool helps us to detect how coupled is our artifact with a specific dependency, that can be an internal, same organization, external or a standard package.
Dependency Coupling Tool

VCS Analysis

This tool is focused on analyze the VCS history of the artifact, displaying some information about contributions and changes over packages/files in the artifact.
VCS Analysis Tools

Installation

Requirements

Installation Process

At the moment, installing Go-Architect can only be done manually, by executing the following commands:

git clone https://github.com/go-architect/go-architect
cd go-architect
make install
Enter fullscreen mode Exit fullscreen mode

Conclusion

In this article, we have explored the basics of Go-Architect, an Architecture Analysis Tool for Go projects that can be used to improve maintainability, detect design flaws and ensure quality in your project.

You can find the project documentation at https://go-architect.github.io/

Top comments (0)