طراحی سیستم چیست؟

معرفی System Design: تعریف، چرا برای مهندسان ارشد حیاتی است، مهارت‌های لازم و ساختار مصاحبه طراحی

طراحی سیستم چیست؟

طراحی سیستم (System Design) یعنی طراحی معماری نرم‌افزار که میلیون‌ها کاربر، ترابایت‌ها داده و هزاران سرور را مدیریت می‌کند — جایی که تصمیم‌های معماری، تفاوت بین سیستم ۲۴ ساعته پایدار و فروپاشی در ساعت پیک است.

برنامه‌نویسی جونیور «چطور این تابع را بنویسم؟» می‌پرسد؛ مهندس ارشد «چطور این سیستم را بسازم که با ۱۰ میلیون کاربر کار کند؟» — System Design مهارت پاسخ به سؤال دوم است.

چرا مهم است؟

مهارت‌های لازم

مهارتمثال
درک ترید‌آف‌هاسرعت در برابر هزینه، سازگاری در برابر دسترس‌پذیری
اجزای building blockکش، LB، صف پیام، دیتابیس توزیع‌شده
تخمین ظرفیتچند سرور؟ چند فضا؟ چند QPS؟
ارتباط شفافتوضیح تصمیم‌ها و دلیلشان

مصاحبه System Design چطور است؟

۴۵-۶۰ دقیقه، یک سؤال باز: «توییتر را طراحی کنید» یا «سیستم آپلود ویدیو بسازید». هیچ جواب «درست» واحدی نیست — فرایند تفکر شما ارزیابی می‌شود:

نقشه راه دوره

  1. مبانی: ویژگی‌ها، تخمین ظرفیت، چارچوب مصاحبه
  2. مقیاس‌پذیری: Load Balancing، پروکسی
  3. کش: الگوریتم‌ها، الگوها، مشکلات
  4. دیتابیس: SQL/NoSQL، تکرار، شاردینگ
  5. توزیع‌شدگی: CAP، صف پیام، میکروسرویس
  6. اجزا: CDN، Redis، Elasticsearch، Rate Limiter
  7. الگوها: شناسه توزیع‌شده، Consistent Hashing، Circuit Breaker
  8. مطالعات موردی: URL Shortener، News Feed، چت
نکته: System Design «حفظ کردن معماری‌ها» نیست؛ فهمیدن چرایی هر تصمیم است. هر مبحث این دوره با «چرا این مشکل وجود دارد؟» شروع می‌شود — همین ترتیب را در مصاحبه هم رعایت کنید!

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط