SlideShare a Scribd company logo
Enterprise PHP development Ivo Jansch <ivo@ibuildings.com> PHPLondon Conference, February 29, 2008
About me CTO at Ibuildings Development using PHP (websites, applications) Big projects (high traffic, multi-tier, clusters, high availability, large teams) Consultancy (training, audits) Partner of Zend Technologies 9 years in NL, 3 months in UK Geek! Author of several Open Source projects Interested in PHP, Web 2.0, Science Nervous in front of audiences bigger than 5 ;-)
What's an enterprise? Wikipedia: “ Any of several ships by that name in the Star Trek fictional universe” “ A business, company, or comparable organization”
Is PHP Enterprise ready? CIO Magazine: “ PHP works well for prototyping because it is easy to get a site up and running. Use PHP to design the site [...] but when it comes time for development, tell the team you want the result to look and act like this PHP site...but in Java” (Or: “great, this is exactly what I need! now do it again, at twice the cost!”) http://www.cio.com/article/176250 (skip the article, read the comments)

Recommended for you

Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016

With global shift towards flexibility of cloud there are different demands on monitoring availability and performance of applications provided in the cloud. There are obvious limitations in accessing components of app hosted by third party run outside of internal environment. Same time there are opportunities of using vendor API and status page. In Salesforce, one of the most innovative company in the world by Forbes and one of the biggest cloud service provider, we understand the need of customer to be able to see in real time availability and performance of cloud application. In the following presentation we're going to list and describe multiple ways of monitoring cloud apps. Some of the methods are: building in web monitoring using Curl, web browser automation tools like Selenium, external scripts (reading vendor status dashboard) and API calls to the app.

open sourceapiscripts
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017

Blueprints in Unreal Engine 4 can be both loved and hated. To reduce hate for blueprints, the presenter recommends using events over ticks, components to generate events, enums and switches instead of branches, multiple graphs for organization, functions, macros, and following good programming practices. While blueprints may seem like programming, they are advantageous for certain tasks like interfacing with shaders. Following design best practices can make blueprints more readable and maintainable. Alternatives to blueprints include UnrealEnginePython, Unreal.js, and SkookumScript. An indie game called Downward successfully used blueprints.

codemotion rome 2017
Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006

Introduce to Apache Beam Dive in to Beam's architecture and live demo running data pipeline on different runners such as Google Dataflow, Flink and Spark

sparkflinkapachebeam
Is PHP Enterprise ready? Small Lightweight Cheap Easy to learn Big Enterprise friendly enterpriCe CS required
A word from my girlfriend It's not the  SIZE   of the tool... It's how you USE it.
PHP is changing... 1998 Personal stuff 2003 Simple websites Content management Blogs 2008 Big websites Banks Insurance Companies ...
PHP is changing... Traditional metaphor PHP is like Lego bricks Bricks allowing you to build anything

Recommended for you

CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspective

This document discusses challenges of deploying, monitoring, and debugging systems using CQRS and event sourcing from a DevOps perspective. It describes using a blue/green deployment approach, implementing consistent and usable logging, monitoring key metrics and data streams, and employing distributed tracing to identify the origin of requests in order to quickly debug problems. The overall goal is to build scalable, resilient, and automated systems while facilitating operational tasks through iterative improvements to tools and processes.

cqrsevent sourcingarchitecture
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček

This document discusses integrating Spring Boot and JavaFX for an embedded and desktop application. It outlines the motivation for using these technologies, describes the implementation journey which faced limited integration materials, and demonstrates a simple "Hello World" example. While integration posed some challenges, combining Spring Boot and JavaFX provides benefits from both worlds. The conclusion is that yes, Spring Boot and JavaFX can work together, though JavaFX still lacks traction despite its benefits.

javafxjavanturaspringboot
Let's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid appsLet's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid apps

Ever since Google and Apple became the major players in mobile phones, mobile browser and its capability have been drastically improved. However, the performance and development toolings were always a headache for developers. But they never are! This session will describe all the goodies from the latest practices to make mobile app development more enjoyable.

rakuten technology conference 2017rakutentechnology
PHP is changing... 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?
Enterprise development in 10 steps
Step 1 – The Team “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.”

Recommended for you

Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev

The document provides an overview of the Graal VM, which is a new just-in-time (JIT) compiler for the Java Virtual Machine (JVM) that brings high performance to scripting languages via the Truffle API. It discusses how Graal generates machine code from an optimized AST rather than bytecode, and how the Truffle API allows creation of language interpreters in Graal. Performance benchmarks show Graal improving performance for languages like JavaScript, Ruby, and R compared to other implementations. Future directions include supporting more languages and compiler optimizations in Graal's extensible framework.

martin toshevjavantura v4hujak
Create The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent EllerbachCreate The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent Ellerbach

Introduction to an Internet of Things system. This session will go through a real system: my own sprinkler system including sensors, data manipulation, consumption, BI. This will give you an overview of a full projects, from the device side to the storage, consumption, analyze and insights. Boards like Raspberry Pi running Linux, Windows as well as Arduino and Netduino are used. The server side is based on Azure using services like Azure IoT Hub, Stream Analytics, Mobile Services, SQL Azure and more!

itcamp 2016laurent ellerbach
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać

