I'm giving two talks at php|works this year, and it turns out that they complement each other quite nicely. In a way, they are both about organization and architecture.
The first one is literally about how to organize your PHP project. (Yes, that link does show you all the slides for the talk – but you get a lot more info by attending. ) Easy one-liner: "Project Planning In One Lesson."
The second one dovetails nicely from "how to organize" to "how to measure your architectural decisions". This talk is based on lessons from my benchmarking experiments combined with an extended riff on something Laura Thomson said about those experiments:
That, by the way, is an excellent, excellent article that displays a good methodology for researching design decisions.
(Thanks for the multiple compliments, Laura. :-)
An Attendance Request
I would really like it if at least one experienced developer on each of the frameworks (Cake, Code Igniter, Prado, Symfony, Zend) could attend the benchmarking talk and critique it. I'm pretty sure there's going to be a lot of questions and discussion during and after the presentation about each of the projects. Any takers?
About The Benchmarking Talk
Easy one-liner: "Statistical Histories for Fun and Profit." And I do mean profit: the better your apps runs on a given stack, the more eyeballs you get on your ads (or, the more users you can handle).
- First, I will talk briefly about why you should do benchmarking on your "whole app" (as opposed to profiling sub-components), give a short example on benching an application, and go from there to talk about discovering the limits imposed on you by the various portions of the server + software stack.
- The second half of the talk is about how (and why) to benchmark a framework, and how to fairly compare different frameworks to each other on a level playing field.
- At the end, I'll give new benchmark numbers on Cake, Solar, Symfony, and Zend. Bonus: I include Code Igniter and Prado, too! But probably not in the context the Code Igniter guys want. You'll have to attend the talk to see what I mean. ;-)
A couple of slides from the talk: