views:

72

answers:

2

Just got done with "The art of unit testing". It was a great read and i think everyone should go buy a copy. With that said i think the next book I'm like to read would be a architecture / Design type book that would focus heavily on building your objects / software in such a way that it would be:

  1. Low Coupling
  2. High Cohesion
  3. Easily Maintainable / Extended
  4. Easy to test
  5. Easy to Navigate / Debug

The above characteristcs are the most important ones but also maybe it would also include (but not necessary) designing for:

  1. Performance - Don't want to design a system at at the end find out its dog slow :)
  2. Scalability - Again don't want to design something at the end find out it won't scale.

I'd also prefer (but not necessary again):

  1. Something newer - Architectural principles seem to gradually evolve / improve over time and id like something with current thinking.
  2. .Net as illustrating language - like i said above its not mandatory but since its what i use every day id prefer it to be in .net. Doesn't really matter if its in vb.net or c#

Some of the topics that would be talked about its how to minimize dependencies and using interfaces throughout your solution rather than concrete classes. Maybe it would constract /compare some of the newest design principles like DDD, Repository Pattern, Ect...

I already have "Clean Code" (don't know if its this type of book or not) and "Working effectively with legacy code" on my radar but id like to read a book based upon the topic i talked about above first. Is there such a book?

Edit:
Would "Patterns of Enterprise Application Architecture" fit my needs above?

+1  A: 

Agile Principles, Patterns and Practices in C# (Bob martin) should cover a lot of what your looking for and may be worth a look.

Leom Burke
Wouldn't that be more based upon agile and dealing with how to split software projects into more manageable pieces / requirements: SCRUM, Sprints, Etc?
It cover s a very broad range - looking through the chapter list shows that section 2 covers a lot about design priciples that are applicable everywhere (Dependency Inversion, Single-responsibility...etc) Many of these concepts are referenced in Clean Code. They cross boundaries and dont just apply to Agile.
Leom Burke
Thanks for the clarification. I think i might have found exactly what i'm looking for though instead of a book that just touches on these points here and there and other stuff (agile) in the mix: "Microsoft .NET: Architecting Applications for the Enterprise". I know Dino is not as big as some of heavy hitters like Micheal Feathers or Bob Martin (uncle bob) but i remember being in of his sessions a few years ago at DevConnections and it was excellent. I'll take a chance i think. maybe if i don't like it i will try Micheal Feathers book referenced above since it supposed to be one of the gold sd
A: 

Advanced MVVM seems to match most of your requirements... but it's specific to WPF/Silverlight, so maybe it's not what you're looking for

Thomas Levesque
Thanks for the suggestion. I'd like to find one that wasn't so specific to WPF/Silverlight but if i can't find one i'll definitely look into this book more.
it's quite short anyway (about 50 pages)
Thomas Levesque