Enterprise PHP Development - ZendCon 2008

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Enterprise PHP Development - ZendCon 2008 - Presentation Transcript

    1. Enterprise PHP Development Ivo Jansch - ivo@ibuildings.com ZendCon 2008 Enterprise PHP
    2. About me • Ibuildings: • PHP services (dev, training, consulting) • “Professionalizing PHP usage” • Based in Europe (4 offices in UK and NL) • 65 people, 40 devs/consultants (mostly ZCE) • Me: • CTO at Ibuildings • Author at php|architect • Geek • Blogger Enterprise PHP
    3. What’s an Enterprise? “Any of several ships by that name in the Star Trek universe” – Wikipedia “A business, company or comparable organization” Enterprise PHP
    4. PHP usage is changing • 1998 • Personal stuff • 2003 • Simple websites • Content management • Blogs • 2008 • Big websites • Banks • Insurance Companies Enterprise PHP
    5. PHP’s Quest so far Enterprise SME SOHO Enterprise PHP
    6. Is PHP ‘enterprise ready’? Enterprise PHP
    7. Is PHP ‘enterprise ready’?  Big  Small  Enterprise friendly  Lightweight  enterpriCe  Cheap  CS required  Easy to learn Enterprise PHP
    8. A word from my girlfriend It's not the SIZE of the tool... It's how you USE it. Enterprise PHP
    9. Traditional PHP metaphor PHP is like LEGO bricks Enterprise PHP
    10. Improved metaphor PHP is no longer a toy Let’s use the metaphor of actual bricks Enterprise PHP
    11. About Bricks • Extreme Simplicity • Easy to learn • Versatile • Cheap Enterprise PHP
    12. Enterprise Development In 10 steps Enterprise PHP
    13. Step 1 – The Team “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.” Enterprise PHP
    14. Step 1 – The Team • Be a Software Engineer • Train your skills • Study OO principles • Consider Zend Certification Enterprise PHP
    15. Step 2 - Requirements • What does the customer want? • What will visitors want? • What does the customer really need? Enterprise PHP
    16. Step 2 - Requirements Functional Design • Requirements Definition • Interaction Design / Wireframes • Flow Diagrams • Tip: Axure Enterprise PHP
    17. Step 3 - Architecture Don’t just start stacking bricks Create an architecture first Enterprise PHP
    18. Step 3 - Architecture Technical Design • Modeling • Class Diagrams • ER Diagrams (data model) • Collaboration Diagrams • Use Cases etc. • Tools: • UML • Whiteboards Enterprise PHP
    19. Step 3 - Architecture High Level Architectures: • MVC (Model, View, Controller) • SOA (Service Oriented Architecture) • Multi-tier development (Frontend, Application, BL, Data) • CBD (Component Based Development) Enterprise PHP
    20. Step 4 - Tools You don’t need tools… But they make you productive Enterprise PHP
    21. Step 4 - Tools Development: • Eclipse PDT • Zend Studio • PhpEd • Vim • Komodo IDE’s versus Editors • Debugging & Profiling • Syntax Check • Cross-Referencing / Navigation Enterprise PHP
    22. Step 4 - Tools Source Control • CVS / SVN / MS VSS • Bitkeeper / GIT Documentation • phpDocumentor http://phpdoc.org • PHPXRef http://phpxref.sourceforge.net • Wiki http://en.wikipedia.org/wiki/List_of_wiki_software Enterprise PHP
    23. Step 5 - Foundation Start stacking bricks? • How many bricks does it take? • What about stability? Start with a foundation Enterprise PHP
    24. Step 5 - Foundation Use a framework • Provides guidelines (frame) • Off the shelf components Examples • Zend Framework – http://framework.zend.com • ezComponents – http://ez.no/ezcomponents • Symfony – http://www.symfony-project.org • ATK – http://www.atk-framework.com Enterprise PHP
    25. Step 5 - Foundation The “Not Invented Here” Syndrome: • “The existing frameworks are no good. I can do this better.” • “This framework is no good. It can do A through Y but I need Z.” • “This framework is too big. It provides A-Z but we only need A and B.” • “I know there's a good framework. But I would like to learn.” Enterprise PHP
    26. Step 6 - Design Patterns Requirement 1056.4: We 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. Enterprise PHP
    27. Step 6 - Design Patterns • A ‘window’ is a concept • Best practice way of solving a particular problem • In IT, we call this a ‘design pattern’ • Popular patterns in PHP: • MVC, Factory, Singleton, Registry, Decorator • Good read: • php|architect's Guide to PHP Design Patterns - Jason E. Sweat Enterprise PHP
    28. Step 7 - Testing Is your software tested after it has gone live? Enterprise PHP
    29. Step 7 - Testing Various types of testing: • Developer testing • Functional testing • Environment testing • Performance testing • Usability testing Enterprise PHP
    30. Step 7 - Testing A common scenario… Enterprise PHP
    31. Step 7 - Testing The user complains… MWOEHA! BUG! Enterprise PHP
    32. Step 7 - Testing Developer attacks the problem… fix_bug(); Enterprise PHP
    33. Step 7 - Testing Problem Solved! Enterprise PHP
    34. Step 7 - Testing • Solution: Unit Tests • Automated testing after each change • Prevents regressions • Testing for PHP applications: • PHPUnit http://www.phpunit.de/ • SimpleTest http://www.lastcraft.com/simple_test.php • Continuous Integration: •CruiseControl http://cruisecontrol.sourceforge.net/ • phpUnderControl http://www.phpundercontrol.org/ Enterprise PHP
    35. Step 7 - Testing • Test Driven Development 1. Define functionality 2. Create testcase 3. Run test => test fails 4. Implement functionality • Test succeeds? Done • Test fails? Refactor Repeat step 4 until finished Enterprise PHP
    36. Step 8 - Optimization Users are reporting: \"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.\" Enterprise PHP
    37. Step 8 - Optimization Solution: Elevator Enterprise PHP
    38. Step 8 - Optimization In PHP, this ‘elevator’ is called an ‘accelerator’ • This is how PHP works (pseudo-ish code): read index.php; // enter the building compile index.php; // go to floor 197 echo “Hello World”; // get the job done • An accelerator improves the first 2 steps • Accelerators for PHP: • APC http://pecl.php.net/package/APC • eAccelerator http://eaccelerator.net/ • Zend Platform http://www.zend.com/products/zend_platform Enterprise PHP
    39. Step 8 - Optimization Users complain: “Every time I want coffee I have to go to the top floor to get some.” Enterprise PHP
    40. Step 8 - 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: •Zend_Cache http://framework.zend.com • Zend Platform http://www.zend.com/products/zend_platform • Memcached http://danga.com/memcached/ Enterprise PHP
    41. Step 9 - Deployment • Lifecycle: • Develop • Test • Deploy to acceptance test environment • Deploy to live • Use SVN • Code is just a part, don't forget the database • Create a 'Deployment & Release Profile' Enterprise PHP
    42. Step 9 - Deployment System Architecture PHP MySQL Apache Linux From a simple single machine LAMP stack… Enterprise PHP
    43. Step 9 - Deployment … to a High Availability, Scalable Architecture Enterprise PHP
    44. Step 10 - Operations Monitoring: • Logfiles • Monitor infrastructure (tools such as Nagios) • Monitor application (tools such as Zend Platform) • Monitor business (is the money still pouring in?) Enterprise PHP
    45. Step 10 - Operations Debugging • Ideal: “I had error x when I selected y after I clicked z” • Reality: “It doesn't work!” “What exactly doesn't work, and what did you do?” “It just ******** didn't work, FIX IT.” Enterprise PHP
    46. Step 10 - Operations Solutions: • A ‘root cause’ analysis tool • Logging • Context Capture Enterprise PHP
    47. Step 10 - Operations Change management: • Ticket system • Stick to your deployment - use the DRP • DON'T TOUCH THE LIVE ENVIRONMENT. EVAH! Enterprise PHP
    48. The Big Picture (We’re almost done) Enterprise PHP
    49. 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 Enterprise PHP
    50. More things to think about • Planning • Coding • Implementation • Security Enterprise PHP
    51. Shameless Plug Book about this all: • php|architect’s Guide to Enterprise PHP Development • ISBN: 978-0-9738621-8-8 • Order at phparch.com or amazon.com • http://www.enterprisephp.nl Enterprise PHP
    52. Questions? ivo@ibuildings.com http://www.ibuildings.com http://www.jansch.nl Enterprise PHP

    + Ivo JanschIvo Jansch, 2 years ago

    custom

    3036 views, 3 favs, 0 embeds more stats

    Zendcon version of my Enterprise PHP talk.

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3036
      • 3036 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 131
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories