PHP Industrialization

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    PHP Industrialization - Presentation Transcript

    1. PHP’s industrialization The new frontier
    2. Agenda Scale up your work Get the tools and methods Go to the other sessions in Barcelona
    3. Speaker Damien Seguy Expert Open Source services Raise elePHPants damien.seguy@alterway.fr
    4. Yes, we take questions
    5. Function lists 692 defined functions, 611 actually used function CMP2() : 18 different definitions fct_create_thjipk(), datefren(), fct_lstagt_key(), phpinfo_system_old(), fct_repeat_even_requ(), fct_vrai_champ_general() Every one letter variable used : $a, $b, $c,...
    6. Function spring cleaning It’s time to check them List them, see what they do Refactor the code, remove doubles Gather them in a central library, document them Build a solid framework...
    7. Function spring cleaning It’s time to check them List them, see what they do Refactor the code, remove doubles Gather them in a central library, document them Build a solid framework...
    8. Romantic PHP
    9. Modern PHP
    10. 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
    11. PHP industrialization Going from single to multiple Being proactive, rather than reactive Scale your work, not your server Otherwise, go to Rasmus session
    12. Stage 1 Conventions IDE VCS
    13. Conventions PEAR, Zend Frameworks, Symfony... Choose one, use one Bring unity Code_sniffer
    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. VCS Subversion, git, CVS, bazaar Resolve conflicts Stores and distribute the code Allow versioning, paralell development, rollback Code not in VCS does not exists
    16. VCS Code Bug Track Production VCS Continuous Unit Test integration
    17. Recommanded sessions Clean Code / Zend Framework
    18. Stage 2 Methodologies Frameworks Tests
    19. 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
    20. Short cycles
    21. Frameworks Frameworks Choose one, for development speed Components, conventions, scafolding, tests Community, expertise, training
    22. Unit Tests PHP Unit, Simple Test, Lemon, Zend_Test, phpt
    23. Tests helps decouple Production Avoid regression Code Platform Prevent your recall Shows progress Serves as manual Help at communication Customer use
    24. Functional tests GreenPepper, Fitnesse
    25. Recommanded sessions Agile development for PHP, SCRUM con exito Symfony 2.0 State of quality assurance tools
    26. Stage 3 Conception Continuous integration Automated deploiement Documentation
    27. Automated deployment Phing, maven, ant, pear Needed for continuous integration The forgotten part of development Compulsory for large plat-forms, high scaling
    28. Continuous integration Check the code in back ground phpUnderControl, Xinc, Hudson Graphs the results Compilation, code sniffer, unit tests, coverage Log, inclusion, performances... Share with the team
    29. Conception Class diagram, database schema, navigation ArgoUML, StarUML, PowerArchitect Describe the general organisation List everything that will need name Class, methods, constants, SESSION, includes... Check the result
    30. Conception Document things before hand Auto-generate phpdoc Check usage in the code, check undocumented
    31. Documentation From developper to users Have developper start it Add comments Turn it into a wiki
    32. Recommanded sessions Tallar de PHING Continuous integration
    33. Even further? Continuous deployment (a la flickr) Cross auditing Collaborative auditing Static analysis
    34. Most tools come from Java Hudson / Xinc Junit / PHPUnit CheckStyle / Code Sniffer UML to PHP (but not the reverse) Static audit analysis? Code navigation ? Code audit tool ? almost...
    35. Questions? damien.seguy@alterway.fr
    36. Documentation Level 0 : in code Level 1 : automated, manual PHPdoc, PHPdocumentor, Doxygen Level 2 : Wiki, blogues Level 3 : books, conferences
    37. Scaling up coding Do more Leave part of it to others
    38. Handling bugs Level 1 : manual test before production Level 2 : automate tests before production Level 3 : hand out tests to functional
    39. Tools Firefox, Web Developper PHP Unit, Simple Tests, phpt, Push 2 Test GreenPepper, Fitnesse
    40. More tests Get more tests Hand them to your users Use them in requirements Use them for docs
    41. Team Conception à cycles courts Conventions de programmation Mantras de programmation Audits croisés
    42. Code Frameworks Business libraries Code repository Static audits
    43. Progression Tests unitaires Tests fonctionnels Intégration continue Documentation automatique Suivi des conventions
    44. Production Déploiement automatique Tests d’IHM Suivi des bugs
    45. Avoid dead end tools Writing comments that are rarely read Producing doc ? Reusing unit tests ?
    46. Scale up your work direct communication is OK for 2 mail is OK for 4 mantis is better
    47. Aspects Automation API, PHPUnit, Including users in the tests Standards (SOAP/WSDL)
    48. 3 phases of evolution Experimentation Mission critical Strategy
    49. Approach of coding We’ll do what we need We’ll gather in the end to make this a good library This shows a lack of anticipation
    50. Tools without method
    SlideShare Zeitgeist 2009

    + Seguy DamienSeguy Damien Nominate

    custom

    278 views, 2 favs, 0 embeds more stats

    PHP is now part of the normal tools at every IT dep more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 278
      • 278 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 24
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories