Convier is a free-to-use data fusion and analysis platform for high-performing teams and individuals. We’re still in private beta, but if you want t

Codebase investigations with Convier

submited by
Style Pass
2022-09-26 18:00:34

Convier is a free-to-use data fusion and analysis platform for high-performing teams and individuals. We’re still in private beta, but if you want to try it out, go to https://convier.no/#/beta. This post takes a quick look at how we use it to find and fix problematic paths in our codebase.

At Convier, we strive to keep our code base clean and easy to work with to ensure maximum development throughput. Next to a solid suite of unit tests with good coverage to support refactoring, a good code base needs to ensure the principle of separation of concerns, where the different components know as little as possible about each other.

As our product grows faster and faster, it’s easy for things to slip. A messy call graph with links back and forth across the code base can help identify where things have gone awry, but they get huge. We have recently started to ingest call graphs (generated using java-callgraph) into the platform to identify and remove problematic code paths between pairs of classes or methods. Our path search capability traverses large graphs on commodity hardware in near real-time. This helps us identify code paths that should be refactored and saves us massive amounts of time scanning through code references.

A recent example of this comes from when we looked into code paths leading to the code that connects to external SQL databases (ExternalDataStoreSql). We pulled all directed paths between the server main class and this class using our path graph search:

Leave a Comment