frontend-interview-questions

1. چگونه بودجه عملکرد را برای یک برنامه React تعریف و اعمال می‌کنید؟

پاسخ:

بودجه عملکرد مجموعه‌ای از محدودیت‌ها برای معیارهای کلیدی عملکرد است. من آن را زود تعریف می‌کنم بر اساس نیازهای تجاری و دستگاه‌های هدف با استفاده از معیارهایی مثل:

ابزارهای اعمال:

performance: {
  maxEntrypointSize: 250000,
  maxAssetSize: 250000,
},


2. رویکرد شما برای ممیزی یک برنامه React در برابر بودجه عملکرد در طول توسعه چیست؟

پاسخ:

من از ابزارهای خودکار و دستی در جریان‌های کاری توسعه استفاده می‌کنم:

معیارها را در بررسی‌های PR ادغام می‌کنم تا پاسخگویی تضمین شود.


3. چگونه توسعه ویژگی‌ها را با حفظ بودجه عملکرد در یک پروژه React متعادل می‌کنید؟

پاسخ:

تعادل از طریق محافظ‌ها و اولویت‌ها:

من از عملکرد به‌عنوان یک نیاز غیرکارکردی دفاع می‌کنم، نه یک فکر بعدی.


4. استراتژی شما برای بهینه‌سازی اسکریپت‌های شخص ثالث در چارچوب بودجه عملکرد چیست؟

پاسخ:

  1. ممیزی ضرورت هر اسکریپت (فقط از آنچه ارزش افزوده دارد استفاده کنید).
  2. بارگذاری اسکریپت‌ها به‌صورت غیرهمزمان یا تأخیری:
<script src="chat.js" async></script>
  1. انتقال به ادغام‌های سمت سرور (مثل پروکسی تحلیل) در صورت امکان.
  2. استفاده از وب ورکرها برای جداسازی کارهای سنگین از ریسمان اصلی.
  3. استفاده از Subresource Integrity (SRI) و preconnect برای تحویل سریع‌تر.


5. چگونه بررسی‌های بودجه عملکرد را در یک خط لوله CI/CD برای یک برنامه React ادغام می‌کنید؟

پاسخ:

lighthouse-ci:
  script: lhci autorun
"scripts": {
  "size-check": "size-limit"
}


6. رویکرد شما برای بهینه‌سازی تصاویر و دارایی‌ها در یک برنامه React برای رعایت بودجه عملکرد چیست؟

پاسخ:

{
  loader: 'image-webpack-loader',
  options: { mozjpeg: { progressive: true } }
}


7. چگونه زمان تا تعاملی شدن (TTI) را در یک برنامه React اندازه‌گیری و بهبود می‌دهید؟

پاسخ:

const HeavyComponent = React.lazy(() => import('./Heavy'));


8. فرآیند شما برای شناسایی و حذف منابع مسدودکننده رندر در یک برنامه React چیست؟

پاسخ:

  1. ممیزی با Lighthouse/DevTools برای مسیرهای بحرانی مسدودشده.
  2. تأخیر یا پیش‌بارگذاری فونت‌ها و استایل‌ها:
<link rel="preload" as="style" href="styles.css" />
  1. به حداقل رساندن و درون‌خطی کردن CSS بحرانی.
  2. بارگذاری JS غیربحرانی با defer یا async.

پلاگین‌های وب‌پک مثل mini-css-extract-plugin + استخراج‌کننده‌های CSS بحرانی به خودکارسازی این کمک می‌کنند.


9. چگونه یک تیم را در مورد رعایت بودجه عملکرد در یک کدبیس React آموزش می‌دهید؟

پاسخ:


10. رویکرد شما برای حفظ بودجه عملکرد با مقیاس‌پذیری یک برنامه React در طول زمان چیست؟