• Save
Enterprise PHP (Zend UK Business Conference)
Upcoming SlideShare
Loading in...5
×
 

Enterprise PHP (Zend UK Business Conference)

on

  • 4,697 views

Presentation about professional PHP development I did at the Zend UK Business Conference in London, on july 2nd, 2007 (http://www.zend.com/ukconference/)

Presentation about professional PHP development I did at the Zend UK Business Conference in London, on july 2nd, 2007 (http://www.zend.com/ukconference/)

Statistics

Views

Total Views
4,697
Views on SlideShare
4,514
Embed Views
183

Actions

Likes
7
Downloads
0
Comments
0

8 Embeds 183

http://www.jansch.nl 154
http://www.achievo.org 13
http://www.slideshare.net 5
http://kaloyan.info 3
http://www.techgig.com 3
http://lj-toys.com 2
http://www.fachak.com 2
http://10.150.200.57 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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

Enterprise PHP (Zend UK Business Conference) Enterprise PHP (Zend UK Business Conference) Presentation Transcript

  • Enterprise PHP development Ivo Jansch <ivo@ibuildings.nl> PHP For Business Seminar, July 2nd 2007
  • About me
    • CTO at Ibuildings.nl
      • Development using PHP (websites, applications)
      • Big projects (high traffic, multi-tier, clusters, high availability, large teams)
      • Consultancy (how to do big projects)
    • Geek!
      • Author of several Open Source projects
      • Yair: “careful, these are business people, NO GEEKS!”
  • About PHP
    • Traditional metaphor
      • PHP is like Lego bricks
      • Bricks allowing you to build anything
  • About PHP
    • PHP is no longer a toy
      • Let’s use the metaphor of actual bricks
      • Because we’re building actual buildings now
  • About Bricks
    • Extreme simplicity
    • Easy to learn
    • Versatile
    • Cheap
    • ... so building a skyscraper must be peanuts, right?
  • 7 important steps
  • Step 1 - Recruitment
    • “ Dear Mr. Businessman,
    • I have read about your plans to build a new skyscraper and I am applying for a job.
    • I have a lot of experience with Bricks. I taught myself how to use them and have been maintaining our family shed for a few years now.”
  • Step 1 - Recruitment
    • Hire software engineers
      • Computer Science background
      • It’s OK if they didn’t use Bricks
      • Train your people
      • Consider Zend Certification
  • Step 2 - Architecture
    • Don’t just start stacking bricks
    • Create an architecture first
  • Step 2 - Architecture
    • Functional Design
      • Requirements definition
    • Technical Design
      • Modelling
        • Class diagrams
        • ER diagram (data model)
        • Colaboration diagrams
        • Use cases
        • etc.
      • Tools: UML, whiteboards
  • Step 3 - Tools
    • You don’t need tools...
    • But they make you productive
  • Step 3 - Tools
    • Tools for developers:
      • Eclipse (PHP-IDE)
      • Vim
      • Zend Studio
    • Source control:
      • SVN
      • CVS
  • Step 4 - Foundation
    • Start stacking bricks?
      • How many bricks does it take..
      • What about stability?
    • Start with a foundation
  • Step 4 - Foundation
    • Use a framework
      • Stable basis
      • Provides guidelines (frame)
      • Off the shelf components
    • Examples
      • Zend Framework http://framework.zend.com
      • Symfony http://www.symfony-project.org
      • ATK http://www.achievo.org/atk
  • Step 5 – Design Patterns
    • Requirement 1056.4:
    • W e need to be able to look outside, but we
    • can't make holes in the wall ( rain should be
    • kept outside ) . When it's sunny, a hole is ok.
  • Step 5 – Design Patterns
    • A ‘window’ is a concept
      • Best practice way of solving a particular problem
      • Standard solution
      • Ready-made products available
    • In PHP, we call this a ‘design pattern’
      • Ask your geeks about Iterators and Singletons
  • Step 6 - Testing
    • Is your software only tested once it’s built?
  • Step 6 - Testing
    • Consider Test Driven Development
  • Step 6 - Testing
    • Testing for PHP applications:
      • PHPUnit http://www.phpunit.de/
      • SimpleTest http://www.lastcraft.com/simple_test.php
    • Continuous Integration:
      • Xinc http://xinc.entrypoint.biz/
  • Step 7 - Optimization
    • Users are reporting:
    • &quot;I work on the 197th floor. Every day I
    • have to walk the stairs for 2 hours, then I
    • have only 4 hours left to do my job.&quot;
  • Step 7 - Optimization
    • Solution: Elevator
  • Step 7 - Optimization
    • In PHP, this ‘elevator’ is called an ‘accelerator’
      • This is how PHP works (very non-geek version):
        • getToWork(); // php engine does this
        • getTheJobDone(); // this is your code
      • An accelerator improves the ‘getToWork’ part
      • Accelerators for PHP:
        • eAccelerator http://eaccelerator.net/
        • APC http://pecl.php.net/package/APC
        • Zend Platform http://www.zend.com/products/zend_platform
  • Step 7 - Optimization
    • Users complain:
    • “ Every time I need coffee I have to go
    • to the top floor to get some.”
  • Step 7 - Optimization
    • Solution: Create small coffee corners on every floor so people don’t have to go to the main restaurant every time.
    • In PHP we call this caching
      • Don’t query the database everytime you need data
      • Use locally stored copy (file or memory)
    • PHP Caching solutions:
      • Smarty http://smarty.php.net
      • Zend Platform http://www.zend.com/products/zend_platform
      • Memcached http://danga.com/memcached/
  • The Big Picture
    • No ‘cowboy coding’, but structured steps
      • Higher quality
      • Software will be easier to maintain (and cheaper)
    • Development methodology
      • Waterfall
      • Agile (DSDM, XP, Scrum)
    • Software Development Life Cycle (SDLC)
      • Adapt from existing methods, learn from experts
      • Document it properly
      • Make it the cornerstone of your development efforts
      • “ The Zend Way”
  • More things to think about?
    • Debugging
    • Security
    • Deployment
    • Maintenance
    • Change management
    • Monitoring
    • Need help?
      • http://www.ibuildings.nl [email_address]
      • http://www.zend.com
  • Questions? http://www.ibuildings.nl http://www.achievo.org/blog [email_address]