This document discusses using FreeMarker as a template engine with Spring MVC instead of JSP. It provides an overview of FreeMarker, how to configure Spring MVC to use it, and examples of FreeMarker syntax including variables, collections, includes, and macros. Commonly used FreeMarker components are demonstrated along with comparisons to JSP syntax.

hujakjavantura v4spring
Step 1 – The Team Be a software engineer Train your skills Study OO principles Consider Zend Certification
Step 2 - Requirements What does the customer need? What do visitors want?
Step 2 - Requirements Functional Design Requirements definition Interaction Design /  Wireframes Flow diagrams
Step 3 - Architecture Don’t just start stacking bricks Create an architecture first

Recommended for you

Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!

Serverless in much more than Functions. In this session, we'll look at various building blocks of Azure Serverless components,

serverlessfaasfunctions
How Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled CosmosHow Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled Cosmos

Cosmos is a large-scale data processing system used by thousands at Microsoft to process exabytes of data across clusters of over 50,000 servers. It provides a SQL-like language and allows teams to easily share and join data. This drives huge scalability requirements. The Apollo scheduler was developed to maximize cluster utilization while minimizing latency for heterogeneous workloads at cloud scale. Later, JetScope was created to support lower latency interactive queries through intermediate result streaming and gang scheduling while maintaining fault tolerance.

memsqlmicrosoftcosmos
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018

This document discusses serverless computing and introduces Nuclio, an open source serverless platform. Some key points: - Serverless platforms provide easy deployment of functions but lack performance and number of event sources. Nuclio aims to improve on this with high concurrency and low latency. - Nuclio's architecture allows extreme performance of up to 400,000 events/second per process with sub-second latency. It supports various event sources and data bindings. - Nuclio works with Kubernetes, providing portability across clouds, on-premises, and hybrid environments while automating infrastructure management and scaling.

serverless
Step 3 - Architecture Technical Design Modelling Class diagrams ER diagram (data model) Colaboration diagrams Use cases etc. Tools: UML, whiteboards
Step 3 - Architecture High Level Architectures: MVC (Model View Controller) SOA (Service Oriented Architecture) Multi-tier development (Frontend, Application, Data) CBD (Component Based Development)
Step 4 - Tools You don’t need tools... But they make you productive
Step 4 - Tools Development: Eclipse (PDT) PhpED Vim Zend Studio IDE's vs Editors Debugging Profiling Navigation / cross references Inspection

Recommended for you

Lessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating ScubaLessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating Scuba

This document provides an overview of Scuba, Facebook's real-time analytics database. It summarizes Scuba's key features including real-time data ingestion and querying capabilities with simple rollup queries and flexible schemas. It also describes Scuba's architecture with distributed data storage and demand control. Finally, it discusses lessons learned from building and operating Scuba, including common issues and reasons for its success filling a specific niche for analytics.

memsqldatabasefacebook
An Introduction to Prometheus
An Introduction to PrometheusAn Introduction to Prometheus
An Introduction to Prometheus

This document provides an introduction and overview of Prometheus, an open-source monitoring system. It discusses what monitoring is, how Prometheus differs from traditional "blackbox" monitoring systems by taking a "whitebox" approach that understands the internals of applications. It describes how Prometheus scrapes metrics from targets, stores and queries the time series data, and generates alerts. Key aspects of Prometheus like PromQL, the alertmanager, and common usage are summarized.

Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containerized applications into logical units for easy management and discovery called pods. It can be used to deploy a containerized ASP.NET Core application. It provides basic mechanisms for self-healing, auto-scaling and updates through concepts like deployments, services, replica sets and labels.

codemotion tel avivasp.netkubernetes
Step 4 - Tools Source Control CVS / SVN Bitkeeper / GIT Branching Tagging
Step 5 - Foundation Start stacking bricks? How many bricks does it take.. What about stability? Start with a foundation
Step 5 - Foundation Use a framework Provides guidelines (frame) Off the shelf components Examples Zend Framework http://framework.zend.com CakePHP http://http://www.cakephp.org  ezComponents http://ez.no/ezcomponents  Symfony http://www.symfony-project.org ATK http://www.achievo.org/atk
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.”

Recommended for you

Live Coding a KSQL Application
Live Coding a KSQL ApplicationLive Coding a KSQL Application
Live Coding a KSQL Application

Join us as we build a complete streaming application with KSQL. There will be plenty of hands-on action, plus a description of our thought process and design choices along the way. Look out for advice on best practices and handy tips and tricks as we go. This is part 2 out of 3 in the Empowering Streams through KSQL series.

ksql
Clearing Airflow Obstructions
Clearing Airflow ObstructionsClearing Airflow Obstructions
Clearing Airflow Obstructions

Presentation given on the 15th July 2021 at the Airflow Summit 2021 Conference website: https://airflowsummit.org/sessions/2021/clearing-airflow-obstructions/ Recording: https://www.crowdcast.io/e/airflowsummit2021/40

pythongcpmachine learning
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)

The document discusses enterprise PHP development. It begins by noting how PHP usage has changed over time from personal projects in 1998 to powering large websites, banks, and insurance companies today. It then addresses whether PHP is "enterprise ready" and discusses improved metaphors for PHP beyond toys or LEGO bricks. The remainder of the document outlines 10 steps for enterprise PHP development, including establishing requirements, designing architecture and tools, using frameworks, implementing design patterns, and emphasizing testing.

