STEPHAN
GERMAN
GERMANY
BOULDER
ROCK CLIMBING
WHITE
MALE
NETHERLANDS
CYCLING
DIVING
CONSULTANT
RUBY
RAILS GO
XING
PIVOTAL LABS
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
Labeling in Software
development
Slide 7
Slide 7 text
No
Rails app
starts with a namespace
Slide 8
Slide 8 text
All
gems
start with a namespace
Slide 9
Slide 9 text
Rails Gems
Slide 10
Slide 10 text
AEH FACE
Rails Gems
Slide 11
Slide 11 text
!
!
!
!
!
!
!
!
!
+ active record
+ active support
+ action controller
Rails Gems
Slide 12
Slide 12 text
How can you tell what
still belongs?
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
Try this!
!
Namespace everything
in your next app
Slide 15
Slide 15 text
Give yourself a box so
you can start thinking
outside of it
Slide 16
Slide 16 text
Can you
prove small
chunks?
Slide 17
Slide 17 text
Growing size
Slide 18
Slide 18 text
Exploding complexity
SIZE
POSSIBLE
INTERACTIONS
Slide 19
Slide 19 text
Effect of structure
VS
Slide 20
Slide 20 text
SIZE
POSSIBLE
INTERACTIONS
Reduced exploding
complexity
Slide 21
Slide 21 text
Slashing complexity
SIZE
COMPLEXITY
SPLIT!
Slide 22
Slide 22 text
Making chunks early
SIZE
COMPLEXITY
SPLIT!
Slide 23
Slide 23 text
Net win?
SIZE
COMPLEXITY
SPLIT!
$
$
Slide 24
Slide 24 text
You’re going to do it
often
SIZE
DOUBLE
SPLIT!
COMPLEXITY
NEW CODE
IN ENGINE
NEW CODE
IN ENGINE
Slide 25
Slide 25 text
Never build large apps
to build large apps
Slide 26
Slide 26 text
github.com/shageman/
the_next_big_thing
Slide 27
Slide 27 text
5 looser coupling
3 gems
1 one app
4 engines
8 HTTP SOA
2 modules
7 eco-system
6 services
Slide 28
Slide 28 text
1
The one app
Slide 29
Slide 29 text
HTTP://WWW.FLICKR.COM/PHOTOS/WIDNR/6589525327/
Slide 30
Slide 30 text
Examples
!
diaspora, CF CC,
canvas
Slide 31
Slide 31 text
If you are in the situation
where you’re reading some
text, investigating, trying to
figure out what is going on...
That is a very good property
of a detective novel and a
very bad property of code.
!
Martin Fowler