CodeShot
System Design1 دقیقه مطالعه

System Design چیست؟

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

چرا مهم است؟

برای موقعیت‌های Senior، مصاحبه System Design استاندارد شده؛ فراتر از آن، توانایی طراحی سیستم مقیاس‌پذیر مستقیماً روی تصمیم‌های معماری واقعی در کار روزمره اثر می‌گذارد.

سوالات کلیدی که System Design به آن‌ها پاسخ می‌دهد

  • چند کاربر/درخواست در ثانیه باید پشتیبانی شود؟ (مقیاس)
  • داده کجا و چطور ذخیره شود؟ (رابطه‌ای، NoSQL، Cache)
  • چطور بار بین چند سرور توزیع شود؟ (Load Balancer)
  • سیستم چطور در برابر خرابی یک بخش مقاوم می‌ماند؟ (Redundancy، Failover)

نمونه چارچوب پاسخ در مصاحبه

  1. نیازمندی‌ها را روشن کنید (Functional/Non-Functional) — مقیاس، تأخیر قابل‌قبول.
  2. طراحی سطح‌بالا بکشید: کلاینت → Load Balancer → API → دیتابیس/Cache.
  3. عمیق شوید روی یک یا دو بخش کلیدی (مثلاً چگونگی Scale دیتابیس با Sharding).
  4. Trade-off‌ها را صریح بیان کنید (مثلاً Consistency در برابر Availability).

اشتباه رایج

❌ رفتن مستقیم به جزئیات پیاده‌سازی (کد، اسکیمای دقیق جدول) قبل از توافق روی طراحی کلی — مصاحبه‌گر معمولاً می‌خواهد ببیند اول تصویر بزرگ را می‌سازید، بعد عمیق می‌شوید.

منبع و مطالعه بیشتر

خلاصه

System Design یعنی طراحی معماری کلی یک سیستم مقیاس‌پذیر: توزیع بار، ذخیره‌سازی داده و مقاومت در برابر خرابی. همیشه اول تصویر بزرگ را بکشید، بعد روی جزئیات عمیق شوید. مرجع کامل: System Design Primer در گیت‌هاب.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←