by Leon Rosenshein

Visualizing Code

Code is complex. Understanding complex code is either complex squared or complex to the power of complex, and I lean towards the latter. So what's a developer to do? I've thought about this on and off for a while now, and one of the best descriptions of how I "see" big projects is described in this blog post.

Using those metaphors, I'm definitely a mapper, with some packer thrown in for the little nuggets of things that don't fit onto. I also like the idea of merging the spatial relationship of the code with the temporal. For me it helps with the mapping of the physical (code files) into the virtual space (mental model) and the domain space.

The visualizations in the blog speak to me, and I really want to try out the tool, but the tool isn't open source yet, and at this point I'm afraid it never will be :( The tool for visualizing concurrency was finally open sourced, so there is hope.

Meanwhile, how do you get a feel for big new codebases?