OOP and Design Patterns Resources - Books Websites Articles

OOP and Design Patterns Resources - Books Websites Articles

by David Hayden ( Microsoft MVP and .NET Developer )

 

I received an email message via this blog for some help in identifying good recources on OOP and Design Patterns for those new to the concepts.  It has been awhile since I browsed the Internet for such resources and read new books specific to the subject, so I thought I would list resources that I have used in the past and invite others to add to the list via the comments.  After a couple of weeks or so, I will rewrite a second post with a complete list of everyone's feedback that will be useful to everyone.  I really enjoy these topics, so I am interested in what people might suggest.

Books

I have 5 books that really helped me with OOP and Design Patterns, which I believe are still relevant today:

  1. Applying UML and Patterns 3rd Edition by Craig Larman - This is a textbook used in classes that discusses assigning responsibilities to objects using GRASP ( General Responsibility Assignment Software Patterns ).  It has tons of information on OOP, Design Patterns, and Agile Development.  I absolutely love this book.  Good beginner book.
  2. Agile Software Development Principles, Patterns, and Practices by Robert Martin - The OOP concepts presented in this book are fantastic, but the examples in Java and C++ leave little to be desired.  That being said, if you can look beyond or through the code to capture the essence of the principles themselves, this is a great book.  More of an intermediate developer book.  A good stretch for a beginner.
  3. Design Patterns in C# by Steven Metsker - At the time I bought this book, I was just happy to find a design pattern book with only C# examples :)  Most design pattern books were in Java and C++ and I wasn't skilled enough to grasp the material without seeing it in my preferred language.  Steven does a great job of going through all the important design patterns in C#, although I could do without so many examples involving rockets :)  A solid intermediate developer book and a good stretch for beginners.
  4. Patterns of Enterprise Application Architecture by Martin Fowler - Lives up to all the hype surrounding it.  I always find myself referring to this book, because it is a catalog of patterns like Design Patterns in C#, which makes it easy to get to the information you need quickly.  Now if he would only come out with C# and VB.NET versions.  Good for the intermediate developer.
  5. Domain Driven Design by Eric Evans - Great book that taught me a lot about domain modeling, n-layer design, and design patterns, but it was way past my grasp when I first bought it.  Regretted the purchase until I picked it up 8 months later after reading a few other books and then went "Aha!"  Clearly not a beginner book in my opinion, but a good book to read after you get a more solid grasp of the fundamentals and want to challenge yourself.  Solid intermediate developer book.

Those are all the books I have on the subject, and in my opinion, I feel lucky that I picked such good ones.  Aside from Applying UML and Patterns by Craig Larman, the others might be a bit of a stretch for developers new to OOP and design patterns, but they are all good nonetheless and I recommend them at some point.  I have heard good things about other books, but I will refrain from mentioning them here as I don't have any personal experience with them.  Hopefully someone else will mention a good book on the subject.

 

Websites

List of OOP and Design Pattern related websites I remember from the past:

  1. Data and Object Factory - A list of common design patterns inspired by GoF ( http://www.dofactory.com/Patterns/Patterns.aspx ).
  2. Pattern Share - Bringing together software patterns from different authors ( http://www.patternshare.org/ ).
  3. Object Mentor - Various OOP articles based on Agile Software Development book mentioned above ( http://www.objectmentor.com/resources/listArticles?key=topic&topic=Design%20Principles )
  4. POEAA Catalog Online - ( http://www.martinfowler.com/eaaCatalog/index.html )

 

I am sure there are others.  Scott Ambler comes to mind for various data access patterns but after a bit of investigation I couldn't find a good index of resources for him.

 

Articles

I have done a few chapter by chapter book reviews on a couple of books mentioned above that may be of help:

 

Source:  David Hayden ( Microsoft MVP and .NET Developer )

 

posted on Tuesday, March 14, 2006 9:45 PM

Main

News

Green Tea

.NET Development

Enterprise Library

Patterns & Practices