آموزش طراحی سیستم برای توسعه‌دهندگان و معماران نرم‌افزار - آخرین آپدیت

دانلود System Design for Developers and Architects

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: در این دوره بر معماری مدرن نرم‌افزار، مقیاس‌پذیری، قابلیت اطمینان، کارایی، امنیت و تصمیمات طراحی در دنیای واقعی مسلط شوید. درک مفهوم طراحی سیستم و تفاوت آن با کدنویسی، معماری و زیرساخت شناسایی نیازمندی‌های کاربردی (Functional) و غیرکاربردی (Non-functional) پیش از طراحی سیستم تخمین تعداد کاربران، ترافیک، بار سیستم، درخواست در ثانیه، تأخیر (Latency)، نرخ انتقال (Throughput) و ظرفیت تحلیل گزینه‌های مقیاس‌پذیری، گلوگاه‌ها (Bottlenecks)، نقاط داغ (Hotspots)، محدودیت‌های عملکرد، هزینه و پیچیدگی طراحی مرزهای شفاف برای سرویس‌ها، APIها، کامپوننت‌ها و جریان‌های ارتباطی انتخاب بین الگوهای ارتباطی همزمان (Synchronous) و نامتقارن (Asynchronous) درک ذخیره‌سازی داده‌ها، کشینگ (Caching)، صف‌ها، پردازش‌های پس‌زمینه، ایندکس‌گذاری و بهینه‌سازی خواندن طراحی سیستم‌ها برای مواجهه با خطا، تلاش مجدد (Retries)، یکتایی (Idempotency)، در دسترس بودن، قابلیت اطمینان و تاب‌آوری درک سازگاری (Consistency)، تکثیر (Replication)، افزونگی (Redundancy)، جایگزینی در هنگام خرابی (Failover) و سبک‌سنگین کردن‌های سیستم‌های توزیع شده استفاده از مفاهیم مشاهده‌پذیری (Observability) مانند لاگ‌ها، متریک‌ها، تریس‌ها، مانیتورینگ و داشبوردها تحلیل مالکیت داده‌ها، پارتیشن‌بندی، امنیت، حریم خصوصی، انطباق با قوانین و تصمیمات معماری اجتناب از اشتباهات رایج در طراحی سیستم مانند مهندسی بیش از حد (Overengineering)، وابستگی‌های پنهان، مقیاس‌پذیری زودهنگام و عدم شفافیت در مالکیت پیش نیازها: درک ابتدایی از مفاهیم توسعه نرم‌افزار دانش پایه در مورد نحوه عملکرد اپلیکیشن‌های وب آشنایی با APIها، دیتابیس‌ها و سیستم‌های بک‌اِند مفید است اما الزامی نیست به تجربه پیشرفته در طراحی سیستم نیازی نیست زبان برنامه‌نویسی خاصی مورد نیاز نیست تمایل به تفکر درباره سبک‌سنگین کردن‌ها (Trade-offs)، محدودیت‌ها، مقیاس‌پذیری، قابلیت اطمینان و تصمیمات معماری واقعی

طراحی سیستم یکی از حیاتی‌ترین مهارت‌ها برای توسعه‌دهندگان مدرن، معماران، لیدهای فنی و مدیران مهندسی است.

وقتی نیاز به ساخت سیستم‌هایی دارید که باید کاربران واقعی، ترافیک واقعی، خطاهای واقعی، نیازمندی‌های متغیر، ریسک‌های امنیتی، محدودیت‌های هزینه و نگهداری طولانی‌مدت را مدیریت کنند، تنها کدنویسی کافی نیست.

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

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

