Aligning Software Architecture and Business Strategy
Vlad Khononov
DDD#
Domain_Driven_Design#
ساخت نرمافزار سختتر از همیشه شده است. بهعنوان یک توسعهدهنده، شما نه تنها باید با روندهای فناوری که دائماً در حال تغییر هستند همگام شوید، بلکه باید درک کاملی از دامنههای تجاری پشت نرمافزار نیز داشته باشید. این کتاب عملی مجموعهای از الگوها، اصول و شیوههای اصلی برای تجزیه و تحلیل دامنههای تجاری، درک استراتژیهای تجاری و مهمتر از همه، همراستاسازی طراحی نرمافزار با نیازهای تجاری آن ارائه میدهد.
نویسنده ولاد خنونوف به شما نشان میدهد که چگونه این شیوهها منجر به پیادهسازی قوی منطق تجاری میشوند و به ایجاد طراحی و معماری نرمافزار مقاوم در برابر تغییرات در آینده کمک میکنند. شما رابطه بین طراحی مبتنی بر دامنه (DDD) و سایر متدولوژیها را بررسی خواهید کرد تا اطمینان حاصل کنید که تصمیمات معماری شما با نیازهای تجاری سازگار است. همچنین داستان واقعی پیادهسازی DDD در یک شرکت استارتاپی را مورد بررسی قرار خواهید داد.
با این کتاب، شما یاد خواهید گرفت که چگونه:
بررسیها
"ولادیک خنونوف یک متفکر منحصر به فرد است که برای سالها از DDD برای حل مسائل واقعی تجاری استفاده کرده است. ایدههای او همواره جامعه DDD را به جلو میبرد و این کتاب برای افرادی که قصد دارند DDD را بهطور عملی پیادهسازی کنند، الهامبخش خواهد بود."
— Nick Tune, مشاور فناوری
"با بازتابی که از پیشنویسهای این کتاب داشتهام، چیزی که با شادی زیادی به ذهنم میآید این است که این کتاب بهطور کامل به نام خود عمل میکند! این یک راهنمای عملی جذاب و آموزنده است که دامنه DDD را از استراتژی تا طراحی فنی پوشش میدهد. من بینش و درک جدیدی از مناطقی که در آنها تجربه داشتم بهدست آوردهام و مفاهیم و شیوههایی که کمتر با آنها آشنا بودم را یاد گرفتهام. ولاد معلم فوقالعادهای است!"
— Ruth Malan, مشاور معماری در Bredemeyer Consulting
"ولاد تجربه زیادی در پیادهسازی DDD بر روی پروژههای پیچیده دارد و در این کتاب آن دانش را با سخاوت به اشتراک گذاشته است. این کتاب داستان DDD را بهشیوهای منحصر به فرد روایت میکند و دیدگاه عالی برای یادگیری فراهم میآورد. این کتاب به مبتدیان هدفگذاری شده است، اما حتی بهعنوان یک DDD کار قدیمی که درباره DDD مینویسد و سخنرانی میکند، من از دیدگاه او چیزهای زیادی یاد گرفتم."
— Julie Lerman, مربی نرمافزار، نویسنده O'Reilly و حامی DDD
"این کتاب باید برای همه معماران نرمافزار و رهبران این حوزه یک مطالعه الزامی باشد!"
— Jeremy Stafford, مهندس ارشد نرمافزار در PetSmart
"بهطور آزاد میگویم: فکر میکنم این کتاب "کتاب DDD این دهه" خواهد بود."
— Alexander Zeitler
"این یک کمک شگفتانگیز به حفظ/بازسازی سلامت صنعت نرمافزار است."
— Asher Sterkin, معاون ارشد مهندسی در BlackSwan Technologies
فهرست مطالب
بخش اول: طراحی استراتژیک
بخش دوم: طراحی تاکتیکی
بخش سوم: اعمال طراحی مبتنی بر دامنه در عمل
بخش چهارم: روابط با سایر متدولوژیها و الگوها
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practical book provides you with a set of core patterns, principles, and practices for analyzing business domains, understanding business strategy, and, most importantly, aligning software design with its business needs.
Author Vlad Khononov shows you how these practices lead to robust implementation of business logic and help to future-proof software design and architecture. You'll examine the relationship between domain-driven design (DDD) and other methodologies to ensure you make architectural decisions that meet business requirements. You'll also explore the real-life story of implementing DDD in a startup company.
With this book, you'll learn how to:
"Vladik Khononov is a unique thinker who has been applying DDD to solve real business problems for years. His ideas constantly move the whole DDD community forward, and this book will inspire beginning DDD practitioners." —Nick Tune, Technology Consultant
"Reflecting on my readings of drafts of this book, the thing that comes to mind, with a great deal of joy at the thought, is that it delivers on its title! It is an inviting and informative practice guide, covering the scope of DDD from strategy to technical design. I've gained new insight and understanding in areas where I have experience and filled in concepts and practices I'd had less exposure to. Vlad is a wonderful teacher!" —Ruth Malan, Architecture Consultant at Bredemeyer Consulting
"Vlad has a lot of hard-won experience as a DDD practitioner working on some deeply complex projects and has been generous in sharing that knowledge. In this book, he tells the story of DDD in a unique way providing a great perspective for learning. This book is aimed at newcomers, yet as a longtime DDD practitioner who also writes and speaks about DDD, I found that I learned so much from his perspective." —Julie Lerman, Software Coach, O'Reilly Author, and Serial DDD Advocate
"This should be required reading for all software architects and leaders in the field!" — Jeremy Stafford, Lead Software Engineer at PetSmart
"I'll say it freely: I think this will be "THE" DDD book of this decade." — Alexander Zeitler
"It's a trully great contribution to preserving/restoring the software industry's sanity" — Asher Sterkin, Senior Vice President Of Engineering at BlackSwan Technologies
Table of Contents
Part I. Strategic Design
Chapter 1. Analyzing Business Domains
Chapter 2. Discovering Domain Knowledge
Chapter 3. Managing Domain Complexity
Chapter 4. Integrating Bounded Contexts
Part II. Tactical Design
Chapter 5. Implementing Simple Business Logic
Chapter 6. Tackling Complex Business Logic
Chapter 7. Modeling the Dimension of Time
Chapter 8. Architectural Patterns
Chapter 9. Communication Patterns
Part III. Applying Domain-Driven Design in Practice
Chapter 10. Design Heuristics
Chapter 11. Evolving Design Decisions
Chapter 12. EventStorming
Chapter 13. Domain-Driven Design in the Real World
Part IV. Relationships to Other Methodologies and Patterns
Chapter 14. Microservices
Chapter 15. Event-Driven Architecture
Chapter 16. Data Mesh
Vlad (Vladik) Khononov is a software engineer with over 20 years of industry experience, during which he has worked for companies large and small in roles ranging from webmaster to chief architect. Vlad maintains an active media career as a public speaker, blogger, and author. He travels the world consulting and talking about domain-driven design, microservices, and software architecture in general. Vlad helps companies make sense of their business domains, untangle legacy systems, and tackle complex architectural challenges. Vladik lives in Northern Israel with his wife and an almost-reasonable number of cats.