In addition to the many links provided throughout this document, I’d like to recommend the following books, articles and sites for everyone interested in software quality:
Code Complete: A Practical Handbook of Software Construction (Steve McConnel) One of the best books I’ve ever read. It deals with all aspects of software development, and even though the book was originally written in 2004 you’ll be surprised when you see how accurate it still is. I wrote a review in 2009 if you want to get a sense of its contents.
The Art of Agile Development (James Shore) Another great all-encompassing trip through the many practices preached by processes like Scrum and Extreme Programming. If you’re looking for a quick introduction with a pragmatic touch, make sure you read James’s book.
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET (Jimmy Nilsson) The book that started my interest for both Domain-Driven Design and Test-Driven Development. It’s one of those books that I wished I had read a few years earlier. It would have spared me from many mistakes.
Jeremy D. Miller’s Blog Jeremy has written some excellent blog posts on Test-Driven Development, Design Patterns and design principles. I’ve learned a lot from his real-life and practical insights.
LINQ Framework Design Guidelines A set of rules and recommendations that you should adhere to when creating your own implementations of
Guidance on Asynchronous Programming (David Fowler) Best practices for
awaitwith examples of bad and good patterns of how to write asynchronous code.
Best Practices for c# async/await Older (but still valid) overview of crucial practices to follow when adopting
awaitin your own code base.