PHP Industrialization
Upcoming SlideShare
Loading in...5
×
 

PHP Industrialization

on

  • 4,745 views

PHP is now part of the normal tools at every IT department. Indeed, it must now cope with a raise in exigence and level of quality expected beyond it's famed scalability and fast development. What ...

PHP is now part of the normal tools at every IT department. Indeed, it must now cope with a raise in exigence and level of quality expected beyond it's famed scalability and fast development. What tools are needed to organize a large dev team and produce several hundreds of web site a year? Now is the time of industrialisation, where planning and organizing the code production must track bugs before publishing the code. We'll cover the tools and technics available to tame conception, production, publication and team work.

Statistics

Views

Total Views
4,745
Views on SlideShare
4,738
Embed Views
7

Actions

Likes
6
Downloads
78
Comments
0

2 Embeds 7

http://www.slideshare.net 6
http://www.lmodules.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PHP Industrialization PHP Industrialization Presentation Transcript

  • PHP’s industrialization The new frontier
  • Agenda Scale up your work Get the tools and methods Go to the other sessions in Barcelona
  • Speaker Damien Seguy Expert Open Source services Raise elePHPants damien.seguy@alterway.fr
  • Yes, we take questions
  • 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,...
  • 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...
  • 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...
  • Romantic PHP
  • Modern PHP
  • 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
  • PHP industrialization Going from single to multiple Being proactive, rather than reactive Scale your work, not your server Otherwise, go to Rasmus session
  • Stage 1 Conventions IDE VCS
  • Conventions PEAR, Zend Frameworks, Symfony... Choose one, use one Bring unity Code_sniffer
  • IDE Choose it for ease of use Netbean / Symfony, Zend tools, Komodo / cakePHP Code browser, editor, debugger, unit test integration, VCS integration, framework integration.
  • VCS Subversion, git, CVS, bazaar Resolve conflicts Stores and distribute the code Allow versioning, paralell development, rollback Code not in VCS does not exists
  • VCS Code Bug Track Production VCS Continuous Unit Test integration
  • Recommanded sessions Clean Code / Zend Framework
  • Stage 2 Methodologies Frameworks Tests
  • 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
  • Short cycles
  • Frameworks Frameworks Choose one, for development speed Components, conventions, scafolding, tests Community, expertise, training
  • Unit Tests PHP Unit, Simple Test, Lemon, Zend_Test, phpt
  • Tests helps decouple Production Avoid regression Code Platform Prevent your recall Shows progress Serves as manual Help at communication Customer use
  • Functional tests GreenPepper, Fitnesse
  • Recommanded sessions Agile development for PHP, SCRUM con exito Symfony 2.0 State of quality assurance tools
  • Stage 3 Conception Continuous integration Automated deploiement Documentation
  • Automated deployment Phing, maven, ant, pear Needed for continuous integration The forgotten part of development Compulsory for large plat-forms, high scaling
  • 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
  • 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
  • Conception Document things before hand Auto-generate phpdoc Check usage in the code, check undocumented
  • Documentation From developper to users Have developper start it Add comments Turn it into a wiki
  • Recommanded sessions Tallar de PHING Continuous integration
  • Even further? Continuous deployment (a la flickr) Cross auditing Collaborative auditing Static analysis
  • 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...
  • Questions? damien.seguy@alterway.fr
  • Documentation Level 0 : in code Level 1 : automated, manual PHPdoc, PHPdocumentor, Doxygen Level 2 : Wiki, blogues Level 3 : books, conferences
  • Scaling up coding Do more Leave part of it to others
  • Handling bugs Level 1 : manual test before production Level 2 : automate tests before production Level 3 : hand out tests to functional
  • Tools Firefox, Web Developper PHP Unit, Simple Tests, phpt, Push 2 Test GreenPepper, Fitnesse
  • More tests Get more tests Hand them to your users Use them in requirements Use them for docs
  • Team Conception à cycles courts Conventions de programmation Mantras de programmation Audits croisés
  • Code Frameworks Business libraries Code repository Static audits
  • Progression Tests unitaires Tests fonctionnels Intégration continue Documentation automatique Suivi des conventions
  • Production Déploiement automatique Tests d’IHM Suivi des bugs
  • Avoid dead end tools Writing comments that are rarely read Producing doc ? Reusing unit tests ?
  • Scale up your work direct communication is OK for 2 mail is OK for 4 mantis is better
  • Aspects Automation API, PHPUnit, Including users in the tests Standards (SOAP/WSDL)
  • 3 phases of evolution Experimentation Mission critical Strategy
  • 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
  • Tools without method