SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
PHP North West 2010




                    The Journey Towards
                   Continuous Integration




Sebastian Marek, Senior Software Engineer
@proofek

 a Pole living in Sheffield
 nearly 10 years PHP
  experience
 co-author of 2 PHP books
 big fan of process
  automation
 TDD and CI
 wants to be a knight
One Morning Long Ago
New experience

   Alpha-box set up
   New development processes
   Staging platform and QA team
   Deployment procedures
   Fixing problems
   Working on projects
At the Foot of Mount Doom

              increased maintenance
               time
              growing problem
               numbers
              code harder to
               understand and follow
              complex and time
               consuming testing
Looking for help!
First frustrations

   ad hoc builds
   mixture of php3 and php4
   learn as you go
   no standards
Forming up the fellowship

   Stuart Grimshaw
   Simon Westcott
   Ben Selby
   Sebastian Marek
   Rowan Merewood
   Ben Longden
Calling the council

                                      Who?
                                       managers
                                       developers

                                      What?
                                       threats
                                       opportunities
                                       planning
                                       implementation



http://www.flickr.com/photos/pedromourapinheiro/3272323691/in/photostream/
It's always about the money

 Design debt
 Late fees
 Interests




  http://www.flickr.com/photos/your_teacher/1040476355/in/photostream/
Finding the best way




          VS.
Support & roadmap




http://www.flickr.com/photos/jannem/3312115991/in/photostream/
Metrics and reports




http://www.flickr.com/photos/aussiegall/286709039/in/photostream/
Joining more powerful allies
Automation




http://www.flickr.com/photos/matthileo/3552898254/in/photostream/
East front
Automated builds

 Cruicecontrol addon
 PHPUnit integration
 phpDocumentor
  integration
 code metrics generation
 code coverage reports
 checkstyle report
  integration
 PHP Depend integration
 PHPMD support
 and many more
PHPUnit

Industry recognised xUnit testing framework for PHP,
supporting:
 mock objects
 database testing
 code coverage analysis

integrating
 selenium RC
 continuous integration platforms like CruiseControl,
   Hudson, Bamboo
phpDocumentor

        automated
         documentation for PHP
        supports different
         formats: HTML, PDF,
         CHM, XML
        web and cli interface
        easily configurable
PHP_Codesniffer

   Based on defined coding standards
   Detects coding standards violation
   Extendable and configurable
   Codebrowser
Code coverage report

   Be always on top of your tests
   Code coverage ratio
   Configurable thresholds
   Clover format
   Html format
Software metrics - PHP Depend

Code measures
 Cyclomatic Complexity
 NPath Complexity
 CodeRank
 Lines Of Code
PHP Mess Detector

         Intelligent code analyser
          Possible bugs
          Suboptimal code
          Overcomplicated
            expressions
          Unused parameters,
            methods, properties
Buildbox maintenance

   New modules added
   Increasing build time
   Often crashes
   Stability problems
   Hardware issues
phpUnderControl
Upgrades needed
Hudson – next generation

   easy installation
   easy configuration
   plugin support
   distributed builds
   multi-language support
   dependency tracking
Hudson
More automation

 git - distributed version control system
 AIE – alpha integrated environment
 capistrano
    automated deployment
    build script management
Selenium

     Automated web apps
      testing
     Regression testing
     Headless builds
One ring to rule them all




http://www.flickr.com/photos/cosmic_bandita/2218419160/in/photostream/
West front
Sonar

 quality management
  platform
 continuous analysis
 easily extendable and
  configurable
Sonar
Business wide visibility

   Meaningful reports
   Responsibility and ownership
   KPI
   Goals
Radiator view
Reports
The army needs to follow the leader

   Lead by example
   firm, but friendly and helpful
   never forget about training
   clear and simple rules
   praise vs. punishment
You broke the build!
Where's the build?
Works on my machine?!
It's your time now
Quick guide

1. Investigate
2. Trial
3. Form a team
4. Small steps
5. Be visible
6. Automate
Resources

   PHPUnit - http://www.phpunit.de/
   phpUnderControl - http://phpundercontrol.org/
   Hudson - http://hudson-ci.org/
   Sonar - http://www.sonarsource.org/
   phpDocumentor - http://www.phpdoc.org/
   PHP_CodeSniffer -
    http://pear.php.net/package/PHP_CodeSniffer/
   PHP Depend - http://pdepend.org/
   PHP Mess Detector - http://phpmd.org/
   Selenium - http://seleniumhq.org/
   xDebug - http://www.xdebug.org/
Q&A




Any questions?

  http://joind.in/2052

Más contenido relacionado

Más de Sebastian Marek

vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking
Sebastian Marek
 

Más de Sebastian Marek (9)

Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practicePHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
 
Ten Commandments Of A Software Engineer
Ten Commandments Of A Software EngineerTen Commandments Of A Software Engineer
Ten Commandments Of A Software Engineer
 
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
 
Magic behind the numbers - software metrics in practice
Magic behind the numbers - software metrics in practiceMagic behind the numbers - software metrics in practice
Magic behind the numbers - software metrics in practice
 
Back to basics - PHP_Codesniffer
Back to basics - PHP_CodesnifferBack to basics - PHP_Codesniffer
Back to basics - PHP_Codesniffer
 
Sonar - the ring to rule them all
Sonar - the ring to rule them allSonar - the ring to rule them all
Sonar - the ring to rule them all
 
vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

The Journey towards Continuous Integration