Chapter 10. Evolving Frameworks

The preceding implementation patterns assume that changing code is cheap compared to understanding and communicating the intent of code. This has been true of most of my development experience. However, framework development, in which client code can’t be changed by the framework developers, violates this assumption. Changing the design of JUnit, for example, is generally easy to accomplish but can be very expensive to deploy if the host of downstream tool makers and test writers have to change their code as well. Incompatible updates are so expensive that we avoid such updates as much as possible.

When we released JUnit 4 recently we spent nearly half of our engineering budget on reducing the cost of deployment ...

Get Implementation Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.