درباره این دوره
طراحی سیستم (System Design) در واقع هنر پاسخ دادن به یک سوال کلیدی است:
چگونه یک اپلیکیشن میتواند زمانی که هزاران یا میلیونها کاربر به طور همزمان از آن استفاده میکنند، همچنان به درستی کار کند؟
در این دوره، شما طراحی سیستم را از پایه و با زبانی بسیار ساده خواهید آموخت. ما با نحوه عملکرد اینترنت شروع میکنیم و سپس به تدریج قطعات سازنده سیستمهای واقعی مانند APIها، پایگاههای داده، کشها (Caches)، CDNها، صفها (Queues) و سیستمهای مانیتورینگ را اضافه میکنیم.
این یک دوره تئوری و سنگین نیست. هدف ما ارائه مدلهای ذهنی شفاف است که بتوانید در مصاحبههای شغلی، محیط کار و پروژههای شخصی خود از آنها استفاده کنید.
پیشنیازها
این دوره برای مبتدیان طراحی شده است. اگر تا به حال طراحی سیستم را مطالعه نکردهاید، در جای درستی هستید.
تمام آنچه نیاز دارید عبارت است از:
یک لپتاپ یا کامپیوتر
اتصال به اینترنت
یک دفترچه یادداشت یا هر اپلیکیشن یادداشتبرداری
یک تا دو ساعت تمرکز و کنجکاوی
هیچ نیازی به نصب نرمافزار خاصی نیست.
آنچه خواهید آموخت
در پایان این دوره، شما قادر خواهید بود موارد زیر را با اطمینان توضیح دهید:
مبانی اینترنت
آدرس IP و DNS
نحوه ارتباط اپلیکیشنها
کلاینت و سرور، پروتکلها، تفاوت TCP و UDP، و HTTP
ارتباطات در لحظه (Real-time)
وبسوکتها (WebSockets)
مسیریابی امن ترافیک
فوروارد پروکسی و ریورس پروکسی
APIها در دنیای واقعی
مبانی API، REST API، GraphQL و gRPC
سیستمهای ناهمگام (Asynchronous)
صفهای پیام (Message Queues) و زمان استفاده از آنها
مفاهیم کلیدی طراحی سیستم
مقیاسپذیری (Scalability)، در دسترس بودن (Availability)، نقطه شکست واحد (SPOF)، سازگاری قوی و سازگاری نهایی
پایگاه داده و ذخیرهسازی
SQL، NoSQL، مقایسه SQL و NoSQL، و ذخیرهسازی شیگرا (Object Storage)
المانهای افزایش سرعت و کارایی
CDN، کش (Cache)، استراتژی Cache Aside و استراتژی Read Through
آمادهسازی برای محیط عملیاتی (Production)
ثبت لاگ (Logging) و مانیتورینگ
Sweet Codey
مربی
نمایش نظرات