Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Primer on the 4 Rules of Simple Design
Search
Marty Haught
September 15, 2016
Technology
0
41
Primer on the 4 Rules of Simple Design
A short introduction to the 4 Rules of Simple Design given at Boulder Ruby in 2015 and 2016.
Marty Haught
September 15, 2016
Tweet
Share
More Decks by Marty Haught
See All by Marty Haught
State of RubyGems 2024
mghaught
0
53
Interviewing Developers - Boulder Ruby May 2018
mghaught
1
100
The Prototyping Mindset - Devoxx.us 2017
mghaught
0
170
Make Better Decisions
mghaught
0
180
Make Better Decisions
mghaught
0
36
Ruby Community: Awesome; Could be Awesomer
mghaught
2
280
Ruby Community: Awesome; Could be Awesomer
mghaught
4
170
Other Decks in Technology
See All in Technology
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
340
OCI Security サービス 概要
oracle4engineer
PRO
0
6.4k
State of Open Source Web Mapping Libraries
dayjournal
0
240
フルカイテン株式会社 採用資料
fullkaiten
0
40k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
390
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
110
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
330
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
370
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
Platform Engineering for Software Developers and Architects
syntasso
1
470
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
1
1.5k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
140
Featured
See All Featured
KATA
mclloyd
29
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
GitHub's CSS Performance
jonrohan
1030
460k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Fireside Chat
paigeccino
33
3k
Ruby is Unlike a Banana
tanoku
96
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
43
2.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Transcript
Primer on the 4 Rules of Simple Design Marty Haught
@mghaught
Origin • Introduced by Kent Beck pre 2000 • via
Extreme Programming (XP) • Associated with “Do the simplest thing that could possibly work.”
Corey Haines http://bit.ly/4rules-boulderruby $11.99 • via Code retreats • Conway’s
Game of Life
The Rules 1. Tests pass 2. Expresses intent 3. No
duplication 4. Small
1. Tests Pass • Need to verify that your code/system
works • Automated tests are the fastest way to verify
2. Expresses Intent • Intention revealing • You can quickly
look at it and know what it does • Not bad naming, unclear or inaccurate • Does the method/variable match the language you use to describe it?
3. No Duplication • DRY - Don’t Repeat Yourself •
Commonly thought of as repetition in code structure (lines of code) • Also knowledge duplication • "Every piece of knowledge should have one and only one representation."
4. Small • No extraneous parts to the code •
Does everything there have a purpose? • Is it still being used? • Did I extract too far?
Resources • Corey’s Book: http://bit.ly/4rules-boulderruby • XP wiki: http://c2.com/cgi/wiki?XpSimplicityRules •
JB Rainsberger: http://www.jbrains.ca/permalink/ the-four-elements-of-simple-design