We analysed more than 40 000 000 questions and answers on stackoverflow.com to bring you the top of most mentioned books (5720 in total)

How we did it:

  • We got database dump of all user-contributed content on the Stack Exchange network (can be downloaded here)
  • Extracted questions and answers made on stackoverflow
  • Found all amazon.com links and counted it
  • Created tag-based search for your convenience
  • Brought it to you

For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks

Recomended tags

Top domain-driven-design books mentioned on stackoverflow.com

Working Effectively with Legacy Code

Michael C. Feathers

The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.

The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.

Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.

Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.

To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.

The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.

Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.

It's an unfortunate commentary on the state of our programming industry how much we need this book.

More on Amazon.com

Clean Code

Robert C. Martin

An extremely pragmatic method for writing better code from the start, and ultimately producing more robust applications.

More on Amazon.com

Domain-driven Design

Eric Evans

Describes ways to incorporate domain modeling into software development.

More on Amazon.com

Patterns of Enterprise Application Architecture

Martin Fowler

This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.

More on Amazon.com

Test-driven Development

Kent Beck

Write clean code that works with the help of this groundbreaking software method. Example-driven teaching is the basis of Beck's step-by-step instruction that will have readers using TDD to further their projects.

More on Amazon.com

CLR Via C#

Jeffrey Richter

Your essential guide to developing applications with the common language runtime (CLR) and Micrsoft.NET Framework4.0, with examles in Microsoft Visual C # 2010.

More on Amazon.com

Dependency Injection in .NET

Mark Seemann

"Dependency Injection in .NET" is a comprehensive guide that introduces DI to .NET developers. It covers core concepts and patterns, and introduces important DI frameworks, such as StructureMap, Windsor, and Spring.NET.

More on Amazon.com

Applying UML and Patterns

Craig Larman

This third edition again delivers a clear path for students and professionals to learn and apply object-oriented analysis and design.

More on Amazon.com

Agile Software Development

Robert C. Martin

Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author incudes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application -- from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer's thoughts — showing the errors, blind alleys, and creative insights that occur throughout the software design process. Covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile methods can be used. Discusses the methods for designing and developing big software in detail. Features a three-chapter, in-depth, single case study of a building security system. For Software Engineers, Programmers, and Analysts who want to understand how to design object oriented software with state of the art methods.

More on Amazon.com

Architecting Microsoft .NET Solutions for the Enterprise

Dino Esposito, Andrea Saltarello

Provides information on designing and building effective enterprise solutions, covering such topics as UML, the business layer, the service layer, and the data access layer.

More on Amazon.com

Agile Principles, Patterns, and Practices in C#

Robert C. Martin, Micah Martin

Comprehensive, pragmatic tutorial on Agile development for C# programmers from one of the founding fathers of Agile programming.

More on Amazon.com

Applying Domain-driven Design and Patterns

Jimmy Nilsson

A practical guide to applying patterns in building a customized architecture for the application you are developing.

More on Amazon.com

Implementing Domain-Driven Design

Vaughn Vernon

“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.” –Randy Stafford, Architect At-Large, Oracle Coherence Product Development “This book is a must-read for anybody looking to put DDD into practice.” –Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment. The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals. Coverage includes Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities–and learning when to use Value Objects instead Mastering DDD's powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases

More on Amazon.com

Object-oriented Software Construction

Bertrand Meyer

This is, quite simply, the definitive reference on the most important development in software technology for the last 20 years: object-orientation.A whole generation was introduced to object technology through the first edition of this book. This long-awaited new edition retains the qualities of clarity, practicality and scholarship that made the first an instant best-seller, but has been thoroughly revised and expanded. Among the new topics covered in depth are: Concurrency, distribution, client/server and the Internet; object-oriented databases; design by contract; fundamental design patterns; finding classes; the use and misuse of inheritance; abstract data types; and typing issues. The book also includes completely updated discussions of reusability, modularity, software quality, object-oriented languages, memory management, and many other essential topics.All software developers and computer science students, worldwide.

