What are the key anti-patterns to avoid when architecting applications for the enterprise? We are using C# and SQL Server and Silverlight, btw - but I imagine some of the anti-patterns will be language neutral.
Wikipedia is quite comprehensive on the subject of anti-patterns and here's the book on the subject: AntiPatterns.
Top five in my experience:
- Premature optimization
- Anemic Domain Model
- God object
- Golden Hammer (cf. regular expressions)
- Chain Gang
Enterprise sinkhole:
1: read that your database access should be in a separate layer
2: Hey, we've got a database layer.
2(b) Hey, we've even got a delegate layer to abstract away our database.
3: Apply the law of leaky abstractions-i.e since there are methods in the delegates that get things, just assume they're there to use with no thought to the consequences - as in call "getPurchaseOrder()" 10 times in succession on a page, even though getPurchaseOrder() is a method that wraps 5 separate database calls.
4: Sit back and Enjoy your web pages that load with 100 separate database calls (sadly, not an exaggeration).
Not sure what I'd call this as an antipattern? maybe "Layers aren't free"?