Chapter 13. Accommodating Change

Some problems become most apparent when you try to change your code. (Most of the other smells we’ve discussed can be detected by looking at the code statically.)

Ideally, one changed decision affects one place in the code. When it doesn’t work out that way, it’s a sign of duplication in the code.

Addressing these smells has a side benefit: Many times it makes the code easier to test.

In this chapter we’ll cover the following smells:

Divergent Change, in which a class or module changes too frequently

Shotgun Surgery, in which a simple change causes change everywhere

Parallel Inheritance Hierarchies, in which changes to one hierarchy must mirror changes to another

Combinatorial Explosion, in which a ...

Get Refactoring in Ruby 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.