I’ve been collecting book recommendations on software design principles and patterns, test-driven development, and agile development. I wanted to share my current reading list with you in case you are interested in learning more about these topics. If you have any additional book recommendations — please share!
Here’s my current list of books:
Software Design Principles and Patterns Books
- Design Patterns : Elements of Reusable Object-Oriented Software
by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides
This is the book known as the Gang of Four book and it is considered required reading if you want to learn about software design principles and patterns. Several people warned me that this book would be dense. Several people also warned me that the pattern terminology used in the book has changed significantly since the book was published in 1994. So far, this book has not caused any brain injury and I haven’t found it overly difficult to read. - Head First Design Patterns
by Elisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra
This book makes the previous book understandable. It has really clear samples of each of the design patterns. This is a great book – it was a joy to read. There are only two things that I don’t like about it. I wish that it did not contain all of the cartoons. Also, I wish the samples were C#/VB.NET instead of Java. Troy Goode originally recommended this book to me. - Framework Design Guidelines
by Krzysztof Cwalina and Brad Abrams
If you want to understand why the .NET framework was designed in the way that it is designed, then this is the book to read. The book introduces great phrases like “Fall into the pit of success”. By reading this book, I also learned the origin of the terminology Pascal Casing and Camel Casing. - Refactoring: Improving the Design of Existing Code
by Martin Fowler
Martin Fowler’s book got everyone talking about better software design through refactoring. The book contains a catalog of more than 70 types of refactorings. - Refactoring to Patterns
by Joshua Kerievsky
As the title suggests, this book combines a discussion of patterns and refactoring. I’ve been told that this is a super important book and that I should read it immediately. - Patterns of Enterprise Application Architecture
by Martin Fowler
Another massively important book written by Martin Fowler. Contains a catalog of over 40 patterns that you should know when building enterprise applications. - Domain Driven Design: Tackling Complexity in the Heart of Software
by Eric Evans
This book is devoted to the process of building software through patterns and refactoring.
Test-Driven Development Books
- Working Effectively with Legacy Code
by Michael Feathers
This book has received recommendations all over the place. It is the next book that I plan to read. - xUnit Test Patterns
by Gerard Meszaros
This is a big, intimidating book. This book is supposed to do a good job clarifying testing terminology such as the distinction between mocks, stubs, dummies, doubles, etc. - Test-Driven Development in Microsoft .NET
by James W. Newkirk and Alexei A. Vorontsov
This was one of the first books on Test-Driven Development that I read. I really liked the organization of the book. I like how the book presents walkthroughs of using TDD when testing ADO.NET and user interfaces. - Test-Driven Development: By Example
by Kent Beck
The Kent Beck book on Test-Driven Development. This is a really enjoyable book to read. I was surprised that Kent Beck takes a very practical approach to using TDD. He even presents a few situations in which TDD does not make sense (testing concurrency and security). - Pragmatic Unit Testing in C# with NUnit, 2nd Edition
by Andy Hunt, Dave Thomas, and Matt Hargett
This book covers using NUnit when building ASP.NET 2.0 applications.
Agile Books
- Extreme Programming Explained: Embrace Change
by Kent Beck and Cynthia Andres
The founding book of XP. I’ve been warned that the first edition of this book differs significantly from the second edition. - Agile Principles, Patterns, and Practices in C#
by Robert C. Martin and Micah Martin
This is a dense but valuable book. The authors (father and son) do a great job of delving deep into the subject of software design principles and patterns. The code samples in this book are written in C#. Brian Henderson recommended that I read this book.
Almost all of these books were recommended by friends or colleagues. If you know of a good book related to these topics, please leave a comment.
Where do you find time to read all these books?
@Mauro — I’ve spent way too much time on airplanes over the last 6 months 🙂
Hi Stephen,
I also liked the following books.
1) Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt – Pragmatic Bookshelf
http://www.amazon.com/…/097451408X
2) Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson – Addison-Wesley Professional
http://www.amazon.com/…/0321268202
3) Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock – Addison-Wesley Object Technologiey Series
http://www.amazon.com/…/0201379430
Regards,
Sendhil
Good list very similar to mine, I intend on hitting the books over the next couple of months and have just ordered Refactoring: Improving the Design of Existing Code and Test-Driven Development: By Example from Amazon just to get me started. The only addition I can think of is Code Complete by Steve McConnell.
I found nice clean C# versions of the Head First Design Patterns over on DOFactory.com – in addition to their free code showing the GoF patterns ( http://www.dofactory.com/Patterns/Patterns.aspx ), they sell a downloadable “pattern framework” which includes the C# versions of the Head First patterns ( http://www.dofactory.com/Framework/Framework.aspx )
[Be warned – that very long page is a “hard sell” reminiscent of the many “make millions working from home” scams, but at least this one does actually have useful code samples!]
@Philip – that is a great resource to know about, thanks!
@capgpilk – I considered adding Code Complete to the list since I know a lot of people have recommended the book, but is the book an Agile/TDD/Patterns book?
I would say Code Complete is a Software Design/best practice book. Incidently I have come accross the top 100 list of software books. There may be something on there of interest to you.
Stephen,
I’m glad you liked Head First Design Patterns. Java is similar enough to C# that I think it illustrates the point well enough for .Net developers (well, I guess VBers might have trouble with it) and the cartoons may be unnecessary fluff but it keeps the tone of the book a bit lighter and less dry than many other design pattern books I’ve tried to get through.
Thanks for the great list of books, many of which I have not yet had the chance to read. I think I may give Refactoring to Patterns and Framework Design Guidelines a go next.
this post is great..!, I have been waiting your MVC book. thanks for sharing us.
You had a lot of books list for asp.net..
i see what i want..
thanks for sharing..
fuh!!!….a lot of books to read. i hope i can finish all in 2 years.
Great list..
this is your books?
very nice post… thanks!!!
very nice post.. thanks!
ASP.NET page represents a class. And, not just any class.
“Clean Code: A Handbook of Agile Software Craftsmanship” – Robert C. Martin Series. It is a good book to include in your list…
Ya really very useful list. Thanks for sharing.
8 I tried to mock a call to a Linq to SQL query, but I am struggling.
Great question! In Firefox, the __proto__ magic property is read/write as demonstrated by the following script:
early childhood education degree | marketing degree | computer science degree
I have same problem as Jerry. I followed your video “Preventing JavaScript injection” but my code always produce the following page “A potentially dangerous Request.Form” with and without using Html.Encode.
online doctoral degree | accounting degree
Really very useful list. Thanks for sharing.
f343f– It looks like DataContextExtensions.cs line 45 of the Save method should pass the primaryKeyName through to Update.
selam hi This sounds fascinating sıcak sohbet I’m going to read that tracing articlekısa aşk şiirleri when I have a moment.
Wow. erotik film izle is
şifalı bitkiler zayıflama de
çet sohbet fer
netlog ger
müzik dinle err
şarkı dinle
cüneyt arkın filmleri kk
isyan sözleri fer
hikayeler er
islami çet ff
adet sancısına ne iyi gelir hh
escort bayanlar der
bedava chat dd
chat odaları der
liseli kızlar derf
kızlarla sohbet fder
kızlarla chat
sohbet errCFR
Nice articles Keep it up
As the users of HD Camcorders like Sony, Canon, Panasonic, this HD Video Converter is necessary to help us convert hd Video easily and quickly. The Converter for HD provides several practical editing functions to help you achieve ideal output effect. Trim function is to cut videos into clips which you can just convert and transfer to your player. Crop function helps you remove black bars around the movie. You could use Effect function to adjust video brightness, contrast, saturation and more parameters. More powerful and considerate functions are waiting for you to explore.
Mac Video Converter l Rip Blu Ray l VOB Converter .