phpphpworksenterprise
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.
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
Step 7 - Testing Is your software tested  after  it has gone live?
Step 7 - Testing Various types of testing Developer testing Functional testing Environment testing Performance testing Usability testing

Recommended for you

Introduction to web and php mysql
Introduction to web and php mysqlIntroduction to web and php mysql
Introduction to web and php mysql

The document provides an introduction to the World Wide Web and basics of PHP programming language. It discusses what the internet and WWW are, how HTTP works, basics of web application development. It then covers installing WAMP or XAMPP on Windows, history and features of PHP versions. Common PHP concepts like variables, data types, operators, control structures like loops and conditional statements are explained.

phpmysqlweb development
Magento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHPMagento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHP

Magento eCommerce and the Next Generation of PHP Applications. Presentation from 09/17/08 ZendCon keynote session.

zendcon08
[Php] navigations
[Php] navigations[Php] navigations
[Php] navigations

The PHP code checks the QUERY_STRING server variable. If it equals "SoD", it prints "owns you!", otherwise it prints "don't front!". It then shows an example of parsing multiple strings from the QUERY_STRING with explode() and switches. The document describes an affiliate network called Advertgoal that pays on a CPA basis with a $50 minimum payment via PayPal or check every 30 days and offers a 5% referral commission.

Step 7 - Testing Common scenario
Step 7 - Testing User complains... MWOEHA! BUG!
Step 7 - Testing Developer attacks the problem fix_bug();
Step 7 - Testing Problem solved!

Recommended for you

A SOA approximation on symfony
A SOA approximation on symfonyA SOA approximation on symfony
A SOA approximation on symfony

A little presentation about how we squeezed Symfony to implement some sort of SOA better see here https://docs.google.com/presentation/d/1TnDjbERj8F6UgqbZ7fJQsAL6yfg5G56G1iTqSzeTUE8/pub?start=false&loop=false&delayms=3000

symfony2 soa
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool

I gave this presentation at Codemotion Rome, it's the a story on a monolithic architecture evolved to an SOA architecture.

soapythonapi
Telephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDBTelephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDB

This document discusses building telephony applications using MongoDB, OpenShift, and Twilio. It provides an overview of each technology and how they can be combined. Specifically, it describes a simple SMS group chat application hosted on OpenShift that uses Twilio for SMS capabilities and MongoDB for data storage. The document recommends best practices like using queuing to smooth load and storing data in a database rather than in the application instance.

mongodbopenshiftpaas
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: Xinc  http://code.google.com/p/xinc/
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
Step 8 - 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 8 - Optimization Solution: Elevator

Recommended for you

Php my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.netPhp my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.net

In this ppt you will learn about functions and array in php. What are functions, how to declare and use. built in functions. include and required keywords. how are arguments used. how to create functions inside functions. What are php arrays, how to create an array and use them. Built in array functions. What are super globals?

arraysweb2.0functions
Service Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management SystemService Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management System

Short presentation of SOA leyer for FOAFRealm (Distributed Identity Management System). It shows the motivation and how the goals were achieved.

Working with Asynchronous Events
Working with Asynchronous EventsWorking with Asynchronous Events
Working with Asynchronous Events

Talk given at the PHP user group Frankfurt regarding asynchronous events in Symfony 2 and the RabbitMQ library. We demonstrate some ups and downs as well as best practices and lessons learned.

rabbitmqphpsymfony
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: eAccelerator http://eaccelerator.net/ APC http://pecl.php.net/package/APC Zend Platform http://www.zend.com/products/zend_platform
Step 8 - Optimization Users complain: “Every time I need coffee I have to go  to the top floor to get some.”
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 Smarty http://smarty.php.net Zend Platform http://www.zend.com/products/zend_platform Memcached http://danga.com/memcached/
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'

Recommended for you

Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...

A collection of advices to not bang your head against the wall like I did while taming service-oriented architectures.

soapcakephp2013
Services Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQLServices Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQL

Talk from MySQL Conference 2008 about scaling your data layer by running your requests in parallel and asynchronously over a services layer.

phpmysqlscaling
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...

Object Oriented Programming in enterprise level PHP is incredibly important. In this presentation, concepts like MVC architecture, data mappers, services, and domain and data models will be discussed. Simple demonstrations will be used to show patterns and best practices. In addition, using tools like Doctrine or integration with Salesforce or the AS/400 will also be discussed. There will be an emphasis on the practical application of these techniques as well - this isn't just a theoretical talk! This presentation is great for those just beginning to create enterprise applications as well as those who have had years of experience.

object-oriented programmingphp
Step 9 - Deployment System Architecture PHP Apache Linux MySQL From a simple LAMP stack on a single machine...
Step 9 - Deployment System Architecture ... to a High Availability, Horizontally Scalable architecture
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?)
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.”

Recommended for you

May 2013 clif notes and dtr
May 2013 clif notes and dtrMay 2013 clif notes and dtr
May 2013 clif notes and dtr

This document provides information on various community resources and programs available to Fort Drum service members and their families in May 2013. It lists 27 organizations and programs including the American Red Cross, Army Career & Alumni Program, Army Community Service, Better Opportunities for Single Soldiers, Chapel services, Child and Youth Services programs, Commissary, and more. For each, it provides contact information and highlights upcoming events and activities in May such as seminars, training sessions, celebrations, and youth sports registration deadlines.

