Stuart's talk from #phpuk11 about the problems facing you if you use a framework today, and how you cam solve those problems by moving to a component-based architecture.
Data Model Utilities • Completely independent of the framework • Built & tested in isolation of your app code • Can be built by different teams • Don’t have to change when the framework changes
Data Model Utilities • Completely independent of the framework • Built & tested in isolation of your app code • Can be built by different teams • Don’t have to change when the framework changes
Data Model Utilities • Completely independent of the framework • Built & tested in isolation of your app code • Can be built by different teams • Don’t have to change when the framework changes
Data Model Utilities • Completely independent of the framework • Built & tested in isolation of your app code • Can be built by different teams • Don’t have to change when the framework changes
Data Model Utilities • Reduces the Big Ball of String Syndrome • Mindset change to light apps on top of rich service layer • Improves development in parallel of apps & services • Injects additional discipline into development teams
Data Model Utilities • Reduces the Big Ball of String Syndrome • Mindset change to light apps on top of rich service layer • Improves development in parallel of apps & services • Injects additional discipline into development teams
Data Model Utilities • Reduces the Big Ball of String Syndrome • Mindset change to light apps on top of rich service layer • Improves development in parallel of apps & services • Injects additional discipline into development teams
Data Model Utilities • Reduces the Big Ball of String Syndrome • Mindset change to light apps on top of rich service layer • Improves development in parallel of apps & services • Injects additional discipline into development teams
of PSR0? • http://groups.google.com/group/php- standards/web/psr-0-final-proposal • Backed by leading names in the community • Perfect for a component approach One True Autoloader
of PSR0? • http://groups.google.com/group/php- standards/web/psr-0-final-proposal • Backed by leading names in the community • Perfect for a component approach One True Autoloader
of PSR0? • http://groups.google.com/group/php- standards/web/psr-0-final-proposal • Backed by leading names in the community • Perfect for a component approach One True Autoloader
of PSR0? • http://groups.google.com/group/php- standards/web/psr-0-final-proposal • Backed by leading names in the community • Perfect for a component approach One True Autoloader
become DIRECTORY_SEPARATOR • Underscore in class names ‘_’ become DIRECTORY_SEPARATOR • Top namespace is your organisation • Achieves 1:1 mapping from classname to filename on disk PSR0 Autoloader
become DIRECTORY_SEPARATOR • Underscore in class names ‘_’ become DIRECTORY_SEPARATOR • Top namespace is your organisation • Achieves 1:1 mapping from classname to filename on disk PSR0 Autoloader
become DIRECTORY_SEPARATOR • Underscore in class names ‘_’ become DIRECTORY_SEPARATOR • Top namespace is your organisation • Achieves 1:1 mapping from classname to filename on disk PSR0 Autoloader
become DIRECTORY_SEPARATOR • Underscore in class names ‘_’ become DIRECTORY_SEPARATOR • Top namespace is your organisation • Achieves 1:1 mapping from classname to filename on disk PSR0 Autoloader
• ... so you don’t have to remember • ... so you don’t have to keep explaining it to others • ... so you don’t have to read the source • ... so that others are more likely to reuse your efforts
• ... so you don’t have to remember • ... so you don’t have to keep explaining it to others • ... so you don’t have to read the source • ... so that others are more likely to reuse your efforts
• ... so you don’t have to remember • ... so you don’t have to keep explaining it to others • ... so you don’t have to read the source • ... so that others are more likely to reuse your efforts
• ... so you don’t have to remember • ... so you don’t have to keep explaining it to others • ... so you don’t have to read the source • ... so that others are more likely to reuse your efforts
it or hate it, PEAR package format is a community-created solution • PEAR installer found on most computers • Supports installing both system-wide and into a sandbox • Simple to publish your own package repo
it or hate it, PEAR package format is a community-created solution • PEAR installer found on most computers • Supports installing both system-wide and into a sandbox • Simple to publish your own package repo
it or hate it, PEAR package format is a community-created solution • PEAR installer found on most computers • Supports installing both system-wide and into a sandbox • Simple to publish your own package repo
it or hate it, PEAR package format is a community-created solution • PEAR installer found on most computers • Supports installing both system-wide and into a sandbox • Simple to publish your own package repo
Isolating code into components reduces amount of code that is affected by change • Backwards-compatibility breaks immediately negate that advantage • The more apps use a component, the worse the b/c breakage cost scales
Isolating code into components reduces amount of code that is affected by change • Backwards-compatibility breaks immediately negate that advantage • The more apps use a component, the worse the b/c breakage cost scales
Isolating code into components reduces amount of code that is affected by change • Backwards-compatibility breaks immediately negate that advantage • The more apps use a component, the worse the b/c breakage cost scales
• Just don’t do it by surprise! • Don’t be afraid to increment X in X.Y.Z • Google Chrome is already on 10.y.z ... • ... and it hasn’t done it any harm
• Just don’t do it by surprise! • Don’t be afraid to increment X in X.Y.Z • Google Chrome is already on 10.y.z ... • ... and it hasn’t done it any harm
• Just don’t do it by surprise! • Don’t be afraid to increment X in X.Y.Z • Google Chrome is already on 10.y.z ... • ... and it hasn’t done it any harm
• Just don’t do it by surprise! • Don’t be afraid to increment X in X.Y.Z • Google Chrome is already on 10.y.z ... • ... and it hasn’t done it any harm
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker iFrame The Control Panel Holds The Code Hostage The Sales Site Relies On An iFrame
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker ... And The Control Panel Talks To The Third Party Who Provides Our Broadband SOAP iFrame
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker We Wanted To Sell Exciting New Broadband Products From An Alternative Third Party As Well SOAP iFrame
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker Changing The Control Panel Was Going To Be Expensive ... SOAP iFrame
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker ... But Was The Only Way To Change The Sales Website SOAP iFrame
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker Problem Is ... We Are Due To Retire This Control Panel
Product Specs Availability Checker Availability Checker Provisioning Third Party Faults Availability Checker We Separated Out The Business Logic Of The Availability Checker SOAP
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker Sales Can Now Improve Their Website Without Having To Rely On Control Panel’s Roadmap SOAP
Product Specs Availability Checker Customer Account Control Panel Invoicing Availability Checker Provisioning Third Party Faults Availability Checker Allowing Engineering To Retire This Version Of The Control Panel
Product Specs Availability Checker Customer Account Control Panel 2 Invoicing Availability Checker Provisioning Third Party Faults Availability Checker And The New Control Panel Will Simply Re-use The Component Before Launch
has changed • We have outgrown our old applications • We are refactoring all of the needed logic from our old applications • Allows Sales and Engineering roadmaps to move without major log jams • Allows more features (especially internal ones) to be shared across more of our apps Moving To Components
has changed • We have outgrown our old applications • We are refactoring all of the needed logic from our old applications • Allows Sales and Engineering roadmaps to move without major log jams • Allows more features (especially internal ones) to be shared across more of our apps Moving To Components
has changed • We have outgrown our old applications • We are refactoring all of the needed logic from our old applications • Allows Sales and Engineering roadmaps to move without major log jams • Allows more features (especially internal ones) to be shared across more of our apps Moving To Components
has changed • We have outgrown our old applications • We are refactoring all of the needed logic from our old applications • Allows Sales and Engineering roadmaps to move without major log jams • Allows more features (especially internal ones) to be shared across more of our apps Moving To Components
has changed • We have outgrown our old applications • We are refactoring all of the needed logic from our old applications • Allows Sales and Engineering roadmaps to move without major log jams • Allows more features (especially internal ones) to be shared across more of our apps Moving To Components