simplifying development at guardian.co.uk Graham Tackley - @tackers - - PowerPoint PPT Presentation

simplifying development at guardian co uk graham tackley
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

simplifying development at guardian.co.uk Graham Tackley - @tackers architect, guardian.co.uk

slide-2
SLIDE 2

Background Decision Impact Outcomes

slide-3
SLIDE 3

Background Decision Impact Outcomes

slide-4
SLIDE 4

Background Decision Impact Outcomes

slide-5
SLIDE 5

Background Decision Impact Outcomes

slide-6
SLIDE 6

2006-2008: “R2”

Background Decision Impact Outcomes

slide-7
SLIDE 7

main java (185k) main xml (35k) velocity (72k) test java (248k) 75'000 150'000 225'000 300'000

Background Decision Impact Outcomes

slide-8
SLIDE 8

it’s ok, but...

Background Decision Impact Outcomes

slide-9
SLIDE 9

2009

Background Decision Impact Outcomes

slide-10
SLIDE 10

Background Decision Impact Outcomes

slide-11
SLIDE 11

Background Decision Impact Outcomes

slide-12
SLIDE 12

Small Independent Components

  • ver

The Monolith We value

Background Decision Impact Outcomes

slide-13
SLIDE 13

Background Decision Impact Outcomes

slide-14
SLIDE 14

Background Decision Impact Outcomes

slide-15
SLIDE 15

Clarity of Intent

  • ver

Ceremonial Abstraction We value

Background Decision Impact Outcomes

slide-16
SLIDE 16

it’s ok, but...

Background Decision Impact Outcomes

slide-17
SLIDE 17

Architectural Evolution

  • ver

Architectural Revolution We value

Background Decision Impact Outcomes

slide-18
SLIDE 18

Background Decision Impact Outcomes

slide-19
SLIDE 19

Background Decision Impact Outcomes

slide-20
SLIDE 20

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

slide-21
SLIDE 21

huge drop in verbosity and boilerplate

Background Decision Impact Outcomes

slide-22
SLIDE 22

Craft

  • ver

Patterns We value

Background Decision Impact Outcomes

slide-23
SLIDE 23

http://content.guardianapis.com http://www.guardian.co.uk/open-platform

Background Decision Impact Outcomes

slide-24
SLIDE 24

Background Decision Impact Outcomes

slide-25
SLIDE 25

2010 2011 2009

Nov

java + guice + guice servlets + apache solr

Background Decision Impact Outcomes

slide-26
SLIDE 26

2010 2011 2009

Jan

java + guice + guice servlets + apache solr

Background Decision Impact Outcomes

slide-27
SLIDE 27

2010 2011 2009

Jan

Background Decision Impact Outcomes

slide-28
SLIDE 28

2010 2011 2009

Jan

Background Decision Impact Outcomes

slide-29
SLIDE 29

2010 2011 2009

Feb

scala + guice + guice servlets + apache solr

Background Decision Impact Outcomes

slide-30
SLIDE 30

2010 2011 2009

May

scala + guice + guice servlets + apache solr

Live!

Background Decision Impact Outcomes

slide-31
SLIDE 31

2010 2011 2009

July

scala + guice + guice servlets + apache solr

Background Decision Impact Outcomes

slide-32
SLIDE 32

2010 2011 2009

July

scala + lift + apache solr

Background Decision Impact Outcomes

slide-33
SLIDE 33

2010 2011 2009

July

scala + lift + apache solr

Background Decision Impact Outcomes

slide-34
SLIDE 34

2010 2011 2009

Now

scala + lift + apache solr

Background Decision Impact Outcomes

slide-35
SLIDE 35

Background Decision Impact Outcomes

slide-36
SLIDE 36

The roll-it-out-to-everyone plan

Background Decision Impact Outcomes

slide-37
SLIDE 37

Background Decision Impact Outcomes

How did we learn?

slide-38
SLIDE 38

Background Decision Impact Outcomes

slide-39
SLIDE 39

Passionate Developers

  • ver

Turning the Crank We value

Background Decision Impact Outcomes

slide-40
SLIDE 40

Complexity vs Simplicity

Background Decision Impact Outcomes

slide-41
SLIDE 41

Background Decision Impact Outcomes

slide-42
SLIDE 42

Clarity

  • ver

Cleverness We value

Background Decision Impact Outcomes

slide-43
SLIDE 43

Background Decision Impact Outcomes

slide-44
SLIDE 44

preference for immutability scala console encourages viewing code as a living entity awesome test frameworks reduced need for complex frameworks

Background Decision Impact Outcomes

slide-45
SLIDE 45

love-hate relationship with sbt tool support immature compared with java compiler is slow rate of change

Background Decision Impact Outcomes

slide-46
SLIDE 46

Background Decision Impact Outcomes

slide-47
SLIDE 47

Background Decision Impact Outcomes

slide-48
SLIDE 48

Background Decision Impact Outcomes

slide-49
SLIDE 49

Background Decision Impact Outcomes

https://github.com/guardian/frontend-article

slide-50
SLIDE 50

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
slide-51
SLIDE 51

graham.tackley@guardian.co.uk @tackers We’re hiring: http://bit.ly/guardian-dev-jobs