When doing a bit of code review, I saw an incredibly ornately architected future-proof module written by one of my programmers on my team. It had taken him roughly 3x as long as I had estimated, but the code was very complete. It was created in such a way that every single portion of it was modular and could be interchanged quite easily.
In a break from my normal type of tutorial, I just want to give a real quick overview and highlight of a fictitious “case study” to demonstrate the importance of load testing your application with apache’s ab tool.
Finished presenting today at MidwestPHP 2013. My talk on Enterprise PHP Architecture through Design Patterns and Modularization went great - at least I hope!
In one of our applications, an event system requires a start and end date. There is validation to check to make sure the end date is after the start date.
Recently, I had a programmer create a new feature for one of our products. He inadvertently caused another feature of our product to look less polished and function a bit weird. (I called it ‘wonkified’). The consensus of the group was to push out the feature, and then go back and fix the broken part of the old feature in the next week or so.
I constantly look for ways to explain to non-technical people the daily challenges I must face and decisions I make. I like using analogies. One of the biggest ones I face where I work currently is the support of out-dated browsers.
When I installed Ubuntu 11.10 and 12.04, I had the problem where the terminal would boot up until it said something about checking battery state, and then freeze. If I flipped to a different terminal, I could sudo launch lightdm - and then login on the first terminal. Obviously, this wasn’t my first choice in fixing this, though.
One of the things I struggle with is the validation of data objects. I submit that there is such a thing as a dumb data object and a validation domain object. The validation object could also be some sort of helper or a service I guess. But, the point is, that the main data object doesn’t have validation on it. It has coupled objects that provide that validation.