در این دوره یاد خواهید گرفت که چگونه:

  • به طراحی سیستم به عنوان مجموعه‌ای از تصمیمات، محدودیت‌ها و سبک‌سنگین کردن‌ها نگاه کنید

  • پیش از انتخاب معماری، نیازمندی‌های کاربردی و غیرکاربردی را شناسایی کنید

  • تعداد کاربران، ترافیک، درخواست در ثانیه، بار، تأخیر، نرخ انتقال و ظرفیت را تخمین بزنید

  • مقیاس‌پذیری، گلوگاه‌ها، نقاط داغ و محدودیت‌های عملکرد را درک کنید

  • مرزهای شفاف سرویس بین کلاینت‌ها، سرورها، APIها و اجزای بک‌اِند طراحی کنید

  • بین الگوهای ارتباطی همزمان و نامتقارن انتخاب کنید

  • ذخیره‌سازی داده‌ها، کشینگ، صف‌ها، پردازش پس‌زمینه، ایندکس‌گذاری و بهینه‌سازی خواندن را درک کنید

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

  • درباره سازگاری، تکثیر، افزونگی، جایگزینی خرابی و رفتار سیستم‌های توزیع شده استدلال کنید

  • از مفاهیم مشاهده‌پذیری مانند لاگ‌ها، متریک‌ها، تریس‌ها، داشبوردها و مانیتورینگ استفاده کنید

  • درباره مالکیت داده‌ها، پارتیشن‌بندی، امنیت، حریم خصوصی، انطباق و تصمیمات معماری فکر کنید

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

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

شما یاد می‌گیرید چگونه مفاهیم فنی را به تصمیمات مهندسی واقعی متصل کنید.

به جای حفظ کردن الگوها، یاد می‌گیرید چگونه گزینه‌ها را بر اساس موارد زیر ارزیابی کنید:

  • نیازمندی‌های کسب‌وکار

  • محدودیت‌های فنی

  • مقیاس مورد انتظار

  • نیازهای عملکردی

  • اهداف قابلیت اطمینان

  • ریسک‌های امنیتی و حریم خصوصی

  • هزینه و پیچیدگی

  • توانمندی‌های تیم

  • قابلیت نگهداری در طولانی مدت

این دوره برای شما مناسب است اگر:

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

  • مهندس بک‌اِندی هستید که برای مصاحبه‌های طراحی سیستم آماده می‌شوید

  • لید فنی هستید که نیاز دارد تصمیمات طراحی بهتری بگیرد

  • معمار نرم‌افزاری هستید که به دنبال ساختاری شفاف و کاربردی برای توضیح سیستم‌هاست

  • مدیر مهندسی یا متخصص فنی با دید محصول هستید که می‌خواهد بداند تصمیمات معماری چگونه بر تحویل، ریسک و نتایج تجاری اثر می‌گذارد

  • متخصص QA، DevOps، امنیت یا پشتیبانی هستید که می‌خواهید بدانید طراحی سیستم چگونه بر قابلیت اطمینان، عملیات و رفتار محیط Production تأثیر می‌گذارد

در پایان این دوره، شما پایه‌ای قوی در طراحی کاربردی سیستم خواهید داشت.

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

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

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


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

مقدمه Introduction

  • نکاتی برای بهبود تجربه شما در گذراندن دوره Tips to Improve Your Course Taking Experience

ذهنیت و مبانی طراحی سیستم System Design Mindset and Foundations

  • طراحی سیستم واقعاً چیست What System Design Really Is

  • چه کسانی از طراحی سیستم استفاده می‌کنند و چرا برای نقش‌های مختلف اهمیت دارد Who Uses System Design and Why It Matters for Different Roles

  • نیازمندی‌های کاربردی و غیرکاربردی Functional and Non-Functional Requirements

  • محدودیت‌ها، فرض‌ها و سبک‌سنگین کردن‌ها Constraints, Assumptions and Trade-offs

  • یک چارچوب ساده برای طراحی هر سیستمی A Simple Framework for Designing Any System

طراحی سیستم: درک نیازمندی‌ها، بار و مقیاس System Design: Understanding Requirements, Load and Scale

  • تخمین کاربران، ترافیک و رشد Estimating Users, Traffic and Growth

  • مبانی تأخیر، نرخ انتقال و ظرفیت Latency, Throughput and Capacity Basics

  • مقیاس‌پذیری: عمودی، افقی و فراتر از آن Scalability: Vertical, Horizontal and Beyond

  • گلوگاه‌ها و نقاط داغ Bottlenecks and Hotspots

  • عملکرد در برابر هزینه و پیچیدگی Performance vs Cost vs Complexity