More on Amazon.com

Effective Java

Joshua Bloch

A new edition of this title is available, ISBN-10: 0321356683 ISBN-13: 9780321356680

More on Amazon.com

Professional ASP.NET Design Patterns

Scott Millett

Professional ASP.NET Design Patterns is all about showing you how to use the power of design patterns and core design principles in real ASP.NET applications. The goal of this book is to educate developers on the fundamentals of object oriented programming, design patterns, principles, and methodologies that can help you become a better programmer. Design patterns and principles enable loosely coupled and highly cohesive code, which will improve your code’s readability, flexibility, and maintenance. Each chapter addresses a layer in an enterprise ASP.NET application and shows how proven patterns, principles, and best practices can be leveraged to solve problems and improve the design of your code. In addition, a professional-level, end-to-end case study is used to show how to use best practice design patterns and principles in a real website. Professional ASP.NET Design Patterns is for ASP.NET developers who are comfortable with the .NET framework but are looking to improve how they code and understand why design patterns, design principles, and best practices will make their code more maintainable and adaptable. Readers who have had experience with design patterns before may wish to skip Part 1 of the book, which acts as an introduction to the Gang of Four design patterns and common design principles, including the S.O.L.I.D. principles and Martin Fowler’s enterprise patterns. All code samples are written in C# but the concepts can be applied very easily to VB.NET. This book covers well-known patterns and best practices for developing enterprise-level ASP.NET applications. The patterns used can be applied to any version of ASP.NET from 1.0 to 4.0. The patterns themselves are language agnostic and can be applied to any object oriented programming language. Professional ASP.NET Design Patterns can be used both as a step-by-step guide and as a continuous source of reference to dip into at your leisure. The book is broken into three distinct sections. Part 1 is an introduction to patterns and design principles. Part 2 examines how patterns and principles can be used in the various layers of an ASP.NET application. Part 3 represents an end-to-end case study showcasing many of the patterns covered in the book. You may find it useful to work through the chapters before reading the case study, or you may find it easier to see the patterns in action by reading the case study section first and referring back to Part 2 for a more detailed view on the patterns and principles used. Within those parts the coverage includes: The origins of the Gang of Four design patterns, their relevance in today’s world, and their decoupling from specific programming languages. An overview of some common design principles and the S.O.L.I.D. design principles follows, and the chapter ends with a description of Fowler’s enterprise patterns. Layering Your Application and Separating Your Concerns A description of the Transaction Script pattern followed by the Active Record, with an exercise to demonstrate the pattern using the Castle Windsor project. The Domain Model pattern demonstrated in an exercise with NHibernate and a review of the domain-driven design (DDD) methodology Patterns and principles that can be used construct your objects and how to make sure that you are building your application for scalability and maintainability: Factory, Decorator, Template, State, Strategy, Composite, Specification and Layer Supertype. Design principles that can improve your code’s maintainability and flexibility; these include Dependency Injection, Interface Segregation, and Liskov Substitution Principle Service Oriented Architecture, the Facade design pattern, messaging patterns such as Document Message, Request-Response, Reservation, and the Idempotent pattern The Data Access Layer: Two data access strategies are demonstrated to help organize your persistence layer: Repository and Data Access Objects. Enterprise patterns and principles that will help you fulfill your data access requirement needs elegantly, including Lazy Loading, Identity Map, Unit of Work, and the Query Object. An introduction to Object Relational Mappers and the problems they solve. An enterprise Domain Driven exercise with POCO business entities utilizing both NHibernate and the MS Entity Framework. The Presentation Layer: how you can tie your loosely coupled code together Structure Map and an Inversion of Control container. Presentation patterns, including letting the view be in charge with the Model-View-Presenter pattern and ASP.NET web forms, the Front Controller presentation pattern utilizing the Command and Chain of Responsibility patterns, as well as the Model-View-Controller Pattern implemented with the ASP.NET MVC framework and Windsor’s Castle Monorail framework. The final presentation pattern covered is PageController as used in ASP.NET web forms. A pattern that can be used with organizational patterns, namely the ViewModel pattern and how to automate domain entities to ViewModel mapping with AutoMapper The User Experience Layer: AJAX, JavaScript libraries, including jQuery. AJAX patterns: Ajax Periodic Refresh and Timeout patterns, maintaining history with the Unique URL pattern, client side data binding with JTemplate, and the Ajax Predictive Fetch pattern An end-to-end e-commerce store case study with ASP.NET MVC, NHibernate, jQuery, Json, AutoMapper, ASP.NET membership provider and a second 3rd party authentication method, and PayPal as a payment merchant

