Architecture Best Practices
In "Last Call To Design Patterns" we described design patterns as "reusable solutions for frequent problems". It's all about thoughtful approaches to avoid common pitfalls
And, actually, Patterns are just one of a set of disciplines which help us to achieve software easy to understand and maintain. But, as PhD. Joe Hummel states in his seventh installment of his series "Architecting Smart Client Applications" on "Architectural Best Practices", best practices come at many levels (statement, method, class, architecture, process)
Despite, as Hummel says, "nothing beats experience" as the best teacher for best practices, he offers an awesome sets of resources and suggested readings, books and links to get the walk shorter
And there's more, because then the author addresses seven improvement areas and discusses each of them in further detail. They are
- Security thru Threat Modeling. Which are our application vulnerabilities and how much exploitable are they?
- Improved Design with Design Patterns. How can we avoid reinvent the wheel in order to solve already solved problems?
- Design for Performance, but without using Correctness as an afterthought
- Predictability (of bottlenecks or other aftermaths) and Application Behavior Insight with Instrumentation
- Adequate Usage of Debug Features without interfering with the Release build
- Proper Diagnostic of Exception Causes with a Correct Exception Handling
- Smart Documentation as automated as possible
The author explains the mindsets behind every improvement area and actions to take, showing how Visual Studio 2005, Windows Management, Instrumentation (WMI), the Microsoft Enterprise Library and many other third parties tools (Log4Net, NDoc, etc) can help us to apply best practices painlessly
You can spend your time just coding, being that way a developer
Or you can also learn in greater detail all .NET APIs, CLR policies for security, threading, memory usage, being that way a senior developer
Or you can watch this webcast, learn about best practices, apply them consciously wherever they are necessary, being that way a respectable Software Architect!!
Why to be satisfied with less?
Come on, click here and raise your bar