Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New graph: File system view combined with dependency information. #45

Open
achtelik opened this issue Aug 1, 2023 · 1 comment
Open
Labels
enhancement New feature or request

Comments

@achtelik
Copy link
Contributor

achtelik commented Aug 1, 2023

We are currently using the "Clean Architecture" (https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) in our projects, combined with the idea of a "Modulith" (multiple packages on the top level for different domains/features).

It would be fantastic to have a graph that provides an overview of this structure and shows the dependencies between the modules, including any circular dependencies.

I believe a graph that combines the file system view with the dependency information would be ideal for this use case.

To give you an idea of what we are looking for, it should look something like this:
image

What are your thoughts on this? I will try to create a prototype, but perhaps for someone else, this could be an easy task. :D

@achtelik achtelik added the enhancement New feature or request label Aug 1, 2023
@glato
Copy link
Owner

glato commented Aug 15, 2023

@achtelik Sorry for the delay, I was on vacation for ~ the last two weeks. Interesting graph, to generalize a bit: the idea would be to create a variant of the filesystem graph (as I understand from the given structure: "module1" is a directory that contains subdirectories "core", "dataproviders" and "entrypoints") which can be enriched by an additional dependency visualization. One dependency (shown as a directed edge) from a directory path p1 to p2 (e.g. "root/module1/core" to "root/module2/core") is shown if and only if there is an import dependency from at least one file f1 in p1 (e.g. "root/module1/core") to at least some other file f2 in p2 (e.g. "root/module2/core"), is that correct?

I guess such a visualization can be implemented by creating a complete new graph type, calculating the whole new graph structure as described above (if understood correctly) and simply rendering it in a similar way that graphs are rendered in emerge.

Some questions:
a) Would such a graph not be showing any files at all?
b) Would it make sense to also show dependencies from all directory paths to potentially all others (e.g. in the example above showing a dependency from "root/module1" to "root/module2" or would it only make sense to be strict about only showing dependencies if there is actually at least one file in the current directory)

Could you give me some short feedback if I understood the idea?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants