axelson

axelson

Scenic Core Team

DepViz - A visual tool to understand inter-file dependencies

Hi everyone :wave:

I’ve always wanted a tool to better visually understand inter-file dependencies in Elixir projects to help me reduce compilation dependencies (and hence, reduce recompilation times), but none existed so I wrote my own! As part of my Code BEAM BR talk I’d like to release the tool.

Try it online at: https://depviz.jasonaxelson.com/

Or view the code:
https://github.com/axelson/dep_viz

This is what it looks like when you view a project:

It can highlight dependencies of a given file:

It can also highlight the files that depend on the given file at compile time:

To better understand how to use the tool, watching parts of my Code BEAM BR will likely be helpful:
https://www.codebeambr.com/video/12

Who is it for?

Any elixir developer that wants to better understand (and hopefully reduce!) the inter-file dependencies of their project.

Acknowledgements

I’d like to thank my wife for helping me with the design, along with @rodrigues and members of the Elixir Hawaii community for providing valuable feedback during the initial design and development.

I hope this tool can prove helpful to people!

Most Liked

josevalim

josevalim

Creator of Elixir

This is awesome! Great job @axelson and everyone involved!

axelson

axelson

Scenic Core Team

My Code BEAM BR talk about DepViz was posted semi-recently. In it I give an overview of DepViz and talk about what causes applications to have lots of compile-time dependencies:

https://www.codebeambr.com/video/12

FYI, the talk is in English :blush:

tomekowal

tomekowal

This looks fantastic!

Did you see the talk by Rafał Studnicki about similar topic? https://www.youtube.com/watch?v=LkGx33Suzsk He does a very similar thing but uses different visualization method.
The idea is that all files are on a big circle sorted by module name. This makes closely connected files appear together (because they share the same prefix MyApp.MyContext…).

This also means that places or files do not change that much when you add new ones.

I wonder if it would be possible to use your tool which has more functionalities but with visualisation method proposed by him?

Where Next?

Popular in Discussions Top

scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 20046 166
New
Crowdhailer
I’ve been hearing much about the new formatter and it’s something I have been keen to try. I find examples buy far the most illuminating...
248 19740 150
New
tmbb
This is a post to discuss the new Phoenix LiveView functionality. From Chris’s talk, it appears that they generate all HTML on the serve...
342 18584 126
New
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40042 209
New
lucaong
Hello Elixir and Nerves community, I have been working for a while on an open-source embedded key-value database for Elixir, that I call...
230 14350 124
New

Other popular topics Top

baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement