logo

CardDev

مسیر یادگیری
logo

CardDev

کتاب یادگیری طراحی مبتنی بر دامنه

0 فلش‌کارت
0 گالری‌کارت
0 صوت
0 پرامپت
0 واژه‌نامه

ساخت نرم‌افزار دشوارتر از همیشه است. به عنوان یک توسعه‌دهنده، شما نه تنها باید روندهای تکنولوژیکی در حال تغییر را دنبال کنید، بلکه باید دامنه‌های کسب‌وکار پشت نرم‌افزار را نیز درک کنید. این کتاب عملی مجموعه‌ای از الگوها، اصول و شیوه‌های اصلی را برای تحلیل دامنه‌های کسب‌وکار، درک استراتژی کسب‌وکار و مهم‌تر از همه، همسو کردن طراحی نرم‌افزار با نیازهای کسب‌وکار آن به شما ارائه می‌دهد. ولاد خونووف، نویسنده کتاب، به شما نشان می‌دهد که چگونه این شیوه‌ها منجر به پیاده‌سازی قوی منطق کسب‌وکار می‌شوند و به آینده‌نگری طراحی و معماری نرم‌افزار کمک می‌کنند. شما رابطه بین طراحی مبتنی بر دامنه (DDD) و سایر متدولوژی‌ها را بررسی خواهید کرد تا اطمینان حاصل کنید که تصمیمات معماری شما نیازهای کسب‌وکار را برآورده می‌کنند. همچنین داستان واقعی پیاده‌سازی DDD در یک شرکت استارتاپی را بررسی خواهید کرد. با این کتاب، یاد خواهید گرفت که چگونه: دامنه کسب‌وکار یک شرکت را تحلیل کنید تا بفهمید سیستمی که می‌سازید چگونه با استراتژی رقابتی آن مطابقت دارد. از ابزارهای استراتژیک و تاکتیکی DDD برای معماری راه‌حل‌های نرم‌افزاری مؤثر که نیازهای کسب‌وکار را برطرف می‌کنند، استفاده کنید. درک مشترکی از دامنه‌های کسب‌وکاری که با آن‌ها روبرو می‌شوید، ایجاد کنید. یک سیستم را به زمینه‌های محدود (Bounded Contexts) تجزیه کنید. کار چندین تیم را هماهنگ کنید. DDD را به تدریج در پروژه‌های موجود (brownfield projects) معرفی کنید.

اشتراکی

book cover
O’Reilly
0 فلش‌کارت
0 گالری‌کارت
0 صوت
0 پرامپت
0 واژه‌نامه
جزئیاتمقدمهفصل‌هانسخه‌ها

فصل های کتاب

با مرور فصل‌ها، ساختار ، محتوای کتاب را به سرعت بشناسید.

با مرور فصل‌های این کتاب می‌تونی خیلی سریع بفهمی هر بخش چی یاد میده، ساختار کلی چطوره و از کجا باید شروع کنی. هر فصل روی یک مفهوم یا مهارت خاص تمرکز داره و موضوعات اصلیش رو می‌بینی تا انتخابت آگاهانه‌تر باشه. چه بخوای کل کتاب رو دنبال کنی، چه فقط یک بخش خاص رو دنبال کنی، این نما کمکت می‌کنه مسیرت رو پیدا کنی.

طراحی استراتژیک

متدولوژی طراحی مبتنی بر دامنه (DDD) را می‌توان به دو بخش اصلی تقسیم کرد: طراحی استراتژیک و طراحی تاکتیکی. جنبه استراتژیک DDD به پاسخگویی به سوالات «چه چیزی؟» و «چرا؟» می‌پردازد—اینکه چه نرم‌افزاری می‌سازیم و چرا آن را می‌سازیم. بخش تاکتیکی تماماً در مورد «چگونه» است—اینکه هر جزء چگونه پیاده‌سازی می‌شود.

