آموزش طراحی سیستم عملی

Pragmatic System Design

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: از آماده‌سازی برای مصاحبه‌های طراحی سیستم تا معماری سیستم‌های دنیای واقعی نحوه حل محبوب‌ترین سوالات مصاحبه FANG مهمترین مفاهیم مقیاس‌پذیری پروتکل‌های ارتباطی رایج Caching و Redis Concurrency طراحی پایگاه داده و استراتژی‌های Sharding PostgreSQL.

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

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

هدف دوم این دوره ارائه دیدگاهی جایگزین برای طراحی سیستم به مهندسان ارشد است. چیزی که من در صنعت می بینم این است که ما زیاد بین خودمان درباره طراحی بحث نمی کنیم. این موضوع به یک موضوع حساس تبدیل می شود، زیرا هیچ طراحی دنیای واقعی کامل نیست. و این چیزی است که امیدوارم تغییر کنم.

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

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

هدف از مصاحبه طراحی سیستم معمولاً پوشش چندین موضوع است. ابتدا نفس دانش را ارزیابی می کند، سپس عمق دانش را ارزیابی می کند. به همین دلیل، سعی کردم بخش تئوری هر موضوع را نسبتاً مختصر نگه دارم. یعنی - به همان اندازه عمیق است که من به عنوان یک مصاحبه کننده از نامزدهایم انتظار دارم.

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


اگر سوالات بیشتری در مصاحبه طراحی سیستم وجود دارد که می‌خواهید حل کنم یا موضوعات دیگری که می‌خواهید پوشش دهم، به من اطلاع دهید!


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

معرفی Introduction

  • مقدمه ای بر طراحی سیستم عملی Introduction to Pragmatic System Design

  • بلوک های ساختمان نمودار Diagram building blocks

  • جریان نمودار Diagram flow

  • تخمین زدن Making Estimates

  • تخمین زدن Making Estimates

معرفی Introduction

  • مقدمه ای بر طراحی سیستم عملی Introduction to Pragmatic System Design

  • بلوک های ساختمان نمودار Diagram building blocks

  • جریان نمودار Diagram flow

شبکه های Networks

  • تعادل بار Load Balancing

  • CDN CDN

  • CDN CDN

شبکه های Networks

  • تعادل بار Load Balancing

ذخیره سازی Caching

  • معرفی Introduction

  • استراتژی های ذخیره سازی Caching Strategies

  • سیاست های اخراج Eviction Policies

  • سیاست های اخراج Eviction Policies

  • ردیس Redis

  • ردیس Redis

  • ذخیره سازی Caching

ذخیره سازی Caching

  • معرفی Introduction

  • استراتژی های ذخیره سازی Caching Strategies

صف ها Queues

  • معرفی Introduction

  • پیام رسانی Messaging

  • پیام رسانی Messaging

  • RabbitMQ RabbitMQ

  • RabbitMQ RabbitMQ

  • کافکا Kafka

  • کافکا Kafka

  • صف ها Queues

صف ها Queues

  • معرفی Introduction

  • صف ها Queues

پروتکل ها Protocols

  • TCP TCP

  • UDP UDP

  • خلاصه: TCP در مقابل UDP Summary: TCP vs UDP

  • HTTP HTTP

  • HTTP HTTP

  • HTTP - روش ها HTTP - Methods

  • HTTP - کدهای وضعیت HTTP - Status Codes

  • باقی مانده REST

  • آرامش RESTfulness

  • آرامش RESTfulness

  • وب سوکت ها WebSockets

  • نظرسنجی طولانی Long Polling

  • نظرسنجی طولانی Long Polling

  • gRPC gRPC

  • GraphQL GraphQL

  • خلاصه Summary

  • پروتکل ها Protocols

  • پروتکل ها Protocols

پروتکل ها Protocols

  • TCP TCP

  • UDP UDP

  • خلاصه: TCP در مقابل UDP Summary: TCP vs UDP

  • HTTP - روش ها HTTP - Methods

  • HTTP - کدهای وضعیت HTTP - Status Codes

  • باقی مانده REST

  • وب سوکت ها WebSockets

  • gRPC gRPC

  • GraphQL GraphQL

  • خلاصه Summary

همزمانی Concurrency

  • همزمانی در مقابل موازی گرایی Concurrency vs Parallelism

  • فرآیندها Processes

  • همزمانی Concurrency

  • موضوعات Threads

  • موضوعات Threads

  • استخرهای موضوع Thread Pools

  • همزمانی Concurrency

همزمانی Concurrency

  • همزمانی در مقابل موازی گرایی Concurrency vs Parallelism

  • فرآیندها Processes

  • استخرهای موضوع Thread Pools

پایگاه های داده Databases

  • شاخص ها Indexes

  • شاردینگ Sharding

  • هش کردن مداوم Consistent Hashing

  • هش کردن مداوم Consistent Hashing

  • پارتیشن بندی Partitioning

  • پارتیشن بندی Partitioning

  • قضیه CAP CAP Theorem

  • معاملات اسید ACID transactions

  • پایگاه های داده Databases

  • پایگاه های داده Databases

