Best Practices Starts Small
Jay Kimble posted in response to Sam Gentile post about Microsoft's future direction. The part that I didn't like was:
And short afterward, we have this gem:
I had the chance of working in systems of exploding complexity, what I have found is that shortchanging the best practices even in the small has a high cost on many levels, testability, maintainability, complexity, etc. The problem is that you start small, thinking you can just hack it done, but when change is required, which is inevitable, you are in for a world of hurt. This kind of thing leads to awkward technical solutions that doesn't solve the root issue, are much more complex than they should, and obfuscate the solution entirely.
Here is the secret about these kind of best practices, done right, they are less costly than the just throwing code at the problem. If you are building non-throwaway code, then I would always suggest to use the best practices, even if you start small.
Jay's point about MVC being applicable only to web sites with high traffic is not correct, MVC is about splitting responsabilities in the application in a consistent manner. It is as application in a toy applications as in a highly scalable ones.
There are a set of patterns that you want to use if you are building truly highly scalable applications, but they really make your life harder for smaller scale applications (the vast majority). But, and this is important, in a properly designed application, it is usually not hard to make significant changes to the application as a whole, and add the best practices that fit your specific scenario.
Comments
Thanks for taking him on that. I was concentrating in my comments about not speaking for him but I can't see the logic in saying that MVC is only applicable to web sites with high traffic. Building any good, solid UI system, whether web or not, will use MVP or MVC to separate concerns.
MVC is just part of a considered design - and MVC isn't the only way, it's just one of the better patterns.
Patterns are essential to good design. Bad pattern usage is just as bad (if not worse) than using no patterns.
I tend to agree with M. Folwer who says while MVC is nice, the separation of M from the rest is far more important than V from C.
Another point was raised somewhere with regards to his Patterns of Enterprise Applications: sure you can implement any pattern you want, but if you're fighting the base framework all the way it's gonna cost you and perhaps you should use another pattern?
My UI is usually more complex than my transitions and data flows. Windows Forms and Web Forms+Ajax let me deal with that kind complexity easily.
I read Jay's post. He doesn't do TDD. I think that says about everything you need to know.
Um, yes? Did you noticed the huge number of posts on MonoRail?
I don't have any value in WebForms right now, it is a mess.
I would take MR any day of the week. Hell, at some points, I am willing to go pure ASP with .NET back end, because that would be SIMPLER than the ASP.Net approach.
Wikipedia
Comment preview