HLD VS LLD: راهنمای آماده سازی مصاحبه طراحی نهایی سیستم (2025)

این که آیا شما قصد دارید مصاحبه های طراحی سیستم را در Faang یا ایجاد برنامه های مقیاس پذیر در دنیای واقعی ، درک کنید. طراحی سطح بالا (HLD) وت طراحی سطح پایین (LLD) ضروری است این وبلاگ شما را از طریق نقشه راه کامل ، مفاهیم کلیدی ، انتظارات مصاحبه و نکات عملی برای تسلط HLD و LLD طی می کند.
🔹 طراحی سطح بالا (HLD) چیست؟
HLD بر روی معماری از سیستم – چگونگی تعامل مؤلفه های مختلف ، مسئولیت های آنها و چگونگی مقیاس سیستم.
مناطق تمرکز کلیدی:
- مرزهای سیستم
- اجزای اصلی/ماژول ها
- پروتکل های ارتباطی (استراحت ، GRPC و غیره)
- بانکهای اطلاعاتی و انواع آنها
- توازن بار ، حافظه پنهان ، cdns
- در دسترس بودن بالا و تحمل گسل
- دروازه API ، محدود کردن نرخ
تحویل ها:
- نمودار
- نمودار استقرار
- توجیه پشته فنی
- استراتژی مقیاس گذاری (افقی در مقابل عمودی)
- نمودارهای جریان داده
سوالات مصاحبه HLD:
- طراحی یوتیوب ، اینستاگرام ، واتساپ و غیره
- چگونه می توانید میلیون ها کاربر را اداره کنید؟
- چه DB و معماری را انتخاب می کنید و چرا؟
🔹 طراحی سطح پایین (LLD) چیست؟
غواصی به طراحی سطح کلاس، مدل های داده و کار داخلی هر ماژول یا مؤلفه. این تضمین می کند که معماری شما در واقع می تواند ساخته و نگهداری شود.
مناطق تمرکز کلیدی:
- نمودارهای کلاس
- اصول شی گرا (جامد ، خشک ، یاگی)
- الگوهای طراحی (کارخانه ، مجرد ، استراتژی و غیره)
- رابط ها و انتزاعات
- کد تمیز و مدولار سازی
- ایمنی موضوع و همزمانی
تحویل ها:
- نمودارهای کلاس
- نمودارهای توالی
- شبه کد برای جریان های عمده
- روابط (ترکیب ، وراثت)
سوالات مصاحبه LLD:
- طراحی سیستم آسانسور / پارکینگ / دستگاه خودپرداز
- اجرای محدود کننده / logger / حافظه پنهان
- نمودار کلاس را برای سیستم پست/نظر رسانه های اجتماعی بنویسید
🔹 باید الگوهای طراحی برای مصاحبه های LLD
تسلط بر الگوهای طراحی زیر برای مصاحبه های طراحی سطح پایین ضروری است:
1 الگوی تک آهنگ
تضمین می کند که یک کلاس فقط یک نمونه دارد و یک نقطه دسترسی جهانی به آن را فراهم می کند.
2 الگوی کارخانه
بدون افشای منطق فوری در مشتری ، اشیاء ایجاد می کند.
3 الگوی سازنده
گام به گام در ساخت اشیاء پیچیده کمک می کند.
4 الگوی استراتژی
خانواده ای از الگوریتم ها را تعریف می کند و هر یک را محاصره می کند و باعث می شود آنها قابل تعویض باشند.
5 الگوی ناظر
هنگام تغییر وضعیت یک شیء (به عنوان مثال ، سیستم های میخانه) برای اطلاع چندین اشیاء استفاده می شود.
6 الگوی دکوراسیون
بدون تغییر ساختار آنها ، رفتار جدیدی به اشیاء می افزاید.
7 الگوی آداپتور
یک رابط را به دیگری که مشتری انتظار دارد تبدیل می کند.
8 الگوی فرمان
یک درخواست را به عنوان یک شیء محاصره می کند و امکان پارامتر شدن و صف درخواست ها را فراهم می کند.
9 الگوی نمونه اولیه
با کپی کردن یک شی موجود ، اشیاء جدید ایجاد می کند.
10 الگوی پروکسی
برای کنترل دسترسی ، یک جانشین یا مکان نگهدارنده را برای شیء دیگر فراهم می کند.
این الگوهای در نوشتن کد مقیاس پذیر ، قابل آزمایش و قابل حفظ کمک می کند. در طول مصاحبه ، آماده باشید:
- الگوی مناسب را برای مشکل مشخص کنید.
- انتخاب خود را به وضوح توضیح دهید.
- نوشتن کد/شبه کد که الگوی را نشان می دهد.
🔹 تفاوت بین HLD و LLD
جنبه | هلدی | با نام |
---|---|---|
تمرکز | معماری و مؤلفه ها | ساختار و منطق داخلی |
نمایش | نمای چشم پرنده | نمای برنامه نویس |
مخاطبان | معماران ، ذینفعان | توسعه دهنده |
نمودارها | مؤلفه ، استقرار ، جریان داده | کلاس ، دنباله ، نمودار ER |
نگرانی | مقیاس پذیری ، در دسترس بودن | قابلیت استفاده مجدد کد ، طراحی تمیز |
🔹 نحوه آماده سازی برای مصاحبه های HLD
- یاد بگیرید که چگونه الزامات را تجزیه و تحلیل کنید
- تجارت بین SQL در مقابل Nosql ، Monolith vs MicroService را بدانید
- طراحی سیستم های در مقیاس بزرگ
- ابزارهایی مانند draw.io ، lucidchart را بیاموزید
- قضیه کلاه ، تأخیر در مقابل توان را درک کنید
سیستم های عملی توصیه شده:
- یک کوتاه کننده URL طراحی کنید
- طراحی پس زمینه Uber
- طراحی ذخیره سازی فایل توزیع شده (مانند Dropbox)
🔹 نحوه آماده سازی برای مصاحبه های LLD
- برنامه نویسی شی گرا استاد (جاوا ، C ++ ، پایتون)
- کلاس نقاشی و نمودارهای دنباله را تمرین کنید
- حداقل 10 الگوی طراحی اصلی را عمیقاً بیاموزید
- کد تمیز ، مدولار و قابل آزمایش را بنویسید
- سیستم های دنیای واقعی را با کد اجرا کنید
سناریوهای تمرین توصیه شده:
- طراحی Bookmyshow lld
- طراحی مدیریت آنلاین کتابخانه
- یک استخر نخ ، ورود به سیستم یا سرویس اعلان را پیاده سازی کنید
🔹 نکات نهایی
- برای ساختار افکار خود با HLD شروع کنید.
- به تدریج عمیق تر به LLD بروید.
- همیشه الزامات و محدودیت ها را روشن کنید.
- فرضیات خود را در طول مصاحبه برقرار کنید.
- نمودار و برنامه نویسی را در یک محیط به موقع تمرین کنید.
تسلط HLD و LLD تفاوت بین توسعه دهنده خوب و تبدیل شدن به یک کارشناس طراحی سیستمبشر این راهنما را علامت گذاری کنید ، اغلب تمرین کنید و با اطمینان در مصاحبه طراحی بعدی سیستم خود قدم بزنید!