Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 1.03 KB

the_four_elements_of_simple_design.mm.md

File metadata and controls

35 lines (27 loc) · 1.03 KB

The Four Elements of Simple Design

Long-term erosion of our capacity to deliver features

Elements

Passes its tests

Nothing else matters if the system behaves incorrectly

If not interested, throw it away

In the green bar we have confidence in changing the system

Minimizes duplication

Duplicate code in order to make a new test pass,

then immediately remove most of that duplication

Maximizes clarity

Extract common code in foo() in order to remove duplication

Find suitable name
Move in the correct place

Has fewer elements

Creating little things with new foo() code

Looking for cohesive bundles
Remove when become obsolete

Order

Matter

Removing duplication and improving clarity in small cycles creates a dynamo that drives simple design

Passes its tests is routine

Clarity Is Unclear

Duplication is objective

Clarity is subjective

Focus on removing duplication over improving clarity

Improving names to improving clarity