سلام دوستان. می‌خوایم قسمت سوم از مجموعه پست‌های سوالات مصاحبه فرانت‌اند رو بررسی کنیم. از فرم بالا استفاده کنین تا در جریان قسمت‌های جدید قرار بگیرین. توی این قسمت می‌خوایم با ۱۰ سوال زیر آشنا بشیم:

۲۱. هنگام باندل کردن برنامه چه چیزهایی مانع Tree-Shaking میشه؟
۲۲. برنامه‌نویسی Functional چه مزایایی داره؟
۲۳. چه زمانی اتـریبـیوت aria-label توی HTML استفاده کنیم؟
۲۴. چه زمانی از تگ picture توی HTML استفاده کنیم؟
۲۵. دستور git tag چکار می‌کنه؟
۲۶. دستور git pull و git fetch چه فرقی با هم دارن؟
۲۷. توی مرورگر رویدادهای load و DOMContentLoaded چه فرقی با هم دارن؟
۲۸. چند تا از Best Practice های Accessibility رو می‌شناسین؟
۲۹. فایل d.ts تو پروژه‌های تایپ‌اسکریپتی چیه؟
۳۰. منظور از Stateless بودن REST چیه؟
 

قبل از شروع می‌خوایم یادی کنیم از عزیز. امیدوارم روحش شاد و در آرامش باشه ✨💚

 

۲۱. هنگام باندل کردن برنامه چه چیزهایی مانع Tree-Shaking میشه؟

ابتدا یک تعریف از Tree-shaking داشته باشیم. Tree-shaking به عملیات حذف کردن کدهای اضافی و بلااستفاده توسط باندلر هنگام باندل کردن گفته میشه.

توی هر برنامه‌ای همیشه یک سری کدها (مثل توابع) وجود داره که هیچوقت استفاده نمیشن و بنابراین حضور اونها توی باندل نهایی نتیجه‌ای جز افزایش سایز باندل نداره. بنابراین با حذف کردن اونها می‌تونیم سایز باندل رو کاهش بدیم تا سرعت و عملکرد برنامه بهتره بشه. اما چه کدهایی کاندیدای حذف شدن هستن؟ باندلر چه‌جوری تشخیص میده که چه کدی رو باید حذف کنه و چه کدی رو نه؟

قوانینی وجود داره که اگه اونها رو رعایت نکنیم، باعث میشه باندلر نتونه Tree-shaking انجام بده:

۱. Import کردن همهٔ ماژول

وقتی برای استفاده از قسمتی از یک ماژول، همهٔ اون رو Import می‌کنیم، باندلر نمی‌تونه قسمت‌های بلااستفادهٔ اون رو حذف کنه:

import * as utils form 'module';

utils.add(2, 5);