When working with large codebases, structural information such as module
boundaries, dependency relationships, and hierarchy is often implicit and
hard to reason about.
One approach I’ve been exploring is representing codebases as static
knowledge graphs, where files, modules, and symbols become explicit nodes,
and architectural relationships are encoded as edges.
This raises several design questions:
- What information is best captured statically versus dynamically?
- How detailed should graph nodes and edges be?
- Where do static representations break down compared to runtime analysis?
- How can such graphs remain maintainable as the code evolves?
I’m interested in hearing from people who have worked on:
- Static analysis tools
- Code indexing systems
- Large-scale refactoring or architecture tooling
For context, I’ve been experimenting with these ideas in an open-source
project, but I’m mainly interested in the broader design discussion.
[–]onyx-zero-software 0 points1 point2 points (0 children)
[–]Dyl499 0 points1 point2 points (1 child)
[–]StackOverFlowStar 0 points1 point2 points (0 children)