READABLE
CODE
@john_papa
READABLE CODE
JOHN PAPA
@JOHN_PAPA
Slide 2
Slide 2 text
READABLE
CODE
@john_papa
HOW FAST CAN YOU READ
YOUR CODE ?
JOHN PAPA
@JOHN_PAPA
Slide 3
Slide 3 text
READABLE
CODE
@john_papa
“
How
can
you
enhance
code
if
you
can’t
read
it?
”
Slide 4
Slide 4 text
READABLE
CODE
@john_papa
Slide 5
Slide 5 text
READABLE
CODE
@john_papa
“
It’s
harder
to
read
code
than
to
write
it.
”
-‐
Joel
Spolsky
But Why?
Slide 6
Slide 6 text
READABLE
CODE
@john_papa
“
It’s
not
about
clever,
craHy,
arIul,
preJy
code.
It’s
about
fast
and
effecLve
communicaLon
and
code
quality.
”
What’s it all About?
Slide 7
Slide 7 text
READABLE
CODE
@john_papa
Who Cares for the Developer Behind You?
“
”
Caring
about
your
craH
is
a
good
thing.
Caring
about
the
what
happens
aHer
you
deploy
your
code
is
beauLful.
Slide 8
Slide 8 text
READABLE
CODE
@john_papa
What’s Your MoKvaKon?
Time
ProducLvity
Cost
of
a
Complete
Mess
Slide 9
Slide 9 text
READABLE
CODE
@john_papa
“
”
YOUR
BOSS
WON’T
LIKE
THAT
Slide 10
Slide 10 text
READABLE
CODE
@john_papa
“
Deploy
faster,
spend
less,
re-‐use
more,
and
maintain
high
quality.
”
Slide 11
Slide 11 text
READABLE
CODE
@john_papa
Who is Code Intended For?
Programs
must
be
wriJen
for
people
to
read,
and
only
incidentally
for
machines
to
execute.
-‐
Abelson
&
Sussman,
Structure
and
Interpreta9on
of
Computer
Programs
“
”
Slide 12
Slide 12 text
READABLE
CODE
@john_papa
Meaningful Names Are Crucial to Read Speed
READABLE
CODE
@john_papa
Can’t Decipher within the 5 Second Rule
Slide 16
Slide 16 text
READABLE
CODE
@john_papa
IntenKons are Clear
Slide 17
Slide 17 text
READABLE
CODE
@john_papa
“
Most
important
code
is
instantly
visible
”
Above the Fold
Slide 18
Slide 18 text
READABLE
CODE
@john_papa
Slide 19
Slide 19 text
READABLE
CODE
@john_papa
Simple and Clear
Slide 20
Slide 20 text
READABLE
CODE
@john_papa
Slide 21
Slide 21 text
READABLE
CODE
@john_papa
“
Less
than
20
lines
of
code
”
Small FuncKons Are Readable
Slide 22
Slide 22 text
READABLE
CODE
@john_papa
MISSSPELINGS
ARE
IMPORTANT
“
What
will
you
find
when
you
search
for
your
code?
”
Slide 23
Slide 23 text
READABLE
CODE
@john_papa
Clarity, Inconsistent Naming and Spelling
Slide 24
Slide 24 text
READABLE
CODE
@john_papa
Consistent Naming and Spelling MaSer
Slide 25
Slide 25 text
READABLE
CODE
@john_papa
Pick One ConvenKon
Slide 26
Slide 26 text
READABLE
CODE
@john_papa
“
People
who
maintain
code
lack
the
author’s
context
”
CONTEXT
===
CLARITY
Slide 27
Slide 27 text
READABLE
CODE
@john_papa
Does Your Code Provide Context?
Slide 28
Slide 28 text
READABLE
CODE
@john_papa
Explain Yourself in Code, Not Comments
Slide 29
Slide 29 text
READABLE
CODE
@john_papa
Self Describing Code
Slide 30
Slide 30 text
READABLE
CODE
@john_papa
Replace Comments and Magic Strings
Slide 31
Slide 31 text
READABLE
CODE
@john_papa
Use DescripKve FuncKons and Constants
Slide 32
Slide 32 text
READABLE
CODE
@john_papa
Comments are noise when …
Outdated
and
incorrect
Shoulda
coulda
used
a
variable
or
funcLon
Redundant
Slide 33
Slide 33 text
READABLE
CODE
@john_papa
Comments are awesome when …
Warnings
of
Consequences
API
DocumentaLon
TODO’s
Slide 34
Slide 34 text
READABLE
CODE
@john_papa
How Readable Is My Code?
LocaLng
our
code
is
easy
IdenLfy
code
at
a
glance
Flat
structure
as
long
as
we
can
Try
to
stay
DRY
L
I
F
T
Slide 35
Slide 35 text
READABLE
CODE
@john_papa
“
Clean
code
is
the
secret
to
your
applicaLon’s
long
and
healthy
life
”
Slide 36
Slide 36 text
READABLE
CODE
@john_papa
Nothing Starts Readable
“
Write
dirty
code,
then
clean
it
”