In my last article (Performance By Design- An Agile Approach) I essentially outlined a method for ensuring performance is enforced throughout a project from the onset. ‘Performance by Design’ in this context is a misnomer. True “Performance by Design” is abstract; it’s about taking good design practices and ensuring the product is fundamentally scalable. Performance by design principles have to be assessed – they may not be appropriate or relevant depending on project objectives.
If I was to surmise effective Performance by Design – I would say it all begins with simplicity and encapsulation. Start simple and build on simplicity. Split business and technical functions into discrete and separate processes from the onset. Get a skeleton system working quickly, find and discover the major unforeseen development issues and then start to improve performance. Resist the temptation to merge services for pure performance gain. Attempt to faxless payday loans direct lenders stay stateless – if your system is becoming too stateful (e.g. large use of caches and sizes) then take a step back, ask questions and reevaluate the design. Stateful is fast .. but this introduces complexity, risk and development effort. Don’t start complicated and plan too long before architectural development begins. Do not separate testing into a distinct and separate phase (TODO: Inset article link about my experiences of successful/unsuccessful patterns for high performance projects) .
What I have attempted to do is collate and outline good practices for great scalability and performance when developing greenfield projects.
[table id=1 /]
This is very much work in progress – or collation in progress. There are elements here that all projects can find useful. Please comment if I need to to add or amend.
- http://highscalability.com/blog/2011/9/26/17-techniques-used-to-scale-turntablefm-and-labmeeting-to-mi.html (How to Launch a site for 1m users in a month)
- APM: http://blog.codecentric.de/en/category/performance-en/