آموزش طراحی دامنه محور و خدمات میکرو برای معماران

Domain Driven Design & Microservices for Architects

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: آموزش ساخت برنامه های Microservices با شروع تجزیه و تحلیل تجاری و طراحی دامنه محور Domain Driven Design Architecting Microservices Application Design Application Patterns for building Microservices & Distributed Architecture Event Driven Architecture Developing API for Microservices Event Storming توسعه یک مورد تجاری برای Microservices توسعه نرم افزار Microservices پیشها: دانش پایه جاوا یا هر زبان برنامه نویسی دیگری را تمرین می کند

PS: تمرکز بر طراحی میکروسرویس‌ها است نه کدنویسی

  • چارچوب Microservices خاصی در حال استفاده نیست

  • همه کدهای نمونه در JAVA ساده برای نشان دادن/روشن کردن درک الگوهای DDD و غیره هستند.

  • مدل‌ها در UML توسعه داده می‌شوند - با استفاده از ابزار PlantUML

  • PostgreSQL/MongDB/RabbitMQ/Kafka - نمونه‌های رایگان ایجاد شده در فضای ابری برای بررسی‌های نمایشی

اگر به دنبال آموزش کدگذاری میکروسرویس یا فریمورک خاصی هستید، لطفاً به دوره نپیوندید!

این دوره در مورد چیست؟

Microservices روش جدیدی برای ساختن نرم افزار است که در آن یک برنامه کاربردی از مجموعه ای مستقل از خدمات تشکیل شده است. بزرگترین مزیت Microservices این است که سازمان را قادر می سازد تا با سرعتی بسیار سریع متحول شود. این سرعت به بازار به دلیل ماهیت مستقل خدماتی است که یک برنامه Microservices را تشکیل می دهد. شرکت هایی مانند آمازون، نتفلیکس و Etsy ارزش Microservices را بدون شک ثابت کرده اند.

بسیاری از سازمان‌ها امروزه به دنبال پذیرش Microservices هستند. این سازمان‌ها در حال سرمایه‌گذاری بر روی فناوری‌ها، ابزارها، مهارت‌ها هستند و فرآیندهای توسعه و تحویل نرم‌افزار خود را نیز تغییر می‌دهند. اما هنوز هم بسیاری از سازمان ها در دستیابی به مزایای کامل میکروسرویس ها شکست می خورند. در واقع بسیاری از سازمان‌ها احساس می‌کنند که با استفاده از Microservices، بدهی فنی ایجاد کرده‌اند.

پس چرا برخی از سازمان ها در پذیرش میکروسرویس ها موفق بوده اند در حالی که برخی دیگر موفق نیستند. یکی از جنبه‌های مشترکی که در شرکت‌هایی که در پذیرش میکروسرویس‌ها شکست خورده‌اند مشاهده کرده‌ام این است که آنها با میکروسرویس‌ها به‌عنوان یک ابتکار صرفاً فناوری برخورد می‌کنند. آنها برای درک جنبه های تجاری برنامه های Microservices خود وقت صرف نمی کنند !!!


Microservices فقط مربوط به فناوری نیست

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

برای اطمینان از عدم وابستگی متقابل بین Microservices، یک معمار Microservices باید دامنه را درک کند و سپس در مورد مرز و محدوده Microservice تصمیم بگیرد. اینجاست که Domain Driven Design ظاهر می شود. هنگامی که مرزهای تجاری Microservices تعریف شد، خدمات باید با استفاده از الگوها و فناوری های طراحی Microservices مناسب ساخته شوند.

تیم‌هایی که روی Microservices کار می‌کنند نباید فقط به جنبه‌های فنی سرویس نگاه کنند، بلکه باید در نظر داشته باشند که ملاحظات دیگری وجود دارند که نقش مهمی در موفقیت ابتکار Microservices دارند. به منظور


نقش یک معمار Microservices

یک متخصص فناوری اطلاعات که در نقش معمار Microservices کار می کند، بسته به بلوغ پذیرش Microservices در سازمان خود، مسئول جنبه های ممکن است. در اینجا لیستی از فعالیت هایی است که معماران مسئول آن هستند:

  • مزایای تجاری Microservices را برای سازمان خاص خود ارزیابی کنید

  • یک مورد تجاری برای Microservices بسازید

  • آموزش ذینفعان فناوری اطلاعات کسب و کار در مورد جوانب مثبت و منفی Microservices

  • برای تعیین مرزهای Microservices از طراحی دامنه محور استفاده کنید

  • مدل دامنه را برای Microservices تعریف کنید

  • طراحی فنی Microservices را انجام دهید

  • تیم های Microservices را راهنمایی و راهنمایی کنید

  • ارزیابی فناوری ها | چارچوب هایی برای تحقق Microservices

  • مفاهیم را اثبات کنید تا نشان دهید کارها چگونه کار می کنند

