

DHH demonstrates "Test Induced Design Damage" - _pius
https://gist.github.com/dhh/4849a20d2ba89b34b201

======
zenogais
The comment by ntl more or less nails it.

This example is contrived at best and intellectually dishonest at worst. These
kinds of patterns simplify applications with complex business logic. They
complicate applications with straightforward business logic - much in the same
way having more equations than variables makes a system of linear equations
overdetermined.

These patterns exist to help domains with complex use cases test the business
logic - which is likely to be tricky and filled with edge cases - quickly and
and in a distraction free layer apart from the rest of the supporting
infrastructure (eg. models, views, and controllers). This narrows developer
focus to a single level of abstraction so they can solve the hard problem at
hand. These patterns then provide an integration path for reintroducing the
rest of the infrastructure (eg. dependency injection, etc).