طراحی سیستم: بلوک‌های سازنده اصلی سیستم‌های مدرن System Design: Core Building Blocks of Modern Systems

  • کلاینت‌ها، سرورها و مرزهای سرویس Clients, Servers and Service Boundaries

  • APIها و الگوهای ارتباطی APIs and Communication Patterns

  • مبانی ذخیره‌سازی داده‌ها Data Storage Fundamentals

  • مبانی کشینگ (Caching) Caching Fundamentals

  • صف‌ها، بافرها و پردازش‌های پس‌زمینه Queues, Buffers and Background Processing

  • جستجو، ایندکس‌گذاری و بهینه‌سازی خواندن Search, Indexing and Read Optimization

طراحی سیستم: قابلیت اطمینان، سازگاری و مدیریت خطا System Design: Reliability, Consistency and Failure Handling

  • طراحی برای خطا از روز اول Designing for Failure from Day One

  • در دسترس بودن، قابلیت اطمینان و تاب‌آوری Availability, Reliability and Resilience

  • تکثیر، افزونگی و جایگزینی در خرابی Replication, Redundancy and Failover

  • سازگاری در برابر در دسترس بودن Consistency vs Availability

  • یکتایی، تلاش مجدد و درخواست‌های تکراری Idempotency, Retries and Duplicate Requests

  • مبانی مشاهده‌پذیری: لاگ‌ها، متریک‌ها و تریس‌ها Observability Basics: Logs, Metrics and Traces

طراحی سیستم: داده‌ها، امنیت و تصمیمات معماری System Design: Data, Security and Architecture Decisions

  • مدل‌سازی داده‌ها و مالکیت داده Data Modeling and Data Ownership

  • مفاهیم پارتیشن‌بندی و توزیع داده‌ها Data Partitioning and Distribution Concepts

  • مبانی امنیت در طراحی سیستم Security Fundamentals in System Design

  • حریم خصوصی، انطباق و تفکر درباره داده‌های حساس Privacy, Compliance and Sensitive Data Thinking

  • سوابق تصمیمات معماری (ADR) و نحوه ارتباط تصمیمات Architecture Decision Records and Decision Communication

  • اشتباهات رایج طراحی و نشانه‌های بدبویی معماری Common Design Mistakes and Architecture Smells

نمایش نظرات

آموزش طراحی سیستم برای توسعه‌دهندگان و معماران نرم‌افزار
جزییات دوره
9.5 hours
29
(آخرین آپدیت)
322
5 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Andrii Piatakha Andrii Piatakha

بنیانگذار و مدیر عامل شرکت IT-Bulls ، بنیانگذار بستر Learn-IT بنیانگذار و مدیر عامل شرکت IT-Bulls. خالق برنامه موبایل Learn-IT برای افرادی که می خواهند آماده مصاحبه و یادگیری جاوا شوند. مدرس با 4+ سال تجربه. مربی کلیدی جاوا در شرکت های برون سپاری. Andrii کمک می کند تا مهندسان نرم افزار جاوا را از صفر تا تعیین تکلیف اول به آنها آموزش دهد. دوره جاوا وی برای آموزش افرادی با دانش برنامه نویسی صفر استفاده می شود تا آنها را برای کار واقعی در شرکت های مختلف آماده کند. هنگامی که دوره های Andrii را می گذرانید می توانید مطمئن باشید که چیزهای درست را در کمترین زمان ممکن به روش صحیح فرا خواهید گرفت. تمام دوره های Andrii توسط داستان و موفقیت دانشجویان ثابت می شود. در گذشته همه مدرسان برنامه نویس حرفه ای نبودند. تجربه مهندسی زیاد به آندری اجازه داد تا شرکت IT خود را اداره کند. در طول تدریس ، آندری توجه دانش آموزان را فقط به مهمترین موارد متمرکز می کند.