Program 2010
Program 2010Program 2010
Program 2010

The National Young Women's Christian Association of Romania (NYWCAR) document outlines several of its educational programs aimed at improving women's lives and empowering youth. The programs address topics like leadership development, women's rights, preventing discrimination and intolerance, English language courses, health education, and preventing child trafficking. The NYWCAR is a non-profit organization that runs seminars, workshops and educational activities in several Romanian cities to achieve its goals of promoting women's empowerment, community values, and public health.

Usability Review of Mashup Tools
Usability Review of Mashup ToolsUsability Review of Mashup Tools
Usability Review of Mashup Tools

Research of usability of Mashup Tools done for Kent County Council as part of the Pic and Mix Pilot (2009), opening up Kent related datasets for all to use and exploit.

pic and mixopen datamashups
Step 10 - Operations Solution A 'root cause  analysis' tool
Step 10 - Operations Change management Ticket system Stick to your deployment - use the DRP DON'T TOUCH THE LIVE ENVIRONMENT.  But I absolutely have to... DON'T! but... NO! I MEAN IT! :-)
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
More things to think about? Development Implementation Documentation Security

Recommended for you

Cloud foundry intro with groovy
Cloud foundry intro with groovyCloud foundry intro with groovy
Cloud foundry intro with groovy
groovycloud computing
Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010

This document provides an overview of real estate and investment opportunities in the Czech Republic. It discusses how the Czech real estate market has matured in recent decades and stabilized during the economic recession. The Czech Republic remains an attractive investment destination due to advantages like its location in Europe, infrastructure, skilled workforce, and price stability. The document also lists CzechInvest offices around the world that can help connect investors with opportunities in the Czech real estate sector and other industries in the Czech Republic.

czech
Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013

The document provides information on the global locations of eNetwork centres. It lists over 100 locations across 6 continents including cities in Australia, Austria, Bahamas, Bahrain, Belgium, Brazil, Bulgaria, Canada, China, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Ecuador, Egypt, Estonia, Finland, France, Germany, Ghana, Greece, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Kuwait, Lebanon, Luxembourg, Macau, Malaysia, Malta, Mexico, Mozambique, Netherlands, Nigeria, Norway, Philippines, Poland, Portugal, Saudi Arabia, Serbia, Singapore, Slovenia, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey,

business centrescoworkingbusiness services
Before I finish Dutch PHP Conference 2008 http://www.phpconference.nl  Call for Ideas  see your favorite guru hear your favorite topic Buy my book “php|architect's Enterprise PHP Development” Should be available in a few months  Talk to us Visit our booth We are still hiring We have stuff to sell you ;-)
Questions? http://www.ibuildings.com http://www.jansch.nl [email_address]

More Related Content

What's hot

Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal Nagios
Nagios
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouse
Altinity Ltd
 
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten RachfahlStorage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
ITCamp
 
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Zabbix
 
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Codemotion
 
Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006
Randy Huang
 
CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspective
Maria Gomez
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Let's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid appsLet's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid apps
Rakuten Group, Inc.
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Create The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent EllerbachCreate The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent Ellerbach
ITCamp
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!
Lorenzo Barbieri
 
How Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled CosmosHow Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled Cosmos
SingleStore
 
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
iguazio
 
Lessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating ScubaLessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating Scuba
SingleStore
 
An Introduction to Prometheus
An Introduction to PrometheusAn Introduction to Prometheus
An Introduction to Prometheus
Evgeny Shmarnev
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
Codemotion Tel Aviv
 
Live Coding a KSQL Application
Live Coding a KSQL ApplicationLive Coding a KSQL Application
Live Coding a KSQL Application
confluent
 
Clearing Airflow Obstructions
Clearing Airflow ObstructionsClearing Airflow Obstructions
Clearing Airflow Obstructions
Tatiana Al-Chueyr
 

What's hot (20)

Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal Nagios
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouse
 
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten RachfahlStorage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
 
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
Sumit Goel - Monitoring Cloud Applications Using Zabbix | ZabConf2016
 
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
Unreal Engine 4 Blueprints: Odio e amore Roberto De Ioris - Codemotion Rome 2017
 
Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006Apache Beam @ GCPUG.TW Flink.TW 20161006
Apache Beam @ GCPUG.TW Flink.TW 20161006
 
CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspective
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
Let's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid appsLet's talk about the future: state-of-the-art mobile web & hybrid apps
Let's talk about the future: state-of-the-art mobile web & hybrid apps
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
 
Create The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent EllerbachCreate The Internet of Your Things example of a real system - Laurent Ellerbach
Create The Internet of Your Things example of a real system - Laurent Ellerbach
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
 
Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!Serverless computing in Azure: Functions, Logic Apps and more!
Serverless computing in Azure: Functions, Logic Apps and more!
 
How Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled CosmosHow Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled Cosmos
 
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
 
Lessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating ScubaLessons Learned from Building and Operating Scuba
Lessons Learned from Building and Operating Scuba
 
An Introduction to Prometheus
An Introduction to PrometheusAn Introduction to Prometheus
An Introduction to Prometheus
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
 
Live Coding a KSQL Application
Live Coding a KSQL ApplicationLive Coding a KSQL Application
Live Coding a KSQL Application
 
