Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Integration, fast builds and Flot

Continuous Integration, fast builds and Flot

Prepared for the Melbourne Patters Group

Chris Bushell

February 03, 2010
Tweet

More Decks by Chris Bushell

Other Decks in Programming

Transcript

  1. Con$nuous  Integra$on,  Fast   Builds  and  Flot   Chris  Bushell

     -­‐  Melbourne  Pa9erns  Group   February  3rd  2010  
  2. Tradi$onal  SoCware  Development   •  Waterfall   •  Development  happens

     independently,  in   parallel  streams   •  Integra$on  phase  
  3. Con$nuous  Integra$on   •  Single  source  code  repository   • 

    Automated  build   •  Automated  tests   •  Frequent  commits  
  4. Encourage  Frequent  Check-­‐Ins   •  Integra$ng  small  changes  is  much

     less  painful   and  $me  consuming  than  integra$ng  large   changes  
  5. Problem  -­‐  Builds  Can  Become  Slow   •  More  code

     =  more  tests  =  longer  build  $me  
  6. A  Fast  Build  Is  Essen$al   •  Idle  developers  

    •  Context  switching   •  Unable  to  deliver  new  features   •  I  get  bored  easily  
  7. Speeding  Up  A  Slow  Build   •  Think  about  how

     to  test   •  Unit  tests  are  fast   •  Func$onal  tes$ng  can  be  slow  
  8. Speeding  Up  A  Slow  Build   •  Isola$on  from  slow

     dependencies   •  Impersonator  pa9ern  
  9. Speeding  Up  A  Slow  Build   •  Parallelize  build  

    – Be  careful  with  shared  dependencies  
  10. Speeding  Up  A  Slow  Build   •  Sam  Newman’s  Build

     Pa9erns   – Check  In  Gate   – Fish  Eye  Test  Suite   – Build  Time  Limit