This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundament...

Buy Now From Amazon

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process, and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly and cheaply.

Similar Products

An Elegant Puzzle: Systems of Engineering ManagementDesigning Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable SystemsClean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)Timeless Laws of Software DevelopmentSoftware Design Decoded: 66 Ways Experts Think (The MIT Press)Design It!: From Programmer to Software Architect (The Pragmatic Programmers)The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))