پایگاه های داده Databases

  • شاخص ها Indexes

  • شاردینگ Sharding

  • قضیه CAP CAP Theorem

  • معاملات اسید ACID transactions

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

  • جلسات وب Web Sessions

  • جلسات وب Web Sessions

  • سریال سازی Serialization

  • CQRS CQRS

  • CQRS CQRS

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

  • سریال سازی Serialization

طراحی اپلیکیشن تاکسی Hailing (معروف به Uber) Design a Taxi Hailing App (aka Uber)

  • معرفی مشکل - طراحی اپلیکیشن تاکسی Hailing Problem Introduction - Design a Taxi Hailing App

  • مکان های راننده Driver Locations

  • مکان های راننده Driver Locations

  • مکان های ذخیره سازی Storing Locations

  • تاکسی در اطراف شما Taxis Around You

  • تطابق Matching

  • خلاصه - یک اپلیکیشن تاکسی Hailing طراحی کنید Summary - Design a Taxi Hailing App

  • خلاصه - یک اپلیکیشن تاکسی Hailing طراحی کنید Summary - Design a Taxi Hailing App

طراحی اپلیکیشن تاکسی Hailing (معروف به Uber) Design a Taxi Hailing App (aka Uber)

  • معرفی مشکل - طراحی اپلیکیشن تاکسی Hailing Problem Introduction - Design a Taxi Hailing App

  • مکان های ذخیره سازی Storing Locations

  • تاکسی در اطراف شما Taxis Around You

  • تطابق Matching

طراحی یک چت (معروف به WhatsApp) Design a Chat (aka WhatsApp)

  • مقدمه مشکل - طراحی یک چت Problem Introduction - Design a Chat

  • مقدمه مشکل - طراحی یک چت Problem Introduction - Design a Chat

  • طراحی پایه - چت Basic Design - Chat

  • مقیاس بندی می خواند Scaling Reads

  • مقیاس بندی می خواند Scaling Reads

  • مقیاس بندی می خواند Scaling Reads

  • اشتراک گذاری پیام های چت Sharding Chat Messages

  • اشتراک گذاری پیام های چت Sharding Chat Messages

  • مقیاس بندی چت با استفاده از صف Scaling chat using queues

  • خلاصه - یک چت طراحی کنید Summary - Design a Chat

طراحی یک چت (معروف به WhatsApp) Design a Chat (aka WhatsApp)

  • طراحی پایه - چت Basic Design - Chat

  • مقیاس بندی می خواند Scaling Reads

  • مقیاس بندی چت با استفاده از صف Scaling chat using queues

  • خلاصه - یک چت طراحی کنید Summary - Design a Chat

طراحی یک خزنده وب (معروف به Google Crawler) Design a Web Crawler (aka Google Crawler)

  • مقدمه مشکل - طراحی یک خزنده وب Problem Introduction - Design a Web Crawler

  • طراحی پایه - خزنده وب Basic Design - Web Crawler

  • واکشی محتوا Fetching Content

  • واکشی محتوا Fetching Content

  • URL "جدید" چیست؟ What's a "new" URL?

  • منحصر به فرد بودن Uniqueness

  • منحصر به فرد بودن Uniqueness

  • اولویت های Priorities

  • خلاصه - طراحی یک خزنده وب Summary - Design a Web Crawler

طراحی یک خزنده وب (معروف به Google Crawler) Design a Web Crawler (aka Google Crawler)

  • مقدمه مشکل - طراحی یک خزنده وب Problem Introduction - Design a Web Crawler

  • طراحی پایه - خزنده وب Basic Design - Web Crawler

  • URL "جدید" چیست؟ What's a "new" URL?

  • اولویت های Priorities

  • خلاصه - طراحی یک خزنده وب Summary - Design a Web Crawler

طراحی یک حراج (با نام مستعار eBay) Design an Auction (aka eBay)

  • مقدمه مشکل - یک حراج طراحی کنید Problem Introduction - Design an Auction

  • طراحی پایه برای حراج Basic Design for an Auction

  • قفل خوش بینانه پیشنهادات Optimistic Locking of Bids

  • سریال سازی پیشنهادات Serialisation of Bids

  • سریال سازی پیشنهادات Serialisation of Bids

  • رویکرد رویداد محور برای مناقصه Event-Driven Approach for Bids

  • رویکرد رویداد محور برای مناقصه Event-Driven Approach for Bids

  • مقیاس گذاری یک حراج Scaling an Auction

  • خلاصه - یک حراج طراحی کنید Summary - Design an Auction

طراحی یک حراج (با نام مستعار eBay) Design an Auction (aka eBay)

  • مقدمه مشکل - یک حراج طراحی کنید Problem Introduction - Design an Auction

  • طراحی پایه برای حراج Basic Design for an Auction

  • قفل خوش بینانه پیشنهادات Optimistic Locking of Bids

  • مقیاس گذاری یک حراج Scaling an Auction

  • خلاصه - یک حراج طراحی کنید Summary - Design an Auction

