Write Better Java Project
Tags: java, beginners, productivity, watercooler
Published: 2021-07-20 14:10:27

# Introduction

When we first started our coding journey. The program used to be short. The compiler was enough to know all the technical errors and warnings. We go on to solve those errors.

As we kept on learning and developing projects. The codebase was getting larger, the complexity increases. It becomes hard to keep up with the code quality and code structures. 

Now the compiler can only show code errors but as a whole project was unable to provide any data.
In such a case a program that can detect errors in the whole package can be very handy. So one such tool is Jarchitect.

# What is Jarchitect?

[Jarchitect](https://www.jarchitect.com/) is a software for analyzing the Java-based project developed by CodeGear in 2009. It was intended to help developers to create a better project by providing different statistics and metrics.

![Jarchitect](https://paper-attachments.dropbox.com/s_FD83CA05E4BCD846F3B1797E9CD3AF5F3B8D0C7F77F0A66004462BB887D17B63_1625812508040_transparentlogo.png)


The software is efficient in providing statics about the project. It supports a large number of metrics with visualization of dependency with dependency graphs and matrix graphs. It provides code quality with pre-defined quality metrics.

# Features
- **Code Querying**: You can write the custom query to check for different conditions and can perform actions accordingly. It uses CQLinq for queries.
- **Quality Gates**: A quality gate is various check son the code to determine the overall quality of the software. It can fail a build if certain criteria do not meet.
- **Issue Management**: There can be a number of issues that are detected by the software. It has an issue management panel that helps you to manage your all issue in one place.
- **Code Quality Metrics**: It comes with code quality metrics that measure the quality of code. The number of lines in a code is one of the measures of code quality. Jarchitect comes with 80+ metrics.
- **Plugin Interaction**: The data extracted by Jarchitect can be more useful with the integration of plugins.
- **Diagrams**: It provides graphs to show statistics. 
- It shows the following graphs:
    - Treemap Metrics
    - Dependencies Matrix
    - Dependencies Graph
    - Abstractness vs Instability

You can check more features and read in detail about listed features [**Here**](https://www.jarchitect.com/features).

# PROS
- **Useful Metrics**: It provides many useful metrics that can be used to improve the software and code quality.
- **Easily Query through Data**: You can query through the data to perform conditions on extracted data.
- **Many types of data**: There are many metrics and are indifferent formats such as string, graphs, diagrams, etc.


![](https://paper-attachments.dropbox.com/s_FD83CA05E4BCD846F3B1797E9CD3AF5F3B8D0C7F77F0A66004462BB887D17B63_1626688421879_dashboard.png)

# CONS
- **UI/UX**: The UI felt very old. It will take some time to be used to the interface as many panels are displayed on the screen at a time.
![](https://paper-attachments.dropbox.com/s_FD83CA05E4BCD846F3B1797E9CD3AF5F3B8D0C7F77F0A66004462BB887D17B63_1626688438918_jarchitectscreenshot.jpg)

# Conclusion

[The software](https://www.jarchitect.com/GettingStarted) is good for finding issues and errors in the project. It has some useful data such as technical debt, code quality, etc. But due to bad UI, it makes it harder to notice all the usage metrics. Some are lost and some are hidden. Also, the pricing can be an issue for individual developers, especially with newbies.

It has a [14-day free trial](https://www.jarchitect.com/download), I highly recommend you to try it once and find if it is useful for you.


# Last Note

*Thanks for reading the blog post. One secret is that Jarchitect has approached me to write this review.*