JUnit’s evolving structure

JUnit’s evolving structure. Edmund Kirwan traces JUnit’s increasing code interdependencies. From early simplicity:

To increasing tangles:

I am thinking a lot about code architecture right now and trying to learn best practices for building structures that can scale over time. This is a huge topic that a lot of smart people have strong feelings about– when I read about it I often come upon vast areas I didn’t even know existed and it is easy to suddenly feel small and anxious, like people will judge me for not knowing how to do all of it. So I am appreciating this critique as much for the critical analysis as for the obvious love and admiration the writer has for the JUnit developers. I don’t know enough yet to evaluate the actual critiques, even!


Programmers should be forced to wear their systems’ package-structures on their tee-shirts.

Practice radial encapsulation.

JUnit is a masterpiece.