Muutke küpsiste eelistusi

Balancing Coupling in Software Design: Universal Design Principles for Architecting Modular Software Systems [Pehme köide]

  • Formaat: Paperback / softback, 320 pages, kõrgus x laius x paksus: 230x180x15 mm, kaal: 566 g
  • Sari: Addison-Wesley Signature Series (Vernon)
  • Ilmumisaeg: 29-Oct-2024
  • Kirjastus: Addison Wesley
  • ISBN-10: 0137353480
  • ISBN-13: 9780137353484
Teised raamatud teemal:
  • Formaat: Paperback / softback, 320 pages, kõrgus x laius x paksus: 230x180x15 mm, kaal: 566 g
  • Sari: Addison-Wesley Signature Series (Vernon)
  • Ilmumisaeg: 29-Oct-2024
  • Kirjastus: Addison Wesley
  • ISBN-10: 0137353480
  • ISBN-13: 9780137353484
Teised raamatud teemal:
Microservices become immensely popular because it promised to help organizations build loosely-coupled systems that allow for fast, easy change. But microservices systems haven’t always kept that promise. This book identifies the deeper problem -- how software architects and designers approach coupling – and introduces an important new approach for creating more successful designs whether you use microservices or not.


Instead of blindly avoiding coupling, leading software architecture expert Vladik (Vlad) Khononov proposes a novel method that transforms it into a powerful design tool: “balanced multi-dimensional coupling.” Khononov begins by surveying existing methods of evaluating coupling, and illuminating their strengths and limitations in the context of modern distributed systems. Next, he introduces a new multi-dimensional coupling model, and demonstrates how to harness it to build modular software.


Instead of focusing solely on a single approach, Balancing Coupling in Software Design illuminates underlying design principles that are ubiquitous in SOA, microservices, DDD, design patterns, and other paradigms, revealing how each of them can fail if thoughtful design principles for coupling are neglected -- and how balanced coupling can make all of them work more effectively.



This book identifies the deeper problem—how software architects and designers approach coupling – and introduces an important new approach for creating more successful designs whether you use microservices or not. Instead of blindly avoiding coupling, leading software architecture expert Vladik (Vlad) Khononov proposes a novel method that transforms it into a powerful design tool: “balanced multi-dimensional coupling.” Khononov begins by surveying existing methods of evaluating coupling, and illuminating their strengths and limitations in the context of modern distributed systems. Next, he introduces a new multi-dimensional coupling model, and demonstrates how to harness it to build modular software.


Instead of focusing solely on a single approach, Balancing Coupling in Software Design illuminates underlying design principles that are ubiquitous in SOA, microservices, DDD, design patterns, and other paradigms, revealing how each of them can fail if thoughtful design principles for coupling are neglected—and how balanced coupling can make all of them work more effectively.

Arvustused

"Your software can get easier to change over time, but its hard work to make that happen. With the concepts and skills you'll gain from this book, though, you will be well on your way." --Kent Beck, creator of Extreme Programming and Test-Driven Development

"Get ready to unravel the multi-dimensional nature of coupling and the forces at work behind the scenes. The reference for those looking for a means to both assess and understand the real impact of design decisions." --Chris Bradford, Director of Digital Services, Cambridge Consultants

"Coupling is a tale as old as software. It's a difficult concept to grasp and explain, but Vlad effortlessly lays out the many facets of coupling in this book, presenting a tangible model to measure and balance coupling in modern distributed systems. This is a must-read for every software professional!" --Laila Bougria, solutions architect & engineer

"This book is essential for every software architect and developer, offering an unparalleled, thorough, and directly applicable exploration of the concept of coupling. Vlad's work is a crucial resource that will be heavily quoted and referenced in future discussions and publications." --Michael Plöd, fellow @ INNOQ

"Every software engineer is sensitive to coupling, the measure of interconnection between parts. Still, many times the understanding of such a fundamental property remains unarticulated. In this book, Vlad introduces a much-needed intellectual tool to reason about coupling in a systematic way, offering a novel perspective on this essential topic." --Ilio Catallo, senior software engineer

"Coupling is among the most slippery topics in software development. However, with this book, Vlad simplifies for us how coupling, from a great villain, can become a design tool when well understood. This is an indispensable guide for anyone dealing with software design--especially complex ones." --William Santos, software architect

"Balancing Coupling in Software Design by Vlad Khononov is an essential read for architects aiming for quality, evolvable systems. Khononov expertly classifies dependencies and reveals how varying designs impact effort based on component distance and change frequency, introducing a unified metric for coupling. With insightful case studies, he guides readers toward achieving optimal modularity and long-term system adaptability by illustrating and rectifying imbalances." --Asher Sterkin, independent software technology expert

"Khononov's groundbreaking work unifies paramount forces of software design into a coherent model for evaluating coupling of software systems. His insights provide an invaluable framework for architects to design modular, evolving systems that span legacy and modern architectures." --Felipe Henrique Gross Windmoller, staff software engineer, Banco do Brasil

"This book systematizes over five decades of software design knowledge, offering a comprehensive guide on coupling, its dimensions, and how to manage it effectively. If software design is a constant battle with complexity, then this book is about mastering the art of winning." --Ivan Zakervsky, IT architect

Introduction


Part I: Dimensions of Coupling


1. What is Coupling?


2. Strength


3. Distance


4. Volatility


Part II: Balanced Coupling


5. Balance


6. Balanced Coupling in Patterns and Methodologies


Part III: Refactoring Towards Balanced Coupling


7. Shell Script


8. Distributed System


9. Mobile Game


10. Conclusion

Vlad Khononov is a software engineer with extensive industry experience, working for companies large and small in roles ranging from webmaster to chief architect. His core areas of expertise are distributed systems and software design. Vlad consults with companies to make sense of their business domains, untangle monoliths, and tackle complex architectural challenges.

Vlad maintains an active media career as a public speaker and author. Prior to Balancing Coupling in Software Design, he authored the best-selling O'Reilly book Learning Domain-Driven Design. He is a sought-after keynote speaker, presenting on topics such as domain-driven design, microservices, and software architecture in general.