برنامه نویسی

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 تفاوت بین توسعه دهنده خوب و تبدیل شدن به یک کارشناس طراحی سیستمبشر این راهنما را علامت گذاری کنید ، اغلب تمرین کنید و با اطمینان در مصاحبه طراحی بعدی سیستم خود قدم بزنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا