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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Adam Wathan
July 25, 2018
Technology
660
3
Share
Resisting Complexity
Adam Wathan
July 25, 2018
More Decks by Adam Wathan
See All by Adam Wathan
Curing the Common Loop
adamwathan
21
5.7k
Applying the Rules of Simple Design
adamwathan
3
700
Decoupling Packages From Your Framework
adamwathan
7
890
TDD: The Good Parts
adamwathan
16
2.8k
TDD: The Good Parts
adamwathan
4
170
Other Decks in Technology
See All in Technology
カオナビに Suspenseを導入するまで / The Road to Suspense at kaonavi
kaonavi
1
450
20260516_SecJAWS_Days
takuyay0ne
2
360
ワールドカフェ再び、そしてゴール・ルール・ロール・ツール / World Café Revisited, and the Goals-Rules-Roles-Tools
ks91
PRO
0
150
ServiceによるKubernetes通信制御ーClusterIPを例に
miku01
1
160
Oracle Cloud Infrastructure presents managed, serverless MCP Servers for Oracle AI Database
thatjeffsmith
0
260
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
200
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
250
(きっとたぶん)人材育成や教育のような何かの話
sejima
0
730
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
200
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
2
160
サンプリングは「作る」のか「使う」のか? 分散トレースのコストと運用を両立する実践的戦略 / Why you need the tail sampling and why you don't want it
ymotongpoo
4
170
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
220
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Building AI with AI
inesmontani
PRO
1
980
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
500
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
A designer walks into a library…
pauljervisheath
211
24k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
800
Into the Great Unknown - MozCon
thekraken
41
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Abbi's Birthday
coloredviolet
2
7.5k
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