Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Fed Up Of Framework Hype Dcphp

2 979 vues

Publié le

This is the talk I'm giving tomorrow at dcphpconference.com.

Publié dans : Business, Technologie
  • Login to see the comments

Fed Up Of Framework Hype Dcphp

  1. <ul><ul><li>For the DC PHP Conference </li></ul></ul><ul><ul><li>Presented by Tony Bibbs </li></ul></ul><ul><ul><li>June 2nd, 2008 </li></ul></ul>Fed Up of Framework Hype?
  2. Who is this guy? <ul><li>Eleven Years of Software Consulting </li></ul><ul><li>Five Years in Public Sector </li></ul><ul><li>Advocate for the use of open source software in government. </li></ul><ul><li>Short stint Engineering GPS Solutions </li></ul><ul><li>Managed popular CMS for four years </li></ul>
  3. Organizational Background <ul><li>Current Landscape: </li></ul><ul><li>Straight Consulting </li></ul><ul><li>PHP, .NET and Java </li></ul><ul><li>MySQL, SQL Server and DB2 </li></ul><ul><li>30 Developers </li></ul><ul><li>7 Project Managers </li></ul><ul><li>2 Business Analysts </li></ul><ul><li>2 Architects (both presenting here)‏ </li></ul>
  4. Evolution of the Software at ITE <ul><li>In the beginning, there was no software development process. </li></ul><ul><li>Project Management wasn't a formal competency. </li></ul><ul><li>Testing?!? What's that? </li></ul><ul><li>Hostile work environment </li></ul><ul><li>Project failure was common </li></ul>
  5. Quick Overview <ul><li>What ain't gonna happen. </li></ul><ul><li>Motivations for Frameworks. </li></ul><ul><li>Downside to Frameworks (risks)‏ </li></ul><ul><li>Practicality of Frameworks </li></ul><ul><li>Common framework components. </li></ul><ul><li>The framework no-no. </li></ul>
  6. Java's Influence on PHP <ul><li>PHP community has tried hard to differentiate itself from other platforms. </li></ul><ul><li>Anything resembling Java in PHP gets a violent knee-jerk reaction. Frameworks are no exception. </li></ul><ul><li>Rails seems to have produced some motivation for more developers to use frameworks (for better and worse). </li></ul>
  7. Do you Need a Framework? <ul><li>“ Frameworks are designed with the intent of facilitating software development, by allowing designers and programmers to spend more time on meeting software requirements rather than dealing with the more tedious low level details of providing a working system.” </li></ul><ul><li>-- Wikipedia </li></ul>
  8. Warning! Warning! Warning! <ul><li>“ Beware of [frameworks]. They are a great way to bring everyone up to a dismal, but passable, level of performance, but at the same time, they are aggravating to more talented people who chafe at the restrictions that are placed on them.” </li></ul><ul><li>- Joel “on Software” Spolsky </li></ul>
  9. When NOT to Use a Framework <ul><li>Your organization is SDLC-less </li></ul><ul><li>When the final solution will be “small” </li></ul><ul><li>When the team is small </li></ul><ul><li>You haven't articulated why you need one in the first place (read: No Requirements)‏ </li></ul><ul><li>You have strict performance requirements* </li></ul>
  10. “ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning.” -- Rick Cook, Fantasy Author Better Motivation
  11. When to Consider Frameworks <ul><li>Repeatability. </li></ul><ul><li>Are you already using one? </li></ul><ul><li>Focus is on business solutions, not engineering. </li></ul><ul><li>You want to make software a commodity - not an art </li></ul><ul><li>You have a decent size team. </li></ul><ul><li>You have a lot of medium sized projects. </li></ul><ul><li>You have a few large projects. </li></ul><ul><li>Improve your estimates. </li></ul><ul><li>You want to lower maintenance costs* </li></ul>
  12. Framework Risks <ul><li>Ramp-up </li></ul><ul><li>Community Stability </li></ul><ul><li>Code Stability </li></ul><ul><li>Inability to Scale </li></ul><ul><li>Speed </li></ul><ul><li>Code Bloat (i.e. lots of code)‏ </li></ul><ul><li>All-or-nothing Frameworks </li></ul><ul><li>In ability to integrate Server and Client side frameworks </li></ul><ul><li>NIH </li></ul>
  13. Common Components <ul><li>Model-View-Controller (MVC) Implementation </li></ul><ul><li>Object Relational Mapper (ORM)‏ </li></ul><ul><li>Caching Implementation </li></ul><ul><li>HTML Templates </li></ul><ul><li>AJAX Support </li></ul><ul><li>Event Driven Programming </li></ul><ul><li>Project Scaffolding </li></ul><ul><li>Web Services Support </li></ul>
  14. MVC Considerations <ul><li>Configureless </li></ul><ul><li>Works with any HTML Template library </li></ul><ul><li>Built-in Security for stuff like authorization checks, CSRF, XSS. </li></ul><ul><li>Lightweight </li></ul><ul><li>Extensible. </li></ul><ul><li>Recommendations: MVCnPHP (shameless plug), Zend_View, Zend_Controller, Phrame. </li></ul>
  15. ORM Considerations <ul><li>PDO at the core? </li></ul><ul><li>Limit amount of raw SQL issued? </li></ul><ul><li>Supports concept of Named Queries? </li></ul><ul><li>Can issue raw SQL to a connection. </li></ul><ul><li>Supports multiple DBMS </li></ul><ul><li>Supports multiple databases. </li></ul><ul><li>Common ORM Pitfall: Large numbers of objects </li></ul>
  16. HTML Templates <ul><li>Framework should support notion of using PHP-only for templates. While serviceable, PHP-only lacks: </li></ul><ul><li>Escaping output by default for security reasons. </li></ul><ul><li>Limit the embedding of business logic into the template. </li></ul><ul><li>And remember, most modern template engines compile the templates into PHP anyway. </li></ul>
  17. #1 Framework No-No <ul><li>Do not change more than one component of your framework at a time. Incremental improvements allow your team to make the minor adjustments needed. The longer you can use your framework, unchanged, the better. </li></ul>
  18. Framework Recap <ul><li>What are frameworks for? </li></ul><ul><li>When should you avoid using a framework? </li></ul><ul><li>When should consider frameworks? </li></ul><ul><li>Risks in using any framework. </li></ul><ul><li>Common framework components. </li></ul><ul><li>The framework no-no. </li></ul>
  19. Contacting Me <ul><li>http://www.tonybibbs.com </li></ul><ul><li>[email_address] </li></ul><ul><li>Twitter: tonybibbs </li></ul><ul><li>Skype: tony_bibbs </li></ul><ul><li>(515)554.8046 </li></ul>