SlideShare une entreprise Scribd logo
1  sur  44
PHP’s industrialisation
Confoo 2010, Montréal, Québec, Canada
Agenda


Tame your development cycles
Scale up your PHP work
Get the tools and methods
Speaker

 Damien Seguy
 Expert Open Source services
 Security, industrialisation services
 Raise elePHPants
 damien.seguy@alterway.fr
Yes,
we take
questions
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
Three mantra


Release code ownership
Capitalize your work
Involve your users
∆ Convention
 ∆ IDE        ∆ Conception
 ∆ Framework ∆ Deploiement
              ∆ VCS     Capitalization
Ownership
                         ∆ Unit tests
           ∆ CI
         ∆ Docs        ∆ Bug
       ∆ Methods      Tracking

           ∆ Functional tests
              Involvment
Release code ownership
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
Release code ownership


Have others run your work without you
Don’t invest yourself in the code
Make code accessible to someone else
Code 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.
Frameworks

Choose one, for development speed
Components, conventions, scaffolding, tests
Community, expertise, training
Build a business layer
VCS

Subversion, git, CVS, bazaar
Resolve conflicts
Allow versioning, paralell development, rollback
Stores and distribute the code
Code not in VCS does not exists
VCS            Development




  Unit Test                   Production
                   VCS




                         Continuous
       Bug Track
                         integration
Recommanded sessions


Solar : the best framework you’ve never heard of
myphp-buster : Zend Framework
Entity Framework : que du bonheur
Capitalization
Capitalization

 Accumulate all phases of project
 Capture information along the way
 Avoid dead ends
   Think of who will reuse this
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
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
Automated deployment

Phing, maven, ant, pear
Needed for continuous integration
The forgotten part of development
Compulsory for large plat-forms, high scaling
Recommanded sessions

Recetter avec Cucumber and Pyccuracy
Gestion d’incidents pour les développeurs
Getting started with PHPUnit
Le packaging avec Python
Users involvment
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
Bug tracker

Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
Bug tracker

Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
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
GreenPepper
GreenPepper
GreenPepper
GreenPepper
GreenPepper
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
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
Documentation

From developper to users
Have developper start it
Add comments
Turn it into a wiki
Recommanded sessions

Introduction au TDD
Continuous integration of PHP projects
Simulation Scrum avec prototypage papier
XP-game
Even further?

 Continuous deployment (a la flickr)
 Cross auditing
 Collaborative auditing
 Static analysis
damien.seguy@alterway.fr		
http://www.slideshare.net/dseguy/

Contenu connexe

Similaire à Confoo

Slides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetingsSlides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetings
10n Software, LLC
 

Similaire à Confoo (20)

PHP Industrialization
PHP IndustrializationPHP Industrialization
PHP Industrialization
 
Introducing TDD to your project
Introducing TDD to your projectIntroducing TDD to your project
Introducing TDD to your project
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Slides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetingsSlides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetings
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
#SPSToronto How to do #DevOps with #SPFx and why it matters
#SPSToronto How to do #DevOps with #SPFx and why it matters#SPSToronto How to do #DevOps with #SPFx and why it matters
#SPSToronto How to do #DevOps with #SPFx and why it matters
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Understanding DevOps
Understanding DevOpsUnderstanding DevOps
Understanding DevOps
 
Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Har du en DevOps i ditt team?
Har du en DevOps i ditt team?
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx
 
DevOps Resume of Sanu Panji
DevOps Resume of Sanu PanjiDevOps Resume of Sanu Panji
DevOps Resume of Sanu Panji
 
Dev ops
Dev opsDev ops
Dev ops
 
DevOps Engineer Roles and Responsibilities - Infrastructure Team
DevOps Engineer Roles and Responsibilities - Infrastructure TeamDevOps Engineer Roles and Responsibilities - Infrastructure Team
DevOps Engineer Roles and Responsibilities - Infrastructure Team
 
WoMakersCode 2016 - Shit Happens
WoMakersCode 2016 -  Shit HappensWoMakersCode 2016 -  Shit Happens
WoMakersCode 2016 - Shit Happens
 
Php Development Stack
Php Development StackPhp Development Stack
Php Development Stack
 
Php Development Stack
Php Development StackPhp Development Stack
Php Development Stack
 

Plus de Damien Seguy

Plus de Damien Seguy (20)

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leeds
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisation
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limoges
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confoo
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbia
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic traps
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappes
 
Code review workshop
Code review workshopCode review workshop
Code review workshop
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy people
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 

Confoo

Notes de l'éditeur