Vaughn Vernon

#DDD
#Domain-Driven_Design
#Domain
#software_developers
#SOA
#REST
#CQRS
#Event-Driven
#Scrum
#ORM
#NoSQL
#databases
«برای توسعهدهندگان نرمافزار در هر سطحی از تجربه که به دنبال بهبود نتایج خودشون هستن و میخوان اپلیکیشنهای سازمانی دامنه-محور رو به طور مداوم با بهترین و بهروزترین شیوههای حرفهای طراحی و پیادهسازی کنن، کتاب پیادهسازی طراحی دامنه-محور گنجینهای از دانش رو به ارمغان میاره که به سختی طی دو دهه گذشته در جوامع DDD و معماری اپلیکیشنهای سازمانی به دست اومده.»
– رندی استفورد (Randy Stafford)، معمار ارشد، تیم توسعه محصول Oracle Coherence
«این کتاب برای هر کسی که به دنبال پیادهسازی عملی DDD هست، یک باید خواند (must-read) است.»
– اودی داهان (Udi Dahan)، بنیانگذار NServiceBus
کتاب پیادهسازی طراحی دامنه-محور (Implementing Domain-Driven Design) یک رویکرد بالا به پایین برای فهمیدن طراحی دامنه-محور (DDD) ارائه میده، به طوری که الگوهای استراتژیک رو خیلی روان به ابزارهای برنامهنویسی تاکتیکی و بنیادی وصل میکنه. وان ورنون (Vaughn Vernon) رویکردهای هدایتشده برای پیادهسازی رو با معماریهای مدرن ترکیب میکنه و روی اهمیت و ارزش تمرکز بر دامنه کسبوکار، در عین حال که ملاحظات فنی رو هم در نظر میگیره، تأکید میکنه.
نویسنده با تکیه بر کتاب بنیادین اریک اوانز، Domain-Driven Design، تکنیکهای عملی DDD رو از طریق مثالهایی از دامنههای آشنا بهتون نشون میده. هر اصل با مثالهای واقعی جاوا پشتیبانی میشه (که همهشون برای توسعهدهندههای #C هم کاربرد دارن) و کل محتوا با یک مطالعه موردی واحد به هم گره خورده: تحویل یک سیستم SaaS بزرگ مبتنی بر اسکرام برای یک محیط چندمستأجره (multitenant).
نویسنده شما رو خیلی فراتر از رویکردهای “DDD-لایت” (که فقط به DDD به عنوان یک جعبه ابزار فنی نگاه میکنن) میبره و بهتون نشون میده چطور از “الگوهای طراحی استراتژیک” DDD با استفاده از مفاهیمی مثل Bounded Context، Context Maps و Ubiquitous Language به طور کامل بهرهبرداری کنید. با استفاده از این تکنیکها و مثالها، میتونید زمان عرضه به بازار (time to market) رو کاهش بدید و کیفیت رو بهبود ببخشید، در حالی که نرمافزاری میسازید که انعطافپذیرتر، مقیاسپذیرتر و به شدت همسو با اهداف کسبوکار است.
🎯 موضوعاتی که پوشش داده میشن:
✅ شروع درست با DDD، تا بتونید به سرعت ازش ارزش کسب کنید.
🏛️ استفاده از DDD در معماریهای متنوع، شامل Hexagonal (ششضلعی)، SOA، REST، CQRS، Event-Driven و معماریهای مبتنی بر Fabric/Grid.
🧐 طراحی و به کارگیری صحیح Entityها — و یادگیری اینکه چه زمانی باید به جای اونها از Value Objectها استفاده کرد.
⚡️ استادی در تکنیک قدرتمند و جدید DDD یعنی Domain Events.
🗄️ طراحی Repositoryها برای ORM، NoSQL و سایر دیتابیسها.
فصل ۱: شروع کار با DDD
فصل ۲: دامنهها، زیردامنهها و کانتکستهای محدود (Bounded Contexts)
فصل ۳: نقشههای کانتکست (Context Maps)
فصل ۴: معماری (Architecture)
فصل ۵: موجودیتها (Entities)
فصل ۶: اشیاء مقدار (Value Objects)
فصل ۷: سرویسها (Services)
فصل ۸: رویدادهای دامنه (Domain Events)
فصل ۹: ماژولها (Modules)
فصل ۱۰: اگریگیتها (Aggregates)
فصل ۱۱: فکتوریها (Factories)
فصل ۱۲: ریپازیتوریها (Repositories)
فصل ۱۳: یکپارچهسازی کانتکستهای محدود
فصل ۱۴: اپلیکیشن (Application)
رندی استفورد: «…وان نشان میدهد که DDD چگونه با مجموعه رو به گسترش سبکهای معماری و تکنولوژیهای پایدارسازی برای اپلیکیشنهای سازمانی—شامل SOA و REST، NoSQL و data grids—که در دهه پس از انتشار کتاب اصلی اریک اوانز ظهور کردهاند، سازگار است… و به طرز شایستهای، اصول اولیه و کاربردی DDD—پیادهسازی entityها، value objectها، aggregateها، سرویسها، eventها، factoryها و repositoryها—را با مثالهای فراوان و بینشهای ارزشمند برگرفته از دههها تجربه عملی روشن میکند. در یک کلام، من این کتاب را کامل و جامع توصیف میکنم…»
اودی داهان: «طراحی دامنه-محور مجموعهای قدرتمند از ابزارهای فکری است… مشکل اینجاست که بسیاری از توسعهدهندگان هنگام به کار بردن این ابزارها گمراه میشدند و واقعاً به راهنماییهای ملموستری نیاز داشتند. در این کتاب، وان حلقههای گمشده بین تئوری و عمل را فراهم میکند. علاوه بر روشن کردن بسیاری از عناصر اشتباه درک شده DDD، وان مفاهیم جدیدی مانند جداسازی مسئولیت دستور و پرسوجو (CQRS) و منبعیابی رویداد (Event Sourcing) را نیز به هم متصل میکند که بسیاری از متخصصان پیشرفته DDD با موفقیت از آنها استفاده کردهاند…»
آلبرتو برندولینی: «سالها بود که توسعهدهندگانی که برای پیادهسازی عملی DDD تلاش میکردند، آرزوی کمکهای عملی بیشتری داشتند… وان کار بسیار خوبی در پر کردن شکاف بین تئوری و عمل با یک مرجع پیادهسازی کامل انجام داده است. او تصویری زنده از چگونگی انجام DDD در یک پروژه معاصر ترسیم میکند…»
پال رینر: «کتاب پیادهسازی DDD کار قابل توجهی انجام میدهد: یک حوزه موضوعی پیچیده و اساسی در DDD را برداشته و آن را به وضوح، با ظرافت، سرگرمی و زیبایی ارائه میدهد. این کتاب به سبکی جذاب و دوستانه نوشته شده، مانند یک مشاور معتمد که به شما مشاوره تخصصی میدهد…»
وان ورنون (Vaughn Vernon) قهرمان سادهسازی معماری و توسعه نرمافزار، با تأکید بر روشهای ریاکتیو (reactive) است. او توانایی منحصربهفردی در آموزش و رهبری با استفاده از طراحی دامنه-محور (DDD) با ابزارهای سبک برای آشکار کردن ارزشهای غیرقابل تصور دارد. او به سازمانها کمک میکند تا با استفاده از ابزارهای پایدار مانند معماریها، الگوها و رویکردها، و از طریق مشارکت بین ذینفعان کسبوکار و توسعه نرمافزار، به مزیتهای رقابتی دست یابند.ت یابند.
“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.”
–Randy Stafford, Architect At-Large, Oracle Coherence Product Development
“This book is a must-read for anybody looking to put DDD into practice.”
–Udi Dahan, Founder of NServiceBus
Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.
Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.
The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.
Coverage includes
• Getting started the right way with DDD, so you can rapidly gain value from it
• Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based
• Appropriately designing and applying Entities–and learning when to use Value Objects instead
• Mastering DDD’s powerful new Domain Events technique
• Designing Repositories for ORM, NoSQL, and other databases
Table of Contents
Chapter 1 Getting Started with DDD
Chapter 2 Domains, Subdomains, and Bounded Contexts
Chapter 3 Context Maps
Chapter 4 Architecture
Chapter 5 Entities
Chapter 6 Value Objects
Chapter 7 Services
Chapter 8 Domain Events
Chapter 9 Modules
Chapter 10 Aggregates
Chapter 11 Factories
Chapter 12 Repositories
Chapter 13 Integrating Bounded Contexts
Chapter 14 Application
“With Implementing Domain-Driven Design , Vaughn has made an important contribution not only to the literature of the Domain-Driven Design community, but also to the literature of the broader enterprise application architecture field. In key chapters on Architecture and Repositories, for example, Vaughn shows how DDD fits with the expanding array of architecture styles and persistence technologies for enterprise applications―including SOA and REST, NoSQL and data grids―that has emerged in the decade since Eric Evans’ seminal book was first published. And, fittingly, Vaughn illuminates the blocking and tackling of DDD―the implementation of entities, value objects, aggregates, services, events, factories, and repositories―with plentiful examples and valuable insights drawn from decades of practical experience. In a word, I would describe this book as thorough. For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.”
―Randy Stafford, Architect At-Large, Oracle Coherence Product Development
“Domain-Driven Design is a powerful set of thinking tools that can have a profound impact on how effective a team can be at building software-intensive systems. The thing is that many developers got lost at times when applying these thinking tools and really needed more concrete guidance. In this book, Vaughn provides the missing links between theory and practice. In addition to shedding light on many of the misunderstood elements of DDD, Vaughn also connects new concepts like Command/Query Responsibility Segregation and Event Sourcing that many advanced DDD practitioners have used with great success. This book is a must-read for anybody looking to put DDD into practice.”
―Udi Dahan, Founder of NServiceBus
“For years, developers struggling to practice Domain-Driven Design have been wishing for more practical help in actually implementing DDD. Vaughn did an excellent job in closing the gap between theory and practice with a complete implementation reference. He paints a vivid picture of what it is like to do DDD in a contemporary project, and provides plenty of practical advice on how to approach and solve typical challenges occurring in a project life cycle.”
― Alberto Brandolini, DDD Instructor, Certified by Eric Evans and Domain Language, Inc.
“Implementing Domain-Driven Design does a remarkable thing: it takes a sophisticated and substantial topic area in DDD and presents it clearly, with nuance, fun and finesse. This book is written in an engaging and friendly style, like a trusted advisor giving you expert counsel on how to accomplish what is most important. By the time you finish the book you will be able to begin applying all the important concepts of DDD, and then some. As I read, I found myself highlighting many sections . . . I will be referring back to it, and recommending it, often.”
― Paul Rayner, Principal Consultant & Owner, Virtual Genius, LLC., DDD Instructor, Certified by Eric Evans and Domain Language, Inc., DDD Denver Founder and Co-leader
“One important part of the DDD classes I teach is discussing how to put all the ideas and pieces together into
Vaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.









