/devex

Git codebase visualization. Development experience insights.

Primary LanguageGoMIT LicenseMIT

Collects and visualizes code repository data.

Visualizations

Code changes per month

Shows "hot" packages and files.


Screenshot of Flipper iOS and Android codebase visualization. This filter applied

Helps to compare project changes distribution. Illustrates:

  • Active development.
  • Bottleneck files.

File sizes tree map

Helps to compare projects code base size and organisation. Illustrates:

  • Different code lines per task ratio (see example).
  • "Big ball of mug" files and packages.


Screenshot of Flipper iOS and Android codebase visualization. This filter applied

Last year contribution

Helps to know the contributor of specific packages and shows the bus factor (notice splitting).


Screenshot of Flipper Android codebase visualization. This filter applied

Commit messages and files content

Helps to visualize file fix rate, some notes, or specific content (try money,billing,order).


Screenshot of Flipper iOS and Android codebase visualization. This filter applied


Screenshot of Flipper iOS and Android codebase visualization. This filter applied

Notes:

  • Use Commit graphs filters and File content graphs filters settings.
  • Use -tags="custom,content,tag" flag in new cli command to customize file content indexing.

Dependency chart

Compares module size with dependents count.


Screenshot of Black codebase visualization. This filter applied

  • Only Go and Python are supported.
  • Line color - connection with the same color module imported.

Why

Just for fun and...

It helps:

  1. Quickly introduce newbies into the codebase using files and contributors visualization.
  2. Enrich your tech debt-fighting plan with problems places visualization.
  3. Compare different teams' cognitive loading in lines of code.
  4. Quickly get insights on important packages to ask for details (consultants and mentors option).

Disclaimer

  1. Huge files or a thousand package line changes per month are issues, but not in all cases.
  2. These visualizations can not be used alone. You should combine it with performance metrics, error logs, linter issues, code coverage, and survey results.

Installation

Go way (for golang devs)

go install github.com/rusinikita/devex@lates

Brew (Mac OS)

brew tap rusinikita/tap
brew install rusinikita/tap/devex

Binaries

Place the latest release binary in PATH folder.

apt/yum package managers (Linux)

If you are interested in it, please let me know in this issue.

How to use

  1. devex new {{project slug}} {{path}} - it will put project data into devex.db
    • Repeat that step onto other projects now or later.
  2. devex server - it will start single page server

If you have any questions, please ask and provide feedback on issues.