More on Amazon.com

Design Patterns Explained

Alan Shalloway, James Trott

This book introduces the programmer to patterns: how to understand them, how to use them, and then how to implement them into their programs. This book focuses on teaching design patterns instead of giving more specialized patterns to the relatively few.

More on Amazon.com

Object Design

Rebecca Wirfs-Brock, Alan McKean

Object technology pioneer Wirfs-Brock teams with expert McKean to present a thoroughly updated, modern, and proven method for the design of software. The book is packed with practical design techniques that enable the practitioner to get the job done.

More on Amazon.com

ASP.NET MVC 2 in Action

Jeffrey Palermo, Ben Scheirman, Jimmy Bogard, Matthew Hinze, Eric Hexter

Featuring full coverage of new version 2 features, this book helps readers use developer-oriented upgrades like "Areas" to break a large project into smaller pieces and explore the new data handling tools.

More on Amazon.com

ASP.NET MVC in Action

Jeffrey Palermo, Ben Scheirman, Jimmy Bogard

The Model-View-Controller pattern is widely accepted as a best practice for UI development. With Microsoft's first release of an MVC framework for ASP.NET development, web development on the .NET framework is both simplified and more flexible. ASP.NET MVC in Action is an advanced guide to developing long-lived applications with the ASP.NET MVC framework. It moves past simple introductions and dives deep into architectural techniques that lead to maintainable web applications with the MVC pattern. ASP.NET MVC in Action lays a flexible foundation based on Domain-driven design, the S.O.L.I.D. principles, TDD, and interface-based development. With best-practices woven into every chapter, the authors present the new ASP.NET MVC framework in a manner that leads to more maintainable .NET web applications. This book assumes that readers are already experienced with ASP.NET development and C#. Numerous popular open-source libraries, such as MvcContrib, are referenced throughout, and the book comes with the full source to CodeCampServer, a user group conference organizing application.

More on Amazon.com

Design Patterns in C#

Steven John Metsker

bull; A catalogue of proven solutions to recurring problems in C# software design bull; Part of the Addison-Wesley Software Patterns Series, with John Vlissides as consulting editor bull; Allows the growing legions of Microsoft technology developers to apply traditional software approaches to frequently encountered problems

More on Amazon.com

ASP.NET MVC Framework Preview

Steven Sanderson

The ASP.NET MVC framework is the latest evolution of Microsoft's ASP.NET web platform. It introduces a radical high–productivity programming model, promotes cleaner code architecture, supports test–driven development, and provides powerful extensibility, combined with all the benefits of ASP.NET 3.5. ASP.NET MVC Framework Preview is a first look at this technology's main features, designed to give you a head start getting to grips with this powerful new technology.

More on Amazon.com

Domain-Driven Design Quickly

Floyd Marinescu, Abel Avram

Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project, and maintaining a software model that reflects a deep understanding of the domain. This book is a short, quickly-readable summary and introduction to the fundamentals of DDD; it does not introduce any new concepts; it attempts to concisely summarize the essence of what DDD is, drawing mostly Eric Evans' original book, as well other sources since published such as Jimmy Nilsson's Applying Domain Driven Design, and various DDD discussion forums. The main topics covered in the book include: Building Domain Knowledge, The Ubiquitous Language, Model Driven Design, Refactoring Toward Deeper Insight, and Preserving Model Integrity. Also included is an interview with Eric Evans on Domain Driven Design today.

