 |
Universal Principles of Design by WIlliam Lidwell, Kritina Holden, and Jim Butler
This is a great first book for designers. It contains 100 common design concepts that everyone should know - things like the 80/20 Rule, Ockam's Razor, and Fitts' Law. If you're a code slinger, this may not the book for you. But if you do design in any capacity, this book has something for you that I guarantee will help refine your craft. It's a beautiful book and the explanations and examples are dead on.
|
 |
Domain-Driven Design by Eric Evans
I love this book because it offers most elegant model for software design I've ever seen. All software is boiled down into four elements: ENTITIES, VALUE OBJECTS, SERVICES, and MODULES. Not only does it offer a great mental model for conceptualizing design, it offer tons and tons of real world examples. Chapter 5 alone is worth the price of the book. This book WILL make you a better designer and developer.
|
 |
Architecting Applications for the Enterprise by Dino Esposito and Andrea Saltarello
If you’re an .NET developer looking to get a better understanding of software architecture you’re in luck. This book offers a superb hands-on introduction to all the aspects of application architecture you’ll need. You’ll get an introduction to software architecture as a discipline as well as an overview of UML and a review of commonly accepted industry design principles. From there Dino and Andrea dive right into the heart of application architecture – designing your data, business, service, and presentation layers. There’s a TON of guidance on the options available for each of your layers and when to choose which. The greatest strength of this book - it's all proven out in a real world working example that you can download and try out. I can’t underscore how important this book is to the working developer. I applaud this book for it’s greatness and curse Dino and Andrea for writing the book I wanted to write. Highly recommended!.
|
 |
Design Patterns - Elements of Resusable Object-Oriented Software by Erich Gamma, et. al.
This is the book that launched a thousand software architect careers. Considered by all to be a classic, it was the first serious attempt to document repeatable high-level software designs. The patterns themselves have aged fairly well, but what really made this book stand out was the taxonomy and prescriptive format used to document the patterns. It's one of those books that you get more out of each time you crack it open. It's dense and has a somewhat academic/scientific flavor to it, making it difficult to read in places. If you find this a turn off, the derivative works are more approachable and cover all the same topics this book does. It may be nostalgia, but I prefer this version over the derivatives.
|
  |
Framework Design Guidelines - Conventions, Idioms, and Patterns for Resusable .NET Libraries by Krzysztof Cwalina and Brad Abrams
This book is the result of an internal effort at Microsoft to share framework design best practices during the development of the .NET 1.0 framework. Krzysztof and Brad were part of a team that conducted API usability studies and reviews of the emerging framework APIs with the development teams doing the work. It began as a word document and review consultations with teams but eventually turned into a series of internal lectures offered to all developers working at Microsoft. That was where I first heard about this effort. The lectures were recorded and for a while made publicly available (they have since been removed). The series ultimately let to the creation of this book, which is jam packed with years of wisdom and anecdotes about good API design. If you work on shared libraries, this book is a must read. P.S. I still keep a dvd with the original lectures in my backpack. Catch me at an event and I'll share.
|
  |
Refactoring - Improving the Design of Existing Code by Martin Fowler, et. al.
Ever inherit a big mountain of nasty code and have to add new features to it? You can only play the "we have to rewrite it all from scratch" card with management a once every couple of years. This book is THE canonical reference for identifying smelly code and getting it cleaned up. It provides an enormous toolbox of tactics you can use to make incremental improvements to an existing code base. Using these tactics along with an iterative approach, you could very well rewrite an application from scratch over the period of a few releases and your management will be none the wiser. Every developer on your team needs to own this one.
|
  |
Systems Thinking - Managing Complexity and Chaos by Jamshid Gharajedaghi
This book is a cornucopia of ideas, patterns, and solutions for looking at complex systems and creating order and structure throughout them. It's a book about organizing businesses and people but applies equally well to software systems, especially those built through domain driven design principles. It's a dense read but full if mind-blowing concepts. It's is a business book but I'm classifying it as a architecture and design book for one good reason - it has the best description of architecture that I've ever encountered. Hint: it's on page 189.
|
  |
The Design of Sites – Patterns for Creating Winning Web Sites by Van Duyne, Landay, and Hong
This book does for web design what the gang of four book did for object-oriented software development. It contains, quite simply, the best catalog of design patterns and paradigms ever published for building web sites with great user experiences. It begins with a survey of the different web site genres on the net and advice on how to design sites around these genres to hit your target audience. What follows are best practices for everything found on modern web sites: branding, navigation, accessibility, personalization/customization, browsing and searching, efficient shopping, and much more. It concludes with advice on how to tune the speed of your sites to ensure that users get a snappy response and want to come back for more. It contains 1000s of full color example screenshots illustrating the knowledge they are sharing. My only caution to you is that you be so inspired by this book, you will want to use ALL the patterns in every new site you build.
|