سفر خود را با کاوش الگوها و اصول طراحی استراتژیک در طراحی مبتنی بر دامنه آغاز خواهیم کرد:

  • در فصل ۱، یاد می‌گیرید که استراتژی کسب‌وکار یک شرکت را تحلیل کنید: چه ارزشی برای مصرف‌کنندگان خود فراهم می‌کند و چگونه با سایر شرکت‌ها در صنعت رقابت می‌کند. ما بلوک‌های سازنده کسب‌وکار با جزئیات بیشتر را شناسایی می‌کنیم، ارزش استراتژیک آن‌ها را ارزیابی می‌کنیم و تحلیل می‌کنیم که چگونه بر تصمیمات مختلف طراحی نرم‌افزار تأثیر می‌گذارند.
  • فصل ۲ یک عمل اساسی طراحی مبتنی بر دامنه را برای کسب درک از دامنه کسب‌وکار معرفی می‌کند: زبان فراگیر (Ubiquitous Language). یاد می‌گیرید که چگونه یک زبان فراگیر را پرورش دهید و از آن برای ایجاد درک مشترک بین تمام ذینفعان مرتبط با پروژه استفاده کنید.
  • فصل ۳ یکی دیگر از ابزارهای اصلی طراحی مبتنی بر دامنه را مورد بحث قرار می‌دهد: الگوی زمینه محدود (Bounded Context). یاد می‌گیرید که چرا این ابزار برای پرورش یک زبان فراگیر ضروری است و چگونه از آن برای تبدیل دانش کشف شده به یک مدل از ...
book cover

تحلیل دامنه‌های کسب‌وکار

What Is a Business Domain? • What Is a Subdomain? • Types of Subdomains • Comparing Subdomains • Identifying Subdomain Boundaries • Domain Analysis Examples • Gigmaster • BusVNext • Who Are the Domain Experts? • Conclusion • Exercises

فصل 1

درحال تولید...

book cover

کشف دانش دامنه

Business Problems • Knowledge Discovery • Communication • What Is a Ubiquitous Language? • Language of the Business • Scenarios • Consistency • Model of the Business Domain • What Is a Model? • Effective Modeling • Modeling the Business Domain • Continuous Effort • Tools • Challenges • Conclusion • Exercises

فصل 2

درحال تولید...

book cover

مدیریت پیچیدگی دامنه

Inconsistent Models • What Is a Bounded Context? • Model Boundaries • Ubiquitous Language Refined • Scope of a Bounded Context • Bounded Contexts Versus Subdomains • Subdomains • Bounded Contexts • The Interplay Between Subdomains and Bounded Contexts • Boundaries • Physical Boundaries • Ownership Boundaries • Bounded Contexts in Real Life • Semantic Domains • Science • Buying a Refrigerator • Conclusion • Exercises

فصل 3

درحال تولید...

book cover

یکپارچه‌سازی زمینه‌های محدود

Cooperation • Partnership • Shared Kernel • Customer–Supplier • Conformist • Anticorruption Layer • Open-Host Service • Separate Ways • Communication Issues • Generic Subdomains • Model Differences • Context Map • Maintenance • Limitations • Conclusion • Exercises

فصل 4

درحال تولید...

طراحی تاکتیکی

در بخش اول، ما در مورد «چه چیزی» و «چرا» نرم‌افزار بحث کردیم: شما یاد گرفتید که دامنه‌های کسب‌وکار را تحلیل کنید، زیردامنه‌ها و ارزش استراتژیک آن‌ها را شناسایی کنید، و دانش دامنه‌های کسب‌وکار را به طراحی زمینه‌های محدود (Bounded Contexts)—یعنی اجزای نرم‌افزاری که مدل‌های مختلف دامنه کسب‌وکار را پیاده‌سازی می‌کنند—تبدیل کنید.