این دوره چگونه کمک خواهد کرد؟

این دوره به معماران توسعه‌دهنده در ایجاد مهارت‌های مورد نیاز برای اجرای موفق برنامه‌های Microservices کمک می‌کند. این شامل ترکیبی از مفاهیم، ​​مدل سازی UML و کد کاری برای نشان دادن اجرای Microservices است. دانش‌آموزان مفاهیم طراحی مبتنی بر دامنه را از طریق نمونه‌های رایج صنعت و مطالعه موردی (سفرهای ACME) یاد خواهند گرفت.


تمرکز بر معماری، طراحی و توسعه میکروسرویس ها است.


1. Microservices Transformation

2. طراحی دامنه محور

3. بکارگیری الگوی تاکتیکی استراتژیک DDD

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

5. رویداد طوفان

6. مدیریت داده

7. پیام رسانی

8. تراکنش های توزیع شده

9. API


مهم:

نمونه کد

تمرکز روی طراحی Microservices است نه کدنویسی.

  • همه کدهای نمونه در JAVA ساده هستند

  • دوره هیچ چارچوب خاصی را پوشش نمی دهد

  • SpringBoot در نمونه‌های بخش API/GraphQL

    استفاده می‌شود

لطفاً قبل از ثبت نام دوره، سخنرانی های پیش نمایش دوره را بررسی کنید.

  • موضوعات تحت پوشش را مرور کنید

  • مطمئن شوید که لهجه مربی را متوجه شده اید


پیش نیازها

  • درک اولیه JAVA یا هر زبان برنامه نویسی دیگری

  • تجربه‌ای با شیوه‌های توسعه نرم‌افزار

PS:

دست روی بخشی اختیاری است، اما دانش‌آموزان تشویق می‌شوند تا برای درک بهتر الگوهای طراحی، کارهای خود را انجام دهند.


سرفصل ها و درس ها

دوره Ouline Course Ouline

  • معرفی نویسنده و طرح کلی دوره Author introductions and Course outline

  • ابزارهای توسعه و راه اندازی Development tools and setup

معماری میکروسرویس ها Microservices Architecture

  • معماری میکروسرویس ها Microservices Architecture

  • تجارت و تحول دیجیتال Business & Digital Transformation

  • دیدگاه تجاری میکروسرویس ها A Business Perspective of Microservices

  • دیدگاه فنی میکروسرویس ها A Technical Perspective of Microservices

  • پذیرش معماری میکروسرویس ها Adoption of Microservices Architecture

مقدمه ای بر طراحی دامنه محور Introduction to Domain Driven Design

  • کارشناسان حوزه، زیر دامنه و دامنه Domain, Sub-Domain and Domain Experts

  • مدل های مفهومی، معماری و طراحی Conceptual models, Architecture and Design

  • تکنیک های مدل سازی و سبک های معماری Modeling techniques & Architectural Styles

  • مدل های دامنه Domain Models

  • تکنیک های مدل سازی و سبک های معماری Modeling techniques & Architectural Styles

  • تکنیک های مدل سازی و سبک های معماری Modeling techniques & Architectural Styles

شناخت دامنه کسب و کار Understanding the Business Domain

  • چرا کسب و کار را درک کنیم؟ Why understand the Business?

  • مقدمه ای بر بوم مدل کسب و کار Introduction to Business Model Canvas

  • تمرین: بوم مدل تجاری سفرهای ACME Exercise : ACME Travels Business Model Canvas

طراحی دامنه محور: الگوهای استراتژیک Domain Driven Design : Strategic Patterns

  • مقدمه ای بر DDD و الگوها Introduction to DDD and Patterns

  • انواع زیر دامنه های تجاری Business Subdomain Types

  • تمرین: تخصیص نوع زیر دامنه ACME Exercise : ACME Subdomain Type Assignment

  • درک زمینه کسب و کار Understanding the Business Context

  • زبان دامنه تجاری Business Domain Language

  • الگوی استراتژیک: زبان همه جا حاضر Strategic Pattern : Ubiquitous Language

  • تمرین: زبان فراگیر ACME را تعریف کنید Exercise : Define ACME's Ubiquitous Language

  • الگوی استراتژیک: زمینه محدود Strategic Pattern : Bounded Context

  • کشف زمینه های محدود در یک دامنه Discovering the Bounded Contexts in a Domain

  • تمرین: زمینه های محدود ACME را شناسایی کنید Exercise : Identify ACME's Bounded Contexts

