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
Resisting Complexity
Search
Adam Wathan
July 25, 2018
Technology
3
580
Resisting Complexity
Adam Wathan
July 25, 2018
Tweet
Share
More Decks by Adam Wathan
See All by Adam Wathan
Curing the Common Loop
adamwathan
22
5.4k
Applying the Rules of Simple Design
adamwathan
3
630
Decoupling Packages From Your Framework
adamwathan
7
830
TDD: The Good Parts
adamwathan
16
2.7k
TDD: The Good Parts
adamwathan
4
130
Other Decks in Technology
See All in Technology
Новые мапы в Go. Вова Марунин, Clatch, МТС
lamodatech
0
1.9k
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
720
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
4
650
開発者とQAで協業するテックタッチの取り組み
shutty
0
100
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
630
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
1
550
Simplify! 10 ways to reduce complexity in software development
ufried
1
240
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
600
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
200
Databricksで完全履修!オールインワンレイクハウスは実在した!
akuwano
0
150
MCPを理解する
yudai00
14
9.8k
OPENLOGI Company Profile
hr01
0
63k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
172
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Writing Fast Ruby
sferik
628
61k
Six Lessons from altMBA
skipperchong
28
3.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
Transcript
Resisting COMPLEXITY with Adam Wathan
None
None
$gardener = new Gardener; $gardener->water($plant);
None
const names = ['Blair', 'Sam', 'Kelly'] names.reverse() // ['Kelly', 'Sam',
'Blair']
const names = "Blair, Sam, Kelly" names.split(', ')
// ['Blair', 'Sam', 'Kelly']
$date = new DateTime; $date->format('l'); // 'Wednesday'
$gardener->water($plant);
A CAN A GARDENER WATER PLANT. $gardener->water($plant);
A CAN A {OBJECT} {METHOD} {PARAMETER.} ( ) $object->method($param);
A CAN ARRAY REVERSE names.reverse() N
A CAN A STRING SPLIT DELIMITER. names.split(', ')
None
A CAN A STRING SPLIT DELIMITER. names.split(', ')
A CAN A STRING SPLIT DELIMITER. names.split(', ') BE USING
A CAN A {OBJECT} {METHOD} {PARAMETER}. object.method(param) BE USING (
)
METHODS ARE Affordances
None
A CAN A {OBJECT} {METHOD} {PARAMETER}. object.method(param) BE USING (
)
A CAN A STRING SPLIT DELIMITER. names.split(', ') BE USING
A ARRAY names.reverse() N CAN REVERSED BE
A CAN A DATE FORMATTED FORMAT STRING. $date->format('l'); BE USING
A CAN USER SAVED. $user->save(); BE
None
A CAN A {OBJECT} {METHOD} {PARAMETER}. $object->method($param); BE USING (
)
A CAN A GARDENER WATERED PLANT. $gardener->water($plant); BE USING
None
A CAN A GARDENER WATERED PLANT BE USING
A CAN PLANT WATERED BE
$gardener = new Gardener; $gardener->water($plant);
$plant->water();
AGENT NOUNS Eliminating
a·gent noun /ˈājənt noun/ a noun denoting someone or something
that performs the action of a verb, typically ending in -er or -or, e.g., worker, accelerator.
ENCAPSULATION Promoting
CONQUERING YOUR Fear of Facades
$date = new DateTime('now', 'America/Chicago'); $date->format('Y-m-d H:i'); // 2018-07-25
09:00 $date->setTimezone('Australia/Sydney'); $date->format('Y-m-d H:i'); // 2018-07-26 00:00
MATTER Ergonomics
PUSH SIDE WORK TO Event Listeners
GOD OBJECTS Breaking up
NEW CONCEPTS Uncovering
FUNCTION Maybe you just need a
Thanks! @adamwathan https://adamwathan.me