طراحی سیستم چیست؟
معرفی System Design: تعریف، چرا برای مهندسان ارشد حیاتی است، مهارتهای لازم و ساختار مصاحبه طراحی
طراحی سیستم چیست؟
طراحی سیستم (System Design) یعنی طراحی معماری نرمافزار که میلیونها کاربر، ترابایتها داده و هزاران سرور را مدیریت میکند — جایی که تصمیمهای معماری، تفاوت بین سیستم ۲۴ ساعته پایدار و فروپاشی در ساعت پیک است.
برنامهنویسی جونیور «چطور این تابع را بنویسم؟» میپرسد؛ مهندس ارشد «چطور این سیستم را بسازم که با ۱۰ میلیون کاربر کار کند؟» — System Design مهارت پاسخ به سؤال دوم است.
چرا مهم است؟
- مصاحبههای Senior: تقریباً همه شرکتهای بزرگ (گوگل، آمازون، اسنپ، دیجیکالا) دور مصاحبه System Design دارند — و وزن سنگینی در استخدام ارشد
- کار روزمره: انتخاب دیتابیس، طراحی API، تصمیم کش — همه System Design ریزمقیاساند
- تفکر سیستمی: دیدن کلان: تریدآفها، گلوگاهها، نقطههای شکست
مهارتهای لازم
| مهارت | مثال |
|---|---|
| درک تریدآفها | سرعت در برابر هزینه، سازگاری در برابر دسترسپذیری |
| اجزای building block | کش، LB، صف پیام، دیتابیس توزیعشده |
| تخمین ظرفیت | چند سرور؟ چند فضا؟ چند QPS؟ |
| ارتباط شفاف | توضیح تصمیمها و دلیلشان |
مصاحبه System Design چطور است؟
۴۵-۶۰ دقیقه، یک سؤال باز: «توییتر را طراحی کنید» یا «سیستم آپلود ویدیو بسازید». هیچ جواب «درست» واحدی نیست — فرایند تفکر شما ارزیابی میشود:
- آیا نیازمندیها را میپرسید؟ (کاربران؟ عملیات؟ تأخیر؟)
- آیا تریدآفها را میشناسید و بیان میکنید؟
- آیا اجزای درست را انتخاب و دلیل میآورید؟
نقشه راه دوره
- مبانی: ویژگیها، تخمین ظرفیت، چارچوب مصاحبه
- مقیاسپذیری: Load Balancing، پروکسی
- کش: الگوریتمها، الگوها، مشکلات
- دیتابیس: SQL/NoSQL، تکرار، شاردینگ
- توزیعشدگی: CAP، صف پیام، میکروسرویس
- اجزا: CDN، Redis، Elasticsearch، Rate Limiter
- الگوها: شناسه توزیعشده، Consistent Hashing، Circuit Breaker
- مطالعات موردی: URL Shortener، News Feed، چت
نکته: System Design «حفظ کردن معماریها» نیست؛ فهمیدن چرایی هر تصمیم است. هر مبحث این دوره با «چرا این مشکل وجود دارد؟» شروع میشود — همین ترتیب را در مصاحبه هم رعایت کنید!
جمعبندی
- System Design = معماری سیستمهای بزرگ و مقیاسپذیر
- کلید مصاحبههای ارشد + کار روزمره مهندسی
- ارزیابی: فرایند تفکر و تریدآفها، نه جواب واحد
- مسیر: مبانی ← اجزا ← الگوها ← مطالعات موردی
این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.