Carlos Buenosvinos, CTO, Self employed consultant, PHP Senior Developer at GSI Commerce, phpChampionship.com, muchomasqueunregalo.com, tesipro.com, favorited this 3 weeks ago
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
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...
PHP is now part of the normal tools at every IT dep more
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. less
0 comments
Post a comment