در این بخش از کتاب، از استراتژی به تاکتیک‌ها می‌پردازیم: «چگونگی» طراحی نرم‌افزار:

  • در فصل‌های ۵ تا ۷، الگوهای پیاده‌سازی منطق کسب‌وکار را یاد می‌گیرید که به کد اجازه می‌دهند با زبان فراگیر (Ubiquitous Language) زمینه محدود خود صحبت کند. فصل ۵ دو الگو را معرفی می‌کند که منطق کسب‌وکار نسبتاً ساده‌ای را در خود جای می‌دهند: اسکریپت تراکنش (Transaction Script) و رکورد فعال (Active Record). فصل ۶ به موارد چالش‌برانگیزتر می‌پردازد و الگوی مدل دامنه (Domain Model) را معرفی می‌کند: روش DDD برای پیاده‌سازی منطق کسب‌وکار پیچیده. در فصل ۷، یاد می‌گیرید که الگوی مدل دامنه را با مدل‌سازی بعد زمان گسترش دهید.
  • در فصل ۸، روش‌های مختلف سازماندهی معماری یک زمینه محدود را بررسی خواهیم کرد: معماری لایه‌ای (Layered Architecture)، پورت‌ها و آداپتورها (Ports & Adapters)، و الگوهای CQRS. شما جوهر هر الگوی معماری و مواردی که هر الگو باید استفاده شود را یاد خواهید گرفت.
  • فصل ۹ به نگرانی‌های فنی و استراتژی‌های پیاده‌سازی برای هماهنگ‌سازی تعاملات بین اجزای یک سیستم می‌پردازد. شما الگوهایی را یاد می‌گیرید که از پیاده‌سازی الگوهای یکپارچه‌سازی زمینه محدود پشتیبانی می‌کنند، نحوه پیاده‌سازی انتشار قابل اعتماد پیام‌ها، و الگوهایی برای تعریف ...
book cover

پیاده‌سازی منطق کسب‌وکار ساده

Transaction Script • Implementation • It’s Not That Easy! • When to Use Transaction Script • Active Record • Implementation • When to Use Active Record • Be Pragmatic • Conclusion • Exercises

فصل 5

درحال تولید...

book cover

پرداختن به منطق کسب‌وکار پیچیده

History • Domain Model • Implementation • Building Blocks • Managing Complexity • Conclusion • Exercises

فصل 6

درحال تولید...

book cover

مدل‌سازی بعد زمان

Event Sourcing • Search • Analysis • Source of Truth • Event Store • Event-Sourced Domain Model • Advantages • Disadvantages • Frequently Asked Questions • Performance • Deleting Data • Why Can’t I Just…? • Conclusion • Exercises

فصل 7

درحال تولید...

book cover

الگوهای معماری

Business Logic Versus Architectural Patterns • Layered Architecture • Presentation Layer • Business Logic Layer • Data Access Layer • Communication Between Layers • Variation • When to Use Layered Architecture • Ports & Adapters • Terminology • Dependency Inversion Principle • Integration of Infrastructural Components • Variants • When to Use Ports & Adapters • Command-Query Responsibility Segregation • Polyglot Modeling • Implementation • Projecting Read Models • Challenges • Model Segregation • When to Use CQRS • Scope • Conclusion • Exercises

فصل 8

درحال تولید...

book cover

الگوهای ارتباطی

Model Translation • Stateless Model Translation • Stateful Model Translation • Integrating Aggregates • Outbox • Saga • Process Manager • Conclusion • Exercises

فصل 9

درحال تولید...

به‌کارگیری طراحی مبتنی بر دامنه در عمل

در بخش‌های اول و دوم، ابزارهای طراحی مبتنی بر دامنه را برای اتخاذ تصمیمات طراحی استراتژیک و تاکتیکی مورد بحث قرار دادیم. در این بخش از کتاب، از تئوری به عمل می‌پردازیم. شما یاد می‌گیرید که طراحی مبتنی بر دامنه را در پروژه‌های واقعی به کار ببرید.

  • فصل ۱۰ آنچه را که در مورد طراحی استراتژیک و تاکتیکی بحث کردیم، در قوانین ساده‌ای ادغام می‌کند که فرآیند تصمیم‌گیری طراحی را ساده‌تر می‌کند. شما یاد می‌گیرید که الگوهایی را که با پیچیدگی و نیازهای دامنه کسب‌وکار مطابقت دارند، به سرعت شناسایی کنید.
  • در فصل ۱۱، به طراحی مبتنی بر دامنه از منظری متفاوت نگاه خواهیم کرد. طراحی یک راه‌حل عالی مهم است، اما کافی نیست. ما باید آن را در طول زمان و با تکامل پروژه، در وضعیت مناسبی نگه داریم. در این فصل، یاد می‌گیرید که ابزارهای طراحی مبتنی بر دامنه را برای نگهداری و تکامل تصمیمات طراحی نرم‌افزار در طول زمان به کار ببرید.
  • فصل ۱۲ ایونت‌استورمینگ (EventStorming) را معرفی می‌کند: یک فعالیت عملی که فرآیند کشف دانش دامنه و ساخت یک زبان فراگیر را ساده‌تر می‌کند.
  • فصل ۱۳ بخش سوم را با مجموعه‌ای از نکات و ترفندها برای معرفی و ادغام «آرام» الگوها و شیوه‌های طراحی مبتنی بر دامنه در پروژه‌های موجود (brownfield projects)—انواع پروژه‌هایی که بیشتر روی آن‌ها کار می‌کنیم—به پایان می‌رساند.