روابط بافت محدود Bounded Context Relationships

  • مقدمه ای بر الگوهای ادغام DDD Intro to DDD Integration Patterns

  • مدیریت روابط BC با استفاده از نقشه های زمینه Managing BC Relationships using Context Maps

  • الگوهای رابطه متقارن Symmetric Relationship Patterns

  • الگوهای روابط نامتقارن Asymmetric Relationship Patterns

  • یک تا چند الگوی رابطه One to Many Relationship Patterns

  • تمرین: نگاشت زمینه برای یک بانک Exercise : Context Mapping for a Bank

طراحی دامنه محور - الگوهای تاکتیکی Domain Driven Design - Tactical Patterns

  • مقدمه ای بر الگوهای تاکتیکی DDD Intro to DDD Tactical Patterns

  • شی موجودیت - الگو Entity Object - Pattern

  • شئ ارزش - الگو Value Object - Pattern

  • تمرین: نهاد و VO را در مدل فروش ACME شناسایی کنید Exercise : Identify Entity & VO in ACME Sales Model

  • دست در دست: ایجاد نهادهای فروش ACME و VO در JAVA Hands On : Building the ACME Sales Entities & VO in JAVA

  • مصالح و کارخانه - الگو Aggregate & Factory - Pattern

  • تمرین: ACME Sales Use Case Exercise : ACME Sales Use Case

  • Hands On: UML برای ACME Sales Aggregates Hands On : UML for ACME Sales Aggregates

  • رفتار مدل: مدل های کم خون و غنی Model Behavior : Anemic & Rich Models

  • شی مخزن - الگو Repository Object - Pattern

  • Hands On: مخزن مدل ACME در UML و JAVA Hands On : ACME model Repository in UML & JAVA

  • سرویس دامنه - الگو Domain Service - Pattern

  • خدمات کاربردی - الگو Application Services - Pattern

  • خدمات زیرساخت - الگو Infrastructure Services - Pattern

  • در دسترس: خدمات دامنه ACME، UML و JAVA Hands On : ACME Domain Service, UML & JAVA

  • دست در دست: خدمات کاربردی و زیرساخت، UML و JAVA Hands On : Application and Infrastructure Services, UML & JAVA

رویدادهای مبتنی بر معماری و رویدادهای دامنه Events Driven Architecture & Domain Events

  • معرفی رویدادها در میکروسرویس ها Intro to Events in Microservices

  • الگوهای ارتباطی یکپارچه و توزیع شده Monolithic & Distributed Communication Patterns

  • الگوهای تعامل میکروسرویس ها Microservices Interaction Patterns

  • معماری رویداد محور Event Driven Architecture

  • Hands On: Pub Sub با AMQP/RabbitMQ Hands On : Pub Sub with AMQP/RabbitMQ

  • رویدادهای دامنه - الگو Domain Events - Pattern

  • Hands On: الگوی کارگزار کلاس ایستا Hands On : Static Class Broker Pattern

  • تمرین: رویدادهای دامنه فروش ACME Exercise : ACME Sales Domain Events

  • Hands On: تحقق رویدادهای دامنه ACME Hands On : Realization of ACME Domain Events

  • رویدادهای ادغام - الگو Integration Events - Pattern

  • تمرین: رویدادهای ادغام فروش ACME Exercise : ACME Sales Integration Events

  • Hands On: تحقق رویدادهای ادغام ACME (1 از 2) Hands On : Realization of ACME Integration Events (1 of 2)

  • Hands On: تحقق رویدادهای ادغام ACME (2 از 2) Hands On : Realization of ACME Integration Events (2 of 2)

رویداد طوفان برای ایجاد دانش مشترک Event Storming for creating shared knowledge

  • اهداف آموزشی: کشف رویدادها در یک دامنه Learning Objectives : Discovering the Events in a Domain

  • مقدمه ای بر رویداد طوفان Introduction to Event Storming

  • عناصر طوفان رویداد Elements of Event Storming

  • آماده شدن برای کارگاه ES Preparing for the ES Workshop

  • برگزاری کارگاه ES Conducting the ES Workshop

  • تمرین: ACME Sales ES Workshop Exercise : ACME Sales ES Workshop

الگوهای مدیریت داده های میکروسرویس ها Microservices Data Management Patterns

  • مقدمه ای بر پایداری داده های میکروسرویس ها Introduction to Microservices Data Persistence

  • برنامه های یکپارچه - ذخیره سازی پایدار مشترک Monolithic Apps - Shared Persistence Storage

  • معماری سرویس گرا (SOA) Service Oriented Architecture (SOA)

  • الگوی پایگاه داده جدا Separate Database pattern

  • Brownfield Microservices: الگوهای پایگاه داده | گزینه ها Brownfield Microservices : Database patterns | options

  • الگوی پایگاه داده مشترک Shared Database Pattern

  • پایگاه داده مشترک: چالش ها و راه حل ها Shared Database : Challenges & Solutions

