6

Leaflet: PHP development in 2009

published on 2009|05|02
  • Develop object-oriented code
    • Avoid static cling
    • Avoid global state
    • Use dependency injection
    • Use a framework if appropriate
    • Refactor continuously
  • Use a VCS, preferably a decentralized
    • Have commit notifications configured
  • Utilize continuous deployment
    • Deploy with tools like capistrano
    • Deploy phar files
  • Test your code
    • Use continuous integration to run tests, create and deploy artefacts
    • Unit test your code with PHPUnit or SimpleTest
    • Have database migration in place to ease schema changes, e.g. with dbdeploy
    • Use build tools like phing or ant
    • Have metrics configured and use them as a QA measure
    • Have a code sniffer in place
    • Acceptance tests with tools like Selenium
  • Use rapid development tools like Zend Tool or cake
    • A fresh checkout should be up and running in a few minutes
  • Monitor your (production) systems
    • Load monitoring with tools like Cacti
    • Event reporting and monitoring with tools like Nagios (for the enterprise, there is nothing else)
  • Use a bytecode cache
  • Love your code

What do you think is the state of the art in 2009?

Tags: , ,

Comments

Show comments linear or threaded

Foo supposes:
published on 2009|05|02, 20:49h
*

Testing is so yesterday. It’s just about getting it up’n‘running. Once there is need to change, we just redo everything, the old code sucks anyway.

Dagfinn Reiersøl replies:
published on 2009|05|04, 08:15h
*

I think you’ve summed up the state of the art pretty well. Or what should be the state of the art. I think we need better tools than Selenium for acceptance tests, though. I’m working on a PHP port of the Slim engine for FitNesse.

Sara Golemon opines:
published on 2009|05|04, 20:22h
*

"Love your code"

this :)

Lars Strojny returns:
published on 2009|05|04, 21:57h
*

As far as I know, love is not enough :)

Andre means:
published on 2009|05|05, 19:12h
*

Thanks for that article, very useful. A more detailed description of each would be useful too, in some of the less common areas like bytecode cache.

Daniel Londero reckons:
published on 2009|05|05, 19:51h
*

Great post! I want to say another time: TEST! Write unit and functional tests for all your code, if possible use TDD so you can’t forget to write your tests later…

Add comment


Textile-formatting allowed
E-Mail addresses will not be displayed and will only be used for E-Mail notifications
Pavatar/Gravatar/Favatar/MyBlogLog author images supported.