Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Primer on the 4 Rules of Simple Design
Search
Marty Haught
September 15, 2016
Technology
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Marty Haught
See All by Marty Haught
Baltic_Ruby_Keynote_2025.pdf
mghaught
0
130
State of RubyGems 2024
mghaught
0
290
Interviewing Developers - Boulder Ruby May 2018
mghaught
1
160
The Prototyping Mindset - Devoxx.us 2017
mghaught
0
220
Make Better Decisions
mghaught
0
210
Make Better Decisions
mghaught
0
52
Ruby Community: Awesome; Could be Awesomer
mghaught
2
310
Ruby Community: Awesome; Could be Awesomer
mghaught
4
210
Other Decks in Technology
See All in Technology
AIネイティブ企業への変革。パーソルキャリアが挑む「データメッシュ×ガバナンス」のアーキテクチャ戦略
techtekt
PRO
0
120
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
180
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
220
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
150
野蛮なアジャイル [サイボウズ発!]組織の常識を覆した反骨のスクラム実践記 / Barbaric Agile - Enterprise Agile Study Group
ama_ch
0
120
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
150
Steerable Visual Representations
sansantech
PRO
0
150
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
290
僕のハーネスを紹介します
watany
5
1.4k
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
230
データエンジニアの次の戦場は "プロセスエンジニアリング"
sansantech
PRO
1
150
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
670
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
My Coaching Mixtape
mlcsv
0
360
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Practical Orchestrator
shlominoach
192
12k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
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