book cover

ابتکارات طراحی

Heuristic • Bounded Contexts • Business Logic Implementation Patterns • Architectural Patterns • Testing Strategy • Testing Pyramid • Testing Diamond • Reversed Testing Pyramid • Tactical Design Decision Tree • Conclusion • Exercises

فصل 10

درحال تولید...

book cover

تکامل تصمیمات طراحی

Changes in Domains • Core to Generic • Generic to Core • Supporting to Generic • Supporting to Core • Core to Supporting • Generic to Supporting • Strategic Design Concerns • Tactical Design Concerns • Transaction Script to Active Record • Active Record to Domain Model • Domain Model to Event-Sourced Domain Model • Generating Past Transitions • Modeling Migration Events • Organizational Changes • Partnership to Customer–Supplier • Customer–Supplier to Separate Ways • Domain Knowledge • Growth • Subdomains • Bounded Contexts • Aggregates • Conclusion • Exercises

فصل 11

درحال تولید...

book cover

ایونت‌استورمینگ

What Is EventStorming? • Who Should Participate in EventStorming? • What Do You Need for EventStorming? • The EventStorming Process • Step 1: Unstructured Exploration • Step 2: Timelines • Step 3: Pain Points • Step 4: Pivotal Events • Step 5: Commands • Step 6: Policies • Step 7: Read Models • Step 8: External Systems • Step 9: Aggregates • Step 10: Bounded Contexts • Variants • When to Use EventStorming • Facilitation Tips • Watch the Dynamics • Remote EventStorming • Conclusion • Exercises

فصل 12

درحال تولید...

book cover

طراحی مبتنی بر دامنه در دنیای واقعی

Strategic Analysis • Understand the Business Domain • Explore the Current Design • Modernization Strategy • Strategic Modernization • Tactical Modernization • Cultivate a Ubiquitous Language • Pragmatic Domain-Driven Design • Selling Domain-Driven Design • Undercover Domain-Driven Design • Conclusion • Exercises

فصل 13

درحال تولید...

روابط با سایر متدولوژی‌ها و الگوها

تاکنون در این کتاب یاد گرفته‌اید که چگونه از طراحی مبتنی بر دامنه (Domain-Driven Design) برای طراحی راه‌حل‌های نرم‌افزاری مطابق با استراتژی کسب‌وکار و نیازهای یک سازمان استفاده کنید. دیدیم که چگونه ابزارها و شیوه‌های DDD را برای درک دامنه کسب‌وکار، طراحی مرزهای اجزای سیستم و پیاده‌سازی منطق کسب‌وکار به کار ببریم.

