• Release
Reuse
• Common
Closure
• Common
Reuse
• Acyclic
Dependencies
• Stable
Dependencies
• Stable
Abstrac2ons
Forgo%en
SOLID
principals
What
you
hear
about
• Single
Responsibility
• Open/Closed
• Liskov
Subs2tu2on
• Interface
Segrega2on
• Dependency
Inversion
Slide 8
Slide 8 text
common
closure
Classes
that
change
together
are
packaged
together.
h.p://bit.ly/PrincOOD
Slide 9
Slide 9 text
• Tasking
• Chat
(XMPP)
Feature
Themes
walk
the
walk
Context
• Air
Force
• Old:
Thick
Client
• New:
Single
Page
App
• HTML5(ish)
+
Javascript
• Java
Slide 10
Slide 10 text
Why
call
them
modules?
S2ll
a
lot
of
noise
spot
the
feature?
Slide 11
Slide 11 text
Focus
Drill
into
chat
feature
Focus
Slide 12
Slide 12 text
other
effects
• Conven2ons
Within
Features
• Responsibility
Viola2ons
Obvious
• Ramp
up
• Small,
Simple
Interfeature
Collabora2on
“Ah
consistency,
the
path
to
simplicity
and
the
bane
of
innova6on.
Choose
wisely”
~
me,
on
twi
Slide 13
Slide 13 text
what‘s
next?
• Server
+
Client
side-‐by-‐side
(i.e.
Controllers)
• CSS/images
• Requirejs
+
unit
tes2ng
=
painful
• Frameworks/Tooling