Published on

conference de montreal

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

  • Confoo

    1. 1. PHP’s industrialisation Confoo 2010, Montréal, Québec, Canada
    2. 2. Agenda Tame your development cycles Scale up your PHP work Get the tools and methods
    3. 3. Speaker Damien Seguy Expert Open Source services Security, industrialisation services Raise elePHPants
    4. 4. Yes, we take questions
    5. 5. Romantic PHP
    6. 6. Modern PHP
    7. 7. Reality check 65 portals next 6 months 6 people to upgrade 350 intranet 120 events sites a year on 150 servers App on one city, cover 12 cities by xmas, expand to 2 countries next year. full time employee for deployements
    8. 8. Three mantra Release code ownership Capitalize your work Involve your users
    9. 9. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Deploiement ∆ VCS Capitalization Ownership ∆ Unit tests ∆ CI ∆ Docs ∆ Bug ∆ Methods Tracking ∆ Functional tests Involvment
    10. 10. Release code ownership
    11. 11. Release code ownership Low bus factor Don’t be the only one Ugly code and hacks Write code like everyone else 50% of dev time is spend on production actions Don’t be in the path of operations
    12. 12. Release code ownership Have others run your work without you Don’t invest yourself in the code Make code accessible to someone else
    13. 13. Code conventions PEAR, Zend Frameworks, Symfony... Choose one, use one Bring unity Code_sniffer
    14. 14. IDE Choose it for ease of use Netbean / Symfony, Zend tools, Komodo / cakePHP Code browser, editor, debugger, unit test integration, VCS integration, framework integration.
    15. 15. Frameworks Choose one, for development speed Components, conventions, scaffolding, tests Community, expertise, training Build a business layer
    16. 16. VCS Subversion, git, CVS, bazaar Resolve conflicts Allow versioning, paralell development, rollback Stores and distribute the code Code not in VCS does not exists
    17. 17. VCS Development Unit Test Production VCS Continuous Bug Track integration
    18. 18. Recommanded sessions Solar : the best framework you’ve never heard of myphp-buster : Zend Framework Entity Framework : que du bonheur
    19. 19. Capitalization
    20. 20. Capitalization Accumulate all phases of project Capture information along the way Avoid dead ends Think of who will reuse this
    21. 21. Unit Tests PHP Unit, Simple Test, Lemon, Zend_Test, phpt
    22. 22. Tests helps decouple Production Avoid regression Code Platform Prevent your recall Shows progress Serves as manual Help at communication Customer use
    23. 23. Conception Class diagram, database schema, navigation Describe the general organisation List everything that will need name Class, methods, constants, SESSION, includes... Check the result in the code (BOUML) ArgoUML, StarUML, PowerArchitect
    24. 24. Automated deployment Phing, maven, ant, pear Needed for continuous integration The forgotten part of development Compulsory for large plat-forms, high scaling
    25. 25. Recommanded sessions Recetter avec Cucumber and Pyccuracy Gestion d’incidents pour les développeurs Getting started with PHPUnit Le packaging avec Python
    26. 26. Users involvment
    27. 27. User involvment Avoid tunnel effect Don’t confront the tidal wave of requests bugs, changes, new, adaptation, acceleration Have users do part of the work
    28. 28. Bug tracker Mantis, Trac, Redline, Jira Connect it to VCS, deployment Gather feedback from users without direct contact Goes into changelog when deploying
    29. 29. Bug tracker Mantis, Trac, Redline, Jira Connect it to VCS, deployment Gather feedback from users without direct contact Goes into changelog when deploying
    30. 30. Functional testing Green pepper, fitnesse Wiki base : easy on non-technical users Gather business data and use case Tests a priori, test live Developper will do the connection into the code
    31. 31. GreenPepper
    32. 32. GreenPepper
    33. 33. GreenPepper
    34. 34. GreenPepper
    35. 35. GreenPepper
    36. 36. Continuous integration Check the code in back ground phpUnderControl, Hudson, Maven, sonar, Xinc Graphs the results Compilation, code sniffer, unit tests, coverage Log, inclusion, performances... Share with the team, users
    37. 37. Methodologies Explain how you produce code Get your users involved Make short cycles to deliver, adapt and polish Agile methodologies : SCRUM, XP, Lean SD, Open Unified Process Agile practices may be sufficient
    38. 38. Documentation From developper to users Have developper start it Add comments Turn it into a wiki
    39. 39. Recommanded sessions Introduction au TDD Continuous integration of PHP projects Simulation Scrum avec prototypage papier XP-game
    40. 40. Even further? Continuous deployment (a la flickr) Cross auditing Collaborative auditing Static analysis
    41. 41.