It has now been nearly 8 years since the first edition of Designing Software Architectures appeared. Much has changed in the world of technology since then. Cloud architectures, IoT architectures, DevOps, the rise of AI/ML, containers, micro-services, and much more. Was our advice from
A Philosophy of Software Design, 2nd Edition
โ Scribed by John Ousterhout
- Publisher
- Yaknyam Press
- Year
- 2021
- Tongue
- English
- Leaves
- 196
- Edition
- 2
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
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 VOLUMES
Learn how to create successful architectural designs and improve your current design practices!Designing Software Architectures, 2nd Edition, provides a practical, step-by-step methodology for architecture design that any professional software engineer can use, with structured methods supported by r
The nature of complexity -- Working code isn't enough -- Modules should be deep -- Information hiding (and leakage) -- General-purpose modules are deeper -- Different layer, different abstraction -- Pull complexity downwards -- Better together or better apart? -- Define errors out of existence -- De
<span>A newer edition of this book is now available; click on "See all formats and editions" above for details.</span><span><br><br>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 relativel