Shearing Layers


Shearing layers is a principle originally expressed for buildings: things that change at a different pace should be kept separate. Service like electrical wiring needs to be changed more often than the load-bearing structure, and load-bearing structure is expensive to change. If wiring is nested in the structure in such a way that changing a cable requires breaking a load-bearing wall, we end up with frequent expensive changes.

The same idea applies to software, as discussed by Brian Foote and Joseph Yoder in their essay Big Ball of Mud.

Continue reading “Shearing Layers”

Finding Zen Solutions to Problems

Can we derive a systematic procedure for finding high quality solutions to design problems?

I have so far given specific solutions to specific problems for illustration purposes but this website is not meant to be a recipe book; my goal is to give you the means of finding your own solutions to the problems you encounter in the course of your programmer’s life.

This is a rough outline of the process I use while programming.

Continue reading “Finding Zen Solutions to Problems”