simplifying development at guardian.co.uk Graham Tackley - @tackers architect, guardian.co.uk
simplifying development at guardian.co.uk Graham Tackley - @tackers - - PowerPoint PPT Presentation
simplifying development at guardian.co.uk Graham Tackley - @tackers - - PowerPoint PPT Presentation
simplifying development at guardian.co.uk Graham Tackley - @tackers architect, guardian.co.uk Background Decision Impact Outcomes Background Decision Impact Outcomes Background Decision Impact Outcomes Background Decision Impact
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
2006-2008: “R2”
Background Decision Impact Outcomes
main java (185k) main xml (35k) velocity (72k) test java (248k) 75'000 150'000 225'000 300'000
Background Decision Impact Outcomes
it’s ok, but...
Background Decision Impact Outcomes
2009
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Small Independent Components
- ver
The Monolith We value
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Clarity of Intent
- ver
Ceremonial Abstraction We value
Background Decision Impact Outcomes
it’s ok, but...
Background Decision Impact Outcomes
Architectural Evolution
- ver
Architectural Revolution We value
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
it’s just bytecode; a war is a war mixed scala & java projects work huge drop in verbosity and boilerplate same infrastructure: toolset, libraries, build, runtime
huge drop in verbosity and boilerplate
Background Decision Impact Outcomes
Craft
- ver
Patterns We value
Background Decision Impact Outcomes
http://content.guardianapis.com http://www.guardian.co.uk/open-platform
Background Decision Impact Outcomes
Background Decision Impact Outcomes
2010 2011 2009
Nov
java + guice + guice servlets + apache solr
Background Decision Impact Outcomes
2010 2011 2009
Jan
java + guice + guice servlets + apache solr
Background Decision Impact Outcomes
2010 2011 2009
Jan
Background Decision Impact Outcomes
2010 2011 2009
Jan
Background Decision Impact Outcomes
2010 2011 2009
Feb
scala + guice + guice servlets + apache solr
Background Decision Impact Outcomes
2010 2011 2009
May
scala + guice + guice servlets + apache solr
Live!
Background Decision Impact Outcomes
2010 2011 2009
July
scala + guice + guice servlets + apache solr
Background Decision Impact Outcomes
2010 2011 2009
July
scala + lift + apache solr
Background Decision Impact Outcomes
2010 2011 2009
July
scala + lift + apache solr
Background Decision Impact Outcomes
2010 2011 2009
Now
scala + lift + apache solr
Background Decision Impact Outcomes
Background Decision Impact Outcomes
The roll-it-out-to-everyone plan
Background Decision Impact Outcomes
Background Decision Impact Outcomes
How did we learn?
Background Decision Impact Outcomes
Passionate Developers
- ver
Turning the Crank We value
Background Decision Impact Outcomes
Complexity vs Simplicity
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Clarity
- ver
Cleverness We value
Background Decision Impact Outcomes
Background Decision Impact Outcomes
preference for immutability scala console encourages viewing code as a living entity awesome test frameworks reduced need for complex frameworks
Background Decision Impact Outcomes
love-hate relationship with sbt tool support immature compared with java compiler is slow rate of change
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
Background Decision Impact Outcomes
https://github.com/guardian/frontend-article
Clarity
- ver
Cleverness
Background Decision Impact Outcomes
S m a l l I n d e p e n d e n t C
- m
p
- n
e n t s
- v
e r T h e M
- n
- l
i t h Clarity of Intent
- ver
Ceremonial Abstraction Craft
- ver
Patterns Passionate Developers
- ver
Turning the Crank A r c h i t e c t u r a l E v
- l
u t i
- n
- v
e r A r c h i t e c t u r a l R e v
- l
u t i
- n
graham.tackley@guardian.co.uk @tackers We’re hiring: http://bit.ly/guardian-dev-jobs