Clearing Airflow Obstructions
Clearing Airflow ObstructionsClearing Airflow Obstructions
Clearing Airflow Obstructions
 

Viewers also liked

Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
Ivo Jansch
 
Introduction to web and php mysql
Introduction to web and php mysqlIntroduction to web and php mysql
Introduction to web and php mysql
Programmer Blog
 
Magento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHPMagento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHP
varien
 
[Php] navigations
[Php] navigations[Php] navigations
[Php] navigations
Thai Pham
 
A SOA approximation on symfony
A SOA approximation on symfonyA SOA approximation on symfony
A SOA approximation on symfony
Joseluis Laso
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
Alessandro Cinelli (cirpo)
 
Telephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDBTelephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDB
Mark Atwood
 
Php my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.netPhp my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.net
Programmer Blog
 
Service Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management SystemService Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management System
adameq
 
Working with Asynchronous Events
Working with Asynchronous EventsWorking with Asynchronous Events
Working with Asynchronous Events
Garden of Concepts GmbH
 
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Alessandro Nadalin
 
Services Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQLServices Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQL
Joe Stump
 
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Aaron Saray
 
May 2013 clif notes and dtr
May 2013 clif notes and dtrMay 2013 clif notes and dtr
Program 2010
Program 2010Program 2010
Program 2010
YWCARO
 
Usability Review of Mashup Tools
Usability Review of Mashup ToolsUsability Review of Mashup Tools
Usability Review of Mashup Tools
Tanya Ahmed
 
Cloud foundry intro with groovy
Cloud foundry intro with groovyCloud foundry intro with groovy
Cloud foundry intro with groovy
Guillaume Laforge
 
Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010
Innovation Tank
 
Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013
Pier Paolo Mucelli
 
22 insights into Design by Tom Peters
22 insights into Design by Tom Peters22 insights into Design by Tom Peters
22 insights into Design by Tom Peters
Say Digital Media
 

Viewers also liked (20)

Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
 
Introduction to web and php mysql
Introduction to web and php mysqlIntroduction to web and php mysql
Introduction to web and php mysql
 
Magento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHPMagento eCommerce And The Next Generation Of PHP
Magento eCommerce And The Next Generation Of PHP
 
[Php] navigations
[Php] navigations[Php] navigations
[Php] navigations
 
A SOA approximation on symfony
A SOA approximation on symfonyA SOA approximation on symfony
A SOA approximation on symfony
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Telephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDBTelephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDB
 
Php my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.netPhp my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.net
 
Service Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management SystemService Oriented Architecture for Distributed Identity Management System
Service Oriented Architecture for Distributed Identity Management System
 
Working with Asynchronous Events
Working with Asynchronous EventsWorking with Asynchronous Events
Working with Asynchronous Events
 
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
 
Services Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQLServices Oriented Architecture with PHP and MySQL
Services Oriented Architecture with PHP and MySQL
 
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
 
May 2013 clif notes and dtr
May 2013 clif notes and dtrMay 2013 clif notes and dtr
May 2013 clif notes and dtr
 
Program 2010
Program 2010Program 2010
Program 2010
 
Usability Review of Mashup Tools
Usability Review of Mashup ToolsUsability Review of Mashup Tools
Usability Review of Mashup Tools
 
Cloud foundry intro with groovy
Cloud foundry intro with groovyCloud foundry intro with groovy
Cloud foundry intro with groovy
 
Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010Prehled firem a investic v CR - 2010
Prehled firem a investic v CR - 2010
 
Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013Eoffice eNetwork Directory 2013
Eoffice eNetwork Directory 2013
 
22 insights into Design by Tom Peters
22 insights into Design by Tom Peters22 insights into Design by Tom Peters
22 insights into Design by Tom Peters
 

Similar to Enterprise PHP (PHP London Conference 2008)

Enterprise PHP (Zend UK Business Conference)
Enterprise PHP (Zend UK Business Conference)Enterprise PHP (Zend UK Business Conference)
Enterprise PHP (Zend UK Business Conference)
Ivo Jansch
 
Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008
Ivo Jansch
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
Marc Morera
 
Drupal 7 ci and testing
Drupal 7 ci and testingDrupal 7 ci and testing
Drupal 7 ci and testing
Claudio Beatrice
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9
PrinceGuru MS
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
joeysim
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
Joshua Warren
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
Lorna Mitchell
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
Mirco Hering
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
Ad van der Veer
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
Sigma Software
 
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
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1
Jacek Tomaszewski
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
Tony Bibbs
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...
Bhavin Javia
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
Elyse Kolker Gordon
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
edm00se
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
IT Event
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
Salesforce Engineering
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Svetlin Nakov
 

Similar to Enterprise PHP (PHP London Conference 2008) (20)

Enterprise PHP (Zend UK Business Conference)
Enterprise PHP (Zend UK Business Conference)Enterprise PHP (Zend UK Business Conference)
Enterprise PHP (Zend UK Business Conference)
 
Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008Enterprise PHP Development - ZendCon 2008
Enterprise PHP Development - ZendCon 2008
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
 
Drupal 7 ci and testing
Drupal 7 ci and testingDrupal 7 ci and testing
Drupal 7 ci and testing
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
Slides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetingsSlides from LAX & DEN usergroup meetings
Slides from LAX & DEN usergroup meetings
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
 

More from Ivo Jansch

