SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
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

Mais conteúdo relacionado

Mais de Sebastian Marek

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

Mais 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

+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@
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
+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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

The Journey towards Continuous Integration