CodeSee for Self-explanatory Codebases

Lalitha
2 min readNov 3, 2021

As a developer, most time consuming task for me in any new teams was to understand the existing codebase and it’s dependencies. How I had helplessly wondered many times that the codebase was more readable and documentation was updated. While this is not uncommon situation for anyone working in technology space, unless you are really lucky to be always working in greenfields or you are the one maintaining it.

The wait seemed to be nearly the end when I came across CodeSee. Yes, it’s possible to graphically represent codebases using the tool. With the emerging technology, there has always been new frameworks surfacing to increase efficiency and performance of code. However, CodeSee has its unique space in increasing new starter’s efficiency by speeding up understanding of existing codebase in team.

How it works

CodeSee maps are editable, graphical representation of the dependencies within the codebase.

To generate CodeSee maps, there are 2 prerequisites:

  1. Creating CodeSee account
  2. Linking it to GitHub actions

For more details on setting up Github refer to https://docs.codesee.io/en/latest/installation/

The generated maps looks similar to database ER diagrams, with difference being the repository lists call-tree at file level.

One of the caveat to mention is about the languages supported by CodeSee. Though support is limited to Go, Java, JavaScript, python and typescript. Since it’s early days, would expect CodeSee to expand the list of languages supported.

Example

Once you have done the set-up and linked to Java repository, maps are generated in CodeSee at folder and file level. Here’s map from one of the repository.

Codebase repository map

It’s quite handy to add markdown to README for the architectural diagram reference too.

Custom CodeSee map link

This link is linked to the specific map in CodeSee account which is associated with the repository.

References

CodeSee Documentation — https://docs.codesee.io/en/latest/guide/

Reference usage as Github actions

--

--