Own Your Apps
Own Your Apps Own Your Apps
Own Your Apps
Ivo Jansch
 
PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)
Ivo Jansch
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
Ivo Jansch
 
Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)
Ivo Jansch
 
The Business Case For Telecommuting
The Business Case For TelecommutingThe Business Case For Telecommuting
The Business Case For Telecommuting
Ivo Jansch
 
Php Development In The Cloud
Php Development In The CloudPhp Development In The Cloud
Php Development In The Cloud
Ivo Jansch
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem
Ivo Jansch
 
27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)
Ivo Jansch
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)
Ivo Jansch
 
PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)
Ivo Jansch
 
PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)
Ivo Jansch
 
Content Management Selection and Strategy
Content Management Selection and StrategyContent Management Selection and Strategy
Content Management Selection and Strategy
Ivo Jansch
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the Cloud
Ivo Jansch
 
PHP in the Real World
PHP in the Real WorldPHP in the Real World
PHP in the Real World
Ivo Jansch
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
Ivo Jansch
 
Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)
Ivo Jansch
 
Hello Enterprise, my name is PHP
Hello Enterprise, my name is PHPHello Enterprise, my name is PHP
Hello Enterprise, my name is PHP
Ivo Jansch
 
Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)
Ivo Jansch
 
Maatwerk Software
Maatwerk SoftwareMaatwerk Software
Maatwerk Software
Ivo Jansch
 
Introductie Web 2.0
Introductie Web 2.0Introductie Web 2.0
Introductie Web 2.0
Ivo Jansch
 

More from Ivo Jansch (20)

Own Your Apps
Own Your Apps Own Your Apps
Own Your Apps
 
PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)PHP Development In The Cloud (php|tek edition)
PHP Development In The Cloud (php|tek edition)
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
 
Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)Building an SSO platform in PHP (Zend Webinar Edition)
Building an SSO platform in PHP (Zend Webinar Edition)
 
The Business Case For Telecommuting
The Business Case For TelecommutingThe Business Case For Telecommuting
The Business Case For Telecommuting
 
Php Development In The Cloud
Php Development In The CloudPhp Development In The Cloud
Php Development In The Cloud
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem
 
27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)27 Ways To Be A Better Developer (PHPBenelux 2011)
27 Ways To Be A Better Developer (PHPBenelux 2011)
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)
 
PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)PHP in a Mobile Ecosystem (Zendcon 2010)
PHP in a Mobile Ecosystem (Zendcon 2010)
 
PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)PHP and the Cloud (phpbenelux conference)
PHP and the Cloud (phpbenelux conference)
 
Content Management Selection and Strategy
Content Management Selection and StrategyContent Management Selection and Strategy
Content Management Selection and Strategy
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the Cloud
 
PHP in the Real World
PHP in the Real WorldPHP in the Real World
PHP in the Real World
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 
Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)Enterprise PHP Development (Dutch PHP Conference 2008)
Enterprise PHP Development (Dutch PHP Conference 2008)
 
Hello Enterprise, my name is PHP
Hello Enterprise, my name is PHPHello Enterprise, my name is PHP
Hello Enterprise, my name is PHP
 
Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)Introduction to PHP (Casino Affiliate Convention 2008)
Introduction to PHP (Casino Affiliate Convention 2008)
 
Maatwerk Software
Maatwerk SoftwareMaatwerk Software
Maatwerk Software
 
Introductie Web 2.0
Introductie Web 2.0Introductie Web 2.0
Introductie Web 2.0
 

Recently uploaded

Transforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptxTransforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptx
limocaptaincom
 
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdfDEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
unosafeads
 
BeMetals Presentation_July 2 2024 .pdf
BeMetals Presentation_July 2 2024    .pdfBeMetals Presentation_July 2 2024    .pdf
BeMetals Presentation_July 2 2024 .pdf
DerekIwanaka1
 
Importance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA WorldImportance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA World
Ankur860831
 
Factory Roofing Contractors Chennai.pptx
Factory Roofing Contractors Chennai.pptxFactory Roofing Contractors Chennai.pptx
Factory Roofing Contractors Chennai.pptx
Roofing Contractor
 
Research Methodology, Objectives, Types and Significance of Research
Research Methodology, Objectives, Types and Significance of ResearchResearch Methodology, Objectives, Types and Significance of Research
Research Methodology, Objectives, Types and Significance of Research
indumathi967565
 
Business model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdfBusiness model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdf
Thales Jacobi
 
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdfA STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
rsonics22
 
How AI is Disrupting Service Industry More Than Design Thinking
How AI is Disrupting Service Industry More Than Design ThinkingHow AI is Disrupting Service Industry More Than Design Thinking
How AI is Disrupting Service Industry More Than Design Thinking
Body of Knowledge
 
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATIONTHE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
hrajkumar444
 
Staffan Canback - The 18 Rays of Project Management
Staffan Canback - The 18 Rays of Project ManagementStaffan Canback - The 18 Rays of Project Management
Staffan Canback - The 18 Rays of Project Management
Tellusant, Inc.
 
Navigating Change Strategies for Effective Transition and Operational Plannin...
Navigating Change Strategies for Effective Transition and Operational Plannin...Navigating Change Strategies for Effective Transition and Operational Plannin...
Navigating Change Strategies for Effective Transition and Operational Plannin...
Brian Frerichs
 
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance UpdatesFamily/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
AishwaryaDoiphode3
 