طراحی مبتنی بر دامنه بخش زیادی از چرخه عمر توسعه نرم‌افزار را پوشش می‌دهد، اما نمی‌تواند تمام مهندسی نرم‌افزار را در بر گیرد. سایر متدولوژی‌ها و ابزارها نقش‌های خود را دارند. در بخش چهارم، DDD را در رابطه با سایر متدولوژی‌ها و الگوها مورد بحث قرار می‌دهیم:

  • بر کسی پوشیده نیست که طراحی مبتنی بر دامنه بیشتر جذابیت خود را به دلیل محبوبیت سبک معماری مبتنی بر مایکروسرویس‌ها به دست آورده است. در فصل ۱۴، تعامل بین مایکروسرویس‌ها و طراحی مبتنی بر دامنه و نحوه تکمیل یکدیگر توسط این دو رویکرد را بررسی خواهیم کرد.
  • معماری رویدادمحور (Event-Driven Architecture) یک روش محبوب برای معماری سیستم‌های توزیع‌شده مقیاس‌پذیر، کارآمد و مقاوم است. در فصل ۱۵، اصول معماری رویدادمحور و نحوه استفاده از DDD برای طراحی ارتباطات ناهمزمان مؤثر را یاد خواهید گرفت.
  • فصل ۱۶ کتاب را با مدل‌سازی مؤثر در زمینه تحلیل داده‌ها به پایان می‌رساند. شما در مورد معماری‌های غالب مدیریت داده، انبارهای داده (Data Warehouses) و دریاچه‌های داده (Data Lakes)، و نحوه رفع کاستی‌های آن‌ها توسط معماری مش داده (Data Mesh Architecture) یاد خواهید گرفت. همچنین تحلیل و بحث خواهیم کرد که چگونه DDD و مش داده ...
book cover

مایکروسرویس‌ها

What Is a Service? • What Is a Microservice? • Method as a Service: Perfect Microservices? • Design Goal • System Complexity • Microservices as Deep Services • Microservices as Deep Modules • Domain-Driven Design and Microservices’ Boundaries • Bounded Contexts • Aggregates • Subdomains • Compressing Microservices’ Public Interfaces • Open-Host Service • Anticorruption Layer • Conclusion • Exercises

فصل 14

درحال تولید...

book cover

معماری رویدادمحور

Event-Driven Architecture • Events • Events, Commands, and Messages • Structure • Types of Events • Designing Event-Driven Integration • Distributed Big Ball of Mud • Temporal Coupling • Functional Coupling • Implementation Coupling • Refactoring the Event-Driven Integration • Event-Driven Design Heuristics • Conclusion • Exercises

فصل 15

درحال تولید...

book cover

مش داده

Analytical Data Model Versus Transactional Data Model • Fact Table • Dimension Table • Analytical Models • Analytical Data Management Platforms • Data Warehouse • Data Lake • Challenges of Data Warehouse and Data Lake Architectures • Data Mesh • Decompose Data Around Domains • Data as a Product • Enable Autonomy • Build an Ecosystem • Combining Data Mesh and Domain-Driven Design • Conclusion • Exercises

فصل 16

درحال تولید...

خانهدسته‌بندیکتابخانهکتاب‌منپروفایل
انتشار کتاب

16 فصل در حال تولید

آخرین بروزرسانی
۳۱ شهریور ۱۴۰۵
امتیاز
5.0
پیش نیاز
ندارد

مدت زمان خوانش

8:32

نوع کتاب

اشتراکی

شرکت کنندگان

0 نفر

تولید کتاب

۳۱ شهریور ۱۴۰۵

درباره ما

قوانین و سوالات

کتاب‌های نرم افزار خوندنش چه نسخه اصلی و چه ترجمه شده میتونه برامون چالش برانگیز و سخت باشه. یا شاید اصلا حوصله نکنی این همه وقت و انرژی بزاری برای کتاب ، ما هستیم تا تو بتونی کتاب های مطرح و مهم دنیای نرم افزار رو بیشتر از پیش و با انگیزه بیشتر و کیفیت بهتر مطاله کنی و یادش بگیری.
CardDev قدمی کوچک برای یک تیم و قدمی بزرگ برای جامعه بزرگ مهندسین نرم‌افزار و برنامه نویسان!

ارتباط با ما

ایمیل

info@aiflashcard.dev

شبکه های اجتماعی

CardDev
CardDev

نصب اپ CardDev

دسترسی سریع‌تر از هوم‌اسکرین

کلیه حقوق مادی و معنوی برای سایت CardDev محفوظ است.

Built pixel by pixel by Khadem

Khadem Al Mahdi

Built pixel by pixel by