More on Amazon.com

Patterns, Principles and Practices of Domain-Driven Design

Scott Millett

Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C# This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applications for complex domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space. You will learn how to build effective domain models through the use of tactical patterns and how to retain their integrity by applying the strategic patterns of DDD. Full end-to-end coding examples demonstrate techniques for integrating a decomposed and distributed solution space while coding best practices and patterns advise you on how to architect applications for maintenance and scale. Offers a thorough introduction to the philosophy of DDD for professional developers Includes masses of code and examples of concept in action that other books have only covered theoretically Covers the patterns of CQRS, Messaging, REST, Event Sourcing and Event-Driven Architectures Also ideal for Java developers who want to better understand the implementation of DDD

More on Amazon.com

Driving Technical Change

Terrence Ryan

New technologies are popping up every day. Convincing co-workers to adopt them is the hard part. Adobe software evangelist Ryan breaks down the patterns and types of resistance technologists face in many organizations.

More on Amazon.com

Architecting Mobile Solutions for the Enterprise

Dino Esposito

Provides information on creating an effective mobile computing strategy that meets the needs of an enterprise.

More on Amazon.com

Modern Web Development

Dino Esposito

Master powerful new approaches to web architecture, design, and user experience This book presents a pragmatic, problem-driven, user-focused approach to planning, designing, and building dynamic web solutions. You ll learn how to gain maximum value from Domain-Driven Design (DDD), define optimal supporting architecture, and succeed with modern UX-first design approaches. The author guides you through choosing and implementing specific technologies and addresses key user-experience topics, including mobile-friendly and responsive design. You ll learn how to gain more value from existing Microsoft technologies such asASP.NETMVC and SignalR by using them alongside other technologies such as Bootstrap, AJAX, JSON, and JQuery. By using these techniques and understanding the newASP.NETCore 1.0, you can quickly build advanced web solutions that solve today s problems and deliver an outstanding user experience. Microsoft MVP Dino Esposito shows you how to: Plan websites and web apps to mirror real-world social and business processes Use DDD to dissect and master the complexity of business domains Use UX-Driven Design to reduce costs and give customers what they want Realistically compare server-side and client-side web paradigms Get started with the newASP.NETCore 1.0 Simplify modern visual webpage construction with Bootstrap Master practical, efficient techniques for runningASP.NETMVC projects Consider new options for implementing persistence and working with data models Understand Responsive Web Design s pros, cons, and tradeoffs Build truly mobile-friendly, mobile-optimized websites About This Book For experienced developers and solution architects who want to plan and develop web solutions more effectively Assumes basic familiarity with the Microsoft web development stack "

More on Amazon.com

Event Centric

Greg Young

In this new book, leading practitioner Greg Young shows how to incorporate effective domain modeling throughout the software development process, designing large and complex systems so they can be built more efficiently, dynamically, and successfully. Young takes the next steps beyond the DDD principles and best practices introduced by Eric Evans in Domain-Driven Design: Tackling Complexity in the Heart of Software. One step at a time, he explains how to use DDD with Command-Query Responsibility Separation (CQRS) to select the right design solutions and make them work in the real world. System designers and architects will learn how CQRS and event sourcing can simplify construction, decentralize decision-making, and make system development more flexible and responsive. Young also shows how DDD and CQRS make it possible to coordinate larger development teams without higher levels of management maturity. To write this book, Young has drawn on his widely-praised 3-day course on CQRS, Domain Events, Event Sourcing, and DDD. He answers many of the questions course participants have raised, shows how to overcome common architectural obstacles to DDD, and guides professionals in solving the #1 problem they've encountered: translating DDD's abstract concepts into concrete solutions.

More on Amazon.com