طراحی کوتاه کننده URL (معروف به TinyURL) Design a URL Shortener (aka TinyURL)

  • مقدمه مشکل - یک کوتاه کننده URL طراحی کنید Problem Introduction - Design a URL Shortener

  • طراحی اولیه برای کوتاه کننده URL Basic Design for a URL Shortener

  • شناسه های کوتاه Short Identifiers

  • شناسه های کوتاه Short Identifiers

  • مقیاس بندی می خواند Scaling Reads

  • اضافی: DynamoDB Extra: DynamoDB

  • ذخیره سازی Caching

  • ذخیره سازی Caching

  • خلاصه - یک URL Shortener طراحی کنید Summary - Design a URL Shortener

  • خلاصه - یک URL Shortener طراحی کنید Summary - Design a URL Shortener

طراحی کوتاه کننده URL (معروف به TinyURL) Design a URL Shortener (aka TinyURL)

  • مقدمه مشکل - یک کوتاه کننده URL طراحی کنید Problem Introduction - Design a URL Shortener

  • طراحی اولیه برای کوتاه کننده URL Basic Design for a URL Shortener

  • مقیاس بندی می خواند Scaling Reads

  • اضافی: DynamoDB Extra: DynamoDB

  • ذخیره سازی Caching

طراحی یک سیستم کوپن (با نام مستعار Groupon) Design a Coupon System (aka Groupon)

  • مقدمه مشکل Problem Introduction

  • طراحی پایه Basic Design

  • طراحی پایه Basic Design

  • همزمانی Concurrency

  • مقیاس پذیری Scalability

  • مقیاس پذیری Scalability

  • خلاصه Summary

  • اضافی: مقیاس گذاری با استفاده از صف Extra: Scaling Using Queues

طراحی یک سیستم کوپن (با نام مستعار Groupon) Design a Coupon System (aka Groupon)

  • مقدمه مشکل Problem Introduction

  • همزمانی Concurrency

  • خلاصه Summary

  • اضافی: مقیاس گذاری با استفاده از صف Extra: Scaling Using Queues

طراحی یک فید خبری (معروف به توییتر) Design a News Feed (aka Twitter)

  • معرفی مشکل - فید خبری Problem Introduction - News Feed

  • معرفی مشکل - فید خبری Problem Introduction - News Feed

  • طراحی پایه - فید خبری Basic Design - News Feed

  • محاسبات ذخیره سازی - فید خبری Storage Calculations - News Feed

  • مقیاس بندی می خواند Scaling reads

  • ذخیره سازی طولانی مدت و ذخیره سازی کوتاه مدت Long Term Storage and Short Term Storage

  • بهینه سازی خوراک Feed Optimisation

  • افراد VIP VIPs

  • افراد VIP VIPs

  • خلاصه - فید خبری Summary - News Feed

  • خلاصه - فید خبری Summary - News Feed

طراحی یک فید خبری (معروف به توییتر) Design a News Feed (aka Twitter)

  • طراحی پایه - فید خبری Basic Design - News Feed

  • محاسبات ذخیره سازی - فید خبری Storage Calculations - News Feed

  • مقیاس بندی می خواند Scaling reads

  • ذخیره سازی طولانی مدت و ذخیره سازی کوتاه مدت Long Term Storage and Short Term Storage

  • بهینه سازی خوراک Feed Optimisation

طراحی سیستم فروش بلیط Design a Ticketing System

  • معرفی مشکل - سیستم فروش بلیط Problem Introduction - Ticketing System

  • معرفی مشکل - سیستم فروش بلیط Problem Introduction - Ticketing System

  • طراحی پایه - سیستم فروش بلیط Basic Design - Ticketing System

  • بررسی تعداد بلیط ها Checking Tickets Count

  • بررسی تعداد بلیط ها Checking Tickets Count

  • رسیدگی به پرداخت ها Handling payments

  • رسیدگی به پرداخت ها Handling payments

  • سیستم فروش بلیت مقیاس بندی Scaling ticketing system

  • حل تعارض Conflict resolution

  • خلاصه - سیستم فروش بلیط Summary - Ticketing System

  • خلاصه - سیستم فروش بلیط Summary - Ticketing System

طراحی سیستم فروش بلیط Design a Ticketing System

  • طراحی پایه - سیستم فروش بلیط Basic Design - Ticketing System

  • سیستم فروش بلیت مقیاس بندی Scaling ticketing system

  • حل تعارض Conflict resolution

سخنان پایانی Final words

  • سخنان پایانی Final words

  • سخنان پایانی Final words

سخنان پایانی Final words

نمایش نظرات

آموزش طراحی سیستم عملی
جزییات دوره
5 hours
95
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
20,755
4.6 از 5
دارد
دارد
دارد
Alexey Soshin
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Alexey Soshin Alexey Soshin

معمار راه حل ها و نویسنده

الکسی سوشین یک معمار راه حل در Depop و نویسنده است.

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