Satta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatkaSatta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatka
➑➌➋➑➒➎➑➑➊➍
 
Kalyan Panel Chart | 9037164122 | kalyanchart.net
Kalyan Panel Chart | 9037164122 | kalyanchart.netKalyan Panel Chart | 9037164122 | kalyanchart.net
Kalyan Panel Chart | 9037164122 | kalyanchart.net
kalyan chart
 
Destor.one - One Pager for Investment Round Dec22.pdf
Destor.one - One Pager for Investment Round Dec22.pdfDestor.one - One Pager for Investment Round Dec22.pdf
Destor.one - One Pager for Investment Round Dec22.pdf
Thales Jacobi
 
JD Euroway Report 2024 : Shocking Revelations
JD Euroway Report 2024 : Shocking RevelationsJD Euroway Report 2024 : Shocking Revelations
JD Euroway Report 2024 : Shocking Revelations
JD Euroway
 
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
Lynch Creek Farm
 
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
andagarcia212
 
Entrepreneurial mindset: An Introduction to Entrepreneurship
Entrepreneurial mindset: An Introduction to EntrepreneurshipEntrepreneurial mindset: An Introduction to Entrepreneurship
Entrepreneurial mindset: An Introduction to Entrepreneurship
Sanjay Joshi
 

Recently uploaded (20)

Transforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptxTransforming the Future of Limo Services.pptx
Transforming the Future of Limo Services.pptx
 
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdfDEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
DEKISH ELEVATOR INDIA PVT LTD Brochure.pdf
 
BeMetals Presentation_July 2 2024 .pdf
BeMetals Presentation_July 2 2024    .pdfBeMetals Presentation_July 2 2024    .pdf
BeMetals Presentation_July 2 2024 .pdf
 
Importance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA WorldImportance of Quality Transformations in VUCA World
Importance of Quality Transformations in VUCA World
 
Factory Roofing Contractors Chennai.pptx
Factory Roofing Contractors Chennai.pptxFactory Roofing Contractors Chennai.pptx
Factory Roofing Contractors Chennai.pptx
 
Research Methodology, Objectives, Types and Significance of Research
Research Methodology, Objectives, Types and Significance of ResearchResearch Methodology, Objectives, Types and Significance of Research
Research Methodology, Objectives, Types and Significance of Research
 
Business model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdfBusiness model Lean format - sample Feb23.pdf
Business model Lean format - sample Feb23.pdf
 
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdfA STUDY OF MUTUAL FUND  OF BANK OF INDIA .pdf
A STUDY OF MUTUAL FUND OF BANK OF INDIA .pdf
 
How AI is Disrupting Service Industry More Than Design Thinking
How AI is Disrupting Service Industry More Than Design ThinkingHow AI is Disrupting Service Industry More Than Design Thinking
How AI is Disrupting Service Industry More Than Design Thinking
 
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATIONTHE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
THE IMPORTANCE OF CODING IN DEVOPS EXPLANATION
 
Staffan Canback - The 18 Rays of Project Management
Staffan Canback - The 18 Rays of Project ManagementStaffan Canback - The 18 Rays of Project Management
Staffan Canback - The 18 Rays of Project Management
 
Navigating Change Strategies for Effective Transition and Operational Plannin...
Navigating Change Strategies for Effective Transition and Operational Plannin...Navigating Change Strategies for Effective Transition and Operational Plannin...
Navigating Change Strategies for Effective Transition and Operational Plannin...
 
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance UpdatesFamily/Indoor Entertainment Centers Market: Regulation and Compliance Updates
Family/Indoor Entertainment Centers Market: Regulation and Compliance Updates
 
Satta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatkaSatta matka guessing Kalyan result sattamatka
Satta matka guessing Kalyan result sattamatka
 
Kalyan Panel Chart | 9037164122 | kalyanchart.net
Kalyan Panel Chart | 9037164122 | kalyanchart.netKalyan Panel Chart | 9037164122 | kalyanchart.net
Kalyan Panel Chart | 9037164122 | kalyanchart.net
 
Destor.one - One Pager for Investment Round Dec22.pdf
Destor.one - One Pager for Investment Round Dec22.pdfDestor.one - One Pager for Investment Round Dec22.pdf
Destor.one - One Pager for Investment Round Dec22.pdf
 
JD Euroway Report 2024 : Shocking Revelations
JD Euroway Report 2024 : Shocking RevelationsJD Euroway Report 2024 : Shocking Revelations
JD Euroway Report 2024 : Shocking Revelations
 
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
Christmas Decorations_ A Guide to Small Christmas Trees, Candle Centerpieces,...
 
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
全国2024欧洲杯盘口正规平台-全球网络2024欧洲杯盘口平台 |【​网址​🎉ac10.net🎉​】
 
Entrepreneurial mindset: An Introduction to Entrepreneurship
Entrepreneurial mindset: An Introduction to EntrepreneurshipEntrepreneurial mindset: An Introduction to Entrepreneurship
Entrepreneurial mindset: An Introduction to Entrepreneurship
 

