$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Always default to false - Paul Grayson
Search
Las Vegas Ruby Group
January 29, 2014
0
70
Always default to false - Paul Grayson
Las Vegas Ruby Group
January 29, 2014
Tweet
Share
More Decks by Las Vegas Ruby Group
See All by Las Vegas Ruby Group
Ruby ISO Standard - David Grayson
lvrug
0
140
Windows Automation - Howard Feldman
lvrug
0
79
Separating Your Application from Rails - Brian Hughes
lvrug
0
130
SWIG and Ruby - David Grayson
lvrug
0
85
Practical Object-Oriented Design in Ruby - Charles Jackson
lvrug
3
140
The Hamster Gem - Ryan Mulligan
lvrug
1
100
Varnish+Redis - Russ Smith
lvrug
1
110
Lambdas and Pops - Jan Hettich
lvrug
0
88
Making Good Use of Fonts - Russ Smith
lvrug
1
96
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
21
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
Rails Girls Zürich Keynote
gr2m
95
14k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
Site-Speed That Sticks
csswizardry
13
1k
Making Projects Easy
brettharned
120
6.5k
ラッコキーワード サービス紹介資料
rakko
0
1.8M
Leo the Paperboy
mayatellez
0
1.3k
Six Lessons from altMBA
skipperchong
29
4.1k
The Pragmatic Product Professional
lauravandoore
37
7.1k
KATA
mclloyd
PRO
33
15k
Transcript
Always default to false Paul Grayson Las Vegas Ruby User
Group 2014-01-29
Be opinionated! • There is a right way • Consistency
aids memory true false 1 exception 0 default
The default is already false or null in many contexts
Ruby: @var, if x, methods, [], etc. -> nil SQL: NULL Javascript: undefined C#/Java: bool/boolean defaults false Originates in digital circuits? - default is OFF
Options should be opt in ☐ YES, please add me
to your mailing list ✓
Fields, variables, conditionals # DO THIS: if on_mailing_list send_email end
# NOT THIS: if !on_mailing_list withhold_email end How would you even write that method? Body does not run by default
Be careful with true default <% if !out_of_stock %> <div
id="order_form"> ... </div> <% end %> Must remember to not put anything essential in here.
Emphasize connections def f if x exceptional_stuff else default_stuff end
more_stuff end The normal path Condition and code to handle it
true default complicates connections def f if !x default_stuff else
exceptional_stuff end more_stuff end The normal path Condition and code to handle it
The “guard clause” pattern def f return y if x
normal_stuff ... end The normal path Condition and code to handle it
Summary • Default false for all fields • Test for
unusual conditions (when possible) • Beware of conditionals with true default true false 1 exception 0 default