Your SlideShare is downloading. ×
0
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Confoo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Confoo

655

Published on

conference de montreal

conference de montreal

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
655
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide










































  • Transcript

    • 1. PHP’s industrialisation Confoo 2010, Montréal, Québec, Canada
    • 2. Agenda Tame your development cycles Scale up your PHP work Get the tools and methods
    • 3. Speaker Damien Seguy Expert Open Source services Security, industrialisation services Raise elePHPants damien.seguy@alterway.fr
    • 4. Yes, we take questions
    • 5. Romantic PHP
    • 6. Modern PHP
    • 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. Three mantra Release code ownership Capitalize your work Involve your users
    • 9. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Deploiement ∆ VCS Capitalization Ownership ∆ Unit tests ∆ CI ∆ Docs ∆ Bug ∆ Methods Tracking ∆ Functional tests Involvment
    • 10. Release code ownership
    • 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. Release code ownership Have others run your work without you Don’t invest yourself in the code Make code accessible to someone else
    • 13. Code 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. Frameworks Choose one, for development speed Components, conventions, scaffolding, tests Community, expertise, training Build a business layer
    • 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. VCS Development Unit Test Production VCS Continuous Bug Track integration
    • 18. Recommanded sessions Solar : the best framework you’ve never heard of myphp-buster : Zend Framework Entity Framework : que du bonheur
    • 19. Capitalization
    • 20. Capitalization Accumulate all phases of project Capture information along the way Avoid dead ends Think of who will reuse this
    • 21. Unit Tests PHP Unit, Simple Test, Lemon, Zend_Test, phpt
    • 22. Tests helps decouple Production Avoid regression Code Platform Prevent your recall Shows progress Serves as manual Help at communication Customer use
    • 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. Automated deployment Phing, maven, ant, pear Needed for continuous integration The forgotten part of development Compulsory for large plat-forms, high scaling
    • 25. Recommanded sessions Recetter avec Cucumber and Pyccuracy Gestion d’incidents pour les développeurs Getting started with PHPUnit Le packaging avec Python
    • 26. Users involvment
    • 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. Bug tracker Mantis, Trac, Redline, Jira Connect it to VCS, deployment Gather feedback from users without direct contact Goes into changelog when deploying
    • 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. 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. GreenPepper
    • 32. GreenPepper
    • 33. GreenPepper
    • 34. GreenPepper
    • 35. GreenPepper
    • 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. 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. Documentation From developper to users Have developper start it Add comments Turn it into a wiki
    • 39. Recommanded sessions Introduction au TDD Continuous integration of PHP projects Simulation Scrum avec prototypage papier XP-game
    • 40. Even further? Continuous deployment (a la flickr) Cross auditing Collaborative auditing Static analysis
    • 41. damien.seguy@alterway.fr http://www.slideshare.net/dseguy/

    ×