A software architect’s digest of core practices, pragmatically applied Designing effective architecture is your best strategy for managing project complexity—and improving your results. But the principles and practices of software architecting—what the authors call the “science of hard decisions”—have been evolving for cloud, mobile, and other shifts. Now fully revised and updated, this book shares the knowledge and real-world perspectives that enable you to design for success—and deliver more successful solutions.

In this fully updated Second Edition, you will: • Learn how only a deep understanding of domain can lead to appropriate architecture • Examine domain-driven design in both theory and implementation • Shift to code first/model later and a multilayer architecture approach • Capture the benefits of prioritizing software maintainability • See how readability, testability, and extensibility lead to code quality • Take a user experience (UX) first approach, rather than designing for data • Review patterns for organizing business logic • Use event sourcing and CQRS together to model complex business domains more effectively • Delve inside the persistence layer, including patterns and implementation

About the authors:

Dino Esposito, a well-known web and mobile development expert, has written several popular books, including Architecting Mobile Solutions for theEnterprise and Programming MicrosoftASP.NET MVC. In addition to writing and speaking, he is founder and CTO of a software and IT services firm serving the professional sports industry.

Andrea Saltarello is CEO, founder, and solution architect for a software design and development consultancy. He is an active speaker and trainer, as well as the lead developer on an opensource project focused on developing extensions to the ASP.NET MVC toolkit.