Microservices DB Performance Management Microservices DB Performance Management

  • نیاز به الگوهای داده بیشتر Need for more Data Patterns

  • جداسازی پرس و جوی دستورات (CQS) Commands Query Separation (CQS)

  • Hands On: پایگاه داده PostgreSQL برای باطن Hands On : PostgreSQL Database for backend

  • تحقق دستورات و پرس و جوها Realization of Commands & Queries

  • دست در دست: الگوی CQS را بسازید Hands On : Build the CQS Pattern

  • تفکیک مسئولیت پرس و جو فرمان (CQRS) Command Query Responsibility Segregation (CQRS)

  • تکرار داده ها بین دو طرف WRITE-READ Data Replication between WRITE-READ sides

  • تمرین: ACME CQRS برای پیشنهاد Exercise : ACME CQRS for Proposal

  • Hands On: اجرای دستور ACME CQRS Hands On : ACME CQRS command implementation

  • ملاحظات مربوط به منبع رویداد و فروشگاه رویداد Event Sourcing and Event Store considerations

  • Hands On: MongoDB for ACME Sales READ Hands On : MongoDB for ACME Sales READ side

  • Hands On: مشترک پیشنهادی CQRS-v1 Hands On : CQRS-v1 Proposal Subscriber

  • Hands On: CQRS-v2 Read side Query Hands On : CQRS-v2 Read side Query

Microservices مدیریت یکپارچگی داده ها Microservices Managing the Data Integrity

  • مقدمه ای بر پیام رسانی قابل اعتماد Introduction to Reliable Messaging

  • طراحی برای شکست Designing for Failure

  • تمرین: آدرس ACME CQRS را بنویسید Exercise : Address ACME CQRS Write side failures

  • تمرین: آدرس ACME CQRS خواندن خطاهای جانبی Exercise : Address ACME CQRS Read side failures

  • Hands On: مدیریت پیام های تکراری Hands On : Handling Duplicate Messages

میکروسرویس ها و کافکا Microservices and Kafka

  • استفاده از کافکا در میکروسرویس ها Use of Kafka in Microservices

  • بررسی اجمالی کافکا Kafka Overview

  • مفاهیم کافکا Kafka Concepts

  • Hands On: یک خوشه کافکا ایجاد کنید Hands On : Create a Kafka Cluster

  • Hands On: کار با تهیه کننده کافکا Hands On : Working with Kafka Producer

  • Hands On: کار با گروه های مصرف کننده کافکا Hands On : Working with Kafka Consumer Groups

  • کافکا در مقابل AMQP (RabbitMQ) Kafka vs AMQP (RabbitMQ)

  • تمرین: پیام رسانی برای میکروسرویس ها Exercise : Messaging for Microservices

مدیریت تراکنش های توزیع شده با SAGA Managing Distributed Transactions with SAGA

  • تراکنش های توزیع شده با SAGA Distributed Transactions with SAGA

  • الگوی SAGA برای تراکنش های توزیع شده SAGA Pattern for distributed transactions

  • رقص SAGA در مقابل. تنظیم و ارکستراسیون SAGA Choreography Vs. Orchestration

  • ملاحظات پیاده سازی SAGA SAGA Implementation Considerations

  • تمرین: ACME Sales رزرو معامله SAGA Exercise : ACME Sales Booking Transaction SAGA

  • دست در دست: UML و کد راهنمای Booking SAGA Hands On : UML & Code walkthrough of Booking SAGA

میکروسرویس ها و API Microservices and API

  • Microservices-API Realization Microservices-API Realization

  • مقدمه ای بر REST API Introduction to REST API

  • REST API منابع و محدودیت‌های طراحی REST API Resources & Design constraints

  • مدیریت API API Management

  • تمرین: ACME REST API برای محصولات Exercise : ACME REST API for Products

  • Hands On: ACME REST API در عمل Hands On : ACME REST API in action

  • مقدمه ای بر GraphQL Introduction to GraphQL

  • تعریف طرحواره GraphQL GraphQL Schema Definition

  • تمرین: ACME GraphQL API برای محصولات Exercise : ACME GraphQL API for Products

  • Hands On: ACME GraphQL API در عمل Hands On : ACME GraphQL API in action

نمایش نظرات

آموزش طراحی دامنه محور و خدمات میکرو برای معماران
جزییات دوره
12.5 hours
115
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
12,664
- از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Rajeev Sakhuja Rajeev Sakhuja

11xAWS دارای گواهی، مشاور، مربی، مبشر نوآوری