Enterprise PHP (PHP London Conference 2008)

  • 1. Enterprise PHP development Ivo Jansch <ivo@ibuildings.com> PHPLondon Conference, February 29, 2008
  • 2. About me CTO at Ibuildings Development using PHP (websites, applications) Big projects (high traffic, multi-tier, clusters, high availability, large teams) Consultancy (training, audits) Partner of Zend Technologies 9 years in NL, 3 months in UK Geek! Author of several Open Source projects Interested in PHP, Web 2.0, Science Nervous in front of audiences bigger than 5 ;-)
  • 3. What's an enterprise? Wikipedia: “ Any of several ships by that name in the Star Trek fictional universe” “ A business, company, or comparable organization”
  • 4. Is PHP Enterprise ready? CIO Magazine: “ PHP works well for prototyping because it is easy to get a site up and running. Use PHP to design the site [...] but when it comes time for development, tell the team you want the result to look and act like this PHP site...but in Java” (Or: “great, this is exactly what I need! now do it again, at twice the cost!”) http://www.cio.com/article/176250 (skip the article, read the comments)
  • 5. Is PHP Enterprise ready? Small Lightweight Cheap Easy to learn Big Enterprise friendly enterpriCe CS required
  • 6. A word from my girlfriend It's not the SIZE of the tool... It's how you USE it.
  • 7. PHP is changing... 1998 Personal stuff 2003 Simple websites Content management Blogs 2008 Big websites Banks Insurance Companies ...
  • 8. PHP is changing... Traditional metaphor PHP is like Lego bricks Bricks allowing you to build anything
  • 9. PHP is changing... PHP is no longer a toy Let’s use the metaphor of actual bricks Because we’re building actual buildings now
  • 10. About Bricks Extreme simplicity Easy to learn Versatile Cheap ... so building a skyscraper must be peanuts, right?
  • 12. Step 1 – The Team “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.”
  • 13. Step 1 – The Team Be a software engineer Train your skills Study OO principles Consider Zend Certification
  • 14. Step 2 - Requirements What does the customer need? What do visitors want?
  • 15. Step 2 - Requirements Functional Design Requirements definition Interaction Design / Wireframes Flow diagrams
  • 16. Step 3 - Architecture Don’t just start stacking bricks Create an architecture first
  • 17. Step 3 - Architecture Technical Design Modelling Class diagrams ER diagram (data model) Colaboration diagrams Use cases etc. Tools: UML, whiteboards
  • 18. Step 3 - Architecture High Level Architectures: MVC (Model View Controller) SOA (Service Oriented Architecture) Multi-tier development (Frontend, Application, Data) CBD (Component Based Development)
  • 19. Step 4 - Tools You don’t need tools... But they make you productive
  • 20. Step 4 - Tools Development: Eclipse (PDT) PhpED Vim Zend Studio IDE's vs Editors Debugging Profiling Navigation / cross references Inspection
  • 21. Step 4 - Tools Source Control CVS / SVN Bitkeeper / GIT Branching Tagging
  • 22. Step 5 - Foundation Start stacking bricks? How many bricks does it take.. What about stability? Start with a foundation
  • 23. Step 5 - Foundation Use a framework Provides guidelines (frame) Off the shelf components Examples Zend Framework http://framework.zend.com CakePHP http://http://www.cakephp.org ezComponents http://ez.no/ezcomponents Symfony http://www.symfony-project.org ATK http://www.achievo.org/atk
  • 24. 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.”
  • 25. 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.
  • 26. 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
  • 27. Step 7 - Testing Is your software tested after it has gone live?
  • 28. Step 7 - Testing Various types of testing Developer testing Functional testing Environment testing Performance testing Usability testing
  • 29. Step 7 - Testing Common scenario
  • 30. Step 7 - Testing User complains... MWOEHA! BUG!
  • 31. Step 7 - Testing Developer attacks the problem fix_bug();
  • 32. Step 7 - Testing Problem solved!
  • 33. 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: Xinc http://code.google.com/p/xinc/
  • 34. 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
  • 35. Step 8 - 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;
  • 36. Step 8 - Optimization Solution: Elevator
  • 37. 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: eAccelerator http://eaccelerator.net/ APC http://pecl.php.net/package/APC Zend Platform http://www.zend.com/products/zend_platform
  • 38. Step 8 - Optimization Users complain: “Every time I need coffee I have to go to the top floor to get some.”
  • 39. 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 Smarty http://smarty.php.net Zend Platform http://www.zend.com/products/zend_platform Memcached http://danga.com/memcached/
  • 40. 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'
  • 41. Step 9 - Deployment System Architecture PHP Apache Linux MySQL From a simple LAMP stack on a single machine...
  • 42. Step 9 - Deployment System Architecture ... to a High Availability, Horizontally Scalable architecture
  • 43. 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?)
  • 44. 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.”
  • 45. Step 10 - Operations Solution A 'root cause analysis' tool
  • 46. Step 10 - Operations Change management Ticket system Stick to your deployment - use the DRP DON'T TOUCH THE LIVE ENVIRONMENT. But I absolutely have to... DON'T! but... NO! I MEAN IT! :-)
  • 47. 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
  • 48. More things to think about? Development Implementation Documentation Security
  • 49. Before I finish Dutch PHP Conference 2008 http://www.phpconference.nl Call for Ideas see your favorite guru hear your favorite topic Buy my book “php|architect's Enterprise PHP Development” Should be available in a few months Talk to us Visit our booth We are still hiring We have stuff to sell you ;-)