Scala: simplifying development at
-
Upload
graham-tackley -
Category
Technology
-
view
5.272 -
download
0
Transcript of Scala: simplifying development at
simplifying development at guardian.co.uk
Graham Tackley - @tackersarchitect, guardian.co.uk
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
2006-2008: “R2”BackgroundDecisionImpactOutcomes
main java (185k)
main xml (35k)
velocity (72k)
test java (248k)
0 75,000 150,000 225,000 300,000
BackgroundDecisionImpactOutcomes
main java (185k)
main xml (35k)
velocity (72k)
test java (248k)
0 75,000 150,000 225,000 300,000
BackgroundDecisionImpactOutcomes
main java (185k)
main xml (35k)
velocity (72k)
test java (248k)
0 75,000 150,000 225,000 300,000
BackgroundDecisionImpactOutcomes
main java (185k)
main xml (35k)
velocity (72k)
test java (248k)
0 75,000 150,000 225,000 300,000
BackgroundDecisionImpactOutcomes
it’s ok, but...
BackgroundDecisionImpactOutcomes
2009BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
Small Independent Componentsover
The Monolith
We value
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
Clarity of Intentover
Ceremonial Abstraction
We value
BackgroundDecisionImpactOutcomes
it’s ok, but...
BackgroundDecisionImpactOutcomes
Architectural Evolutionover
Architectural Revolution
We value
BackgroundDecisionImpactOutcomes
BackgroundDecision
ImpactOutcomes
BackgroundDecision
ImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
it’s just bytecode;a war is a war
mixed scala & java projects work
huge drop in verbosityand boilerplate
same infrastructure: toolset, libraries, build, runtime
huge drop in verbosityand boilerplate
BackgroundDecisionImpactOutcomes
Craftover
Patterns
We value
BackgroundDecisionImpactOutcomes
http://content.guardianapis.comhttp://www.guardian.co.uk/open-platform
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
2010 20112009
Nov
java + guice + guice servlets + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
Jan
java + guice + guice servlets + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
Jan
BackgroundDecisionImpactOutcomes
2010 20112009
Jan
BackgroundDecisionImpactOutcomes
2010 20112009
Feb
scala + guice + guice servlets + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
May
scala + guice + guice servlets + apache solr
Live!
BackgroundDecisionImpactOutcomes
2010 20112009
July
scala + guice + guice servlets + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
July
scala + lift + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
July
scala + lift + apache solr
BackgroundDecisionImpactOutcomes
2010 20112009
Now
scala + lift + apache solr
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
The roll-it-out-to-everyone plan
BackgroundDecisionImpactOutcomes
The roll-it-out-to-everyone plan
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
How did we learn?
BackgroundDecisionImpactOutcomes
Passionate Developersover
Turning the Crank
We value
BackgroundDecisionImpactOutcomes
Complexity vs Simplicity
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpactOutcomes
Clarityover
Cleverness
We value
BackgroundDecisionImpactOutcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
preference for immutability
scala console encourages viewing code as a living entity
awesome test frameworks
reduced need for complex frameworks
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
love-hate relationship with sbt
tool support immature compared with java
compiler is slow
rate of change
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
BackgroundDecisionImpact
Outcomes
https://github.com/guardian/frontend-article
ClarityoverCleverness
BackgroundDecisionImpact
Outcomes
Small Independent Componentsover
The Monolith
Clarity of IntentoverCeremonial Abstraction
Craftover
Patterns
Passionate Developersover
Turning the Crank
Architectural Evolutionover
Architectural Revolution
ClarityoverCleverness
BackgroundDecisionImpact
Outcomes
Small Independent Componentsover
The Monolith
Clarity of IntentoverCeremonial Abstraction
Craftover
Patterns
Passionate Developersover
Turning the Crank
Architectural Evolutionover
Architectural Revolution
@tackers
We’re hiring: http://bit.ly/guardian-dev-jobs