Faragiri

همهٔ زبان‌ها

آموزش انگولار فریم‌ورک‌های فرانت‌اند

مسیریابی، فرم، درخواست شبکه و تزریق وابستگی همه در خود فریم‌ورک هستند. همین یک ویژگی است که انتخابش را برای تیم بزرگ توجیه می‌کند.

۴بخش
۲دقیقه خواندن
۴عمق

پنج شاخه، صفر انتخاب

چیزی که همراه فریم‌ورک می‌آید و لازم نیست انتخابش کنید

هر شاخه اینجا در گزینه‌های دیگر یک تصمیم جداست، و هر برگ رویش از روز اول در جعبه است.

  • مسیریابیمسیر تودرتو، محافظ، و بارگذاری تنبل
    • در خود بسته، بدون انتخاب کتابخانه
  • درخواست شبکهبا رهگیر و با تبدیل خودکار
    • رهگیر، برای افزودن توکن به همه درخواست‌ها
  • ابزار و آزمونساخت، تولید فایل، و اجرای آزمون
    • رابط خط فرمان، با ساختار استاندارد
    • اجراکننده آزمون، از پیش پیکربندی‌شده
همراه فریم‌ورک
  • فرمدو مدل، هر دو با اعتبارسنجی
    • فرم واکنشی، برای منطق پیچیده
    • فرم قالبی، برای فرم ساده
  • تزریق وابستگیسازوکاری که آزمون‌پذیری از آن می‌آید
    • سرویس با یک نمونه در کل برنامه
    • جایگزینی با بدل در آزمون

شاخه‌ها چیزهایی هستند که تصمیمشان گرفته شده و نه چیزهایی که فقط اینجا وجود دارند. هر کدامشان در گزینه‌های دیگر هم هست، به‌شکل یک انتخاب.

تفاوت اصلی انگولار با بقیه در ویژگی‌هایش نیست، در این است که چه چیزی از قبل تصمیم گرفته شده. مسیریابی، فرم، درخواست شبکه، تزریق وابستگی و آزمون همه در خود فریم‌ورک هستند و انتخاب کتابخانه برای هیچ‌کدام لازم نیست.

سازوکاری که همه چیز روی آن سوار است، تزریق وابستگی است. یک سرویس با یک حاشیه‌نویسی اعلام می‌کند که در کل برنامه یک نمونه دارد، و هر کامپوننتی که آن را بخواهد فقط اعلامش می‌کند و فریم‌ورک می‌دهدش. دو شکل نوشتن دارد و شکل تازه‌تر یک تابع است که داخل بدنه کلاس صدا زده می‌شود و به سازنده نیازی ندارد.

سود عملی‌اش این است که در آزمون، همان سرویس را با یک بدل جایگزین می‌کنید و کامپوننت هیچ چیزی درباره این تعویض نمی‌داند. همان چیزی که در پنج اصل، و اینکه هرکدام جلوی چه چیزی را می‌گیرد اصل آخر است.

سیگنال، و چیزی که جایش را گرفت

سازوکار واکنش‌پذیری امروزی انگولار سیگنال است: یک مقدار که خودش می‌داند چه کسی خواندش، پس با تغییرش فقط همان بخش‌ها به‌روز می‌شوند. این جای سازوکار قدیمی تشخیص تغییر را گرفته که کل درخت کامپوننت‌ها را بررسی می‌کرد و منبع اصلی کندی برنامه‌های بزرگ بود.

برای کدی که هنوز روی سازوکار قدیمی است، تغییر تدریجی ممکن است و لازم نیست همه‌جا یک‌باره عوض شود. مقدار محاسبه‌شده هم شکل خودش را دارد و مثل همتاهایش در فریم‌ورک‌های دیگر کش می‌شود.

هزینه‌ای که این انتخاب دارد

مقدار چیزی که باید پیش از اولین کامپوننت یاد بگیرید، از هر گزینه دیگری بیشتر است: تایپ‌اسکریپت، حاشیه‌نویسی، تزریق وابستگی، ماژول یا کامپوننت مستقل، و ساختار پروژه‌ای که خودش نظر دارد. برای یک صفحه کوچک این هزینه توجیه ندارد.

برای یک تیم چند نفره و برنامه‌ای که سال‌ها نگهداری می‌شود، همان هزینه یک بار داده می‌شود و بعد هر کسی که وارد پروژه شود ساختار آشنا می‌بیند. این تنها استدلال واقعی به نفع انگولار است و استدلال خوبی هم هست.

جایی که کار گیر می‌کند، پروژه یک‌نفره است

در ایران انگولار بیشتر در شرکت‌های بزرگ و پروژه‌های سازمانی استفاده می‌شود، و همان است که در آگهی‌های شغلی می‌بینید. اتفاقی که برای یک تازه‌کار می‌افتد این است که برای رسیدن به آن آگهی‌ها، انگولار را روی یک پروژه شخصی کوچک شروع می‌کند و همان جا زیر بار ساختارش خسته می‌شود. اگر هدفتان بازار کار سازمانی است، مسیر بهتر این است که با یک گزینه سبک‌تر مفاهیم را یاد بگیرید و انگولار را روی یک پروژه به‌اندازه واقعی تمرین کنید، جایی که ساختارش واقعا چیزی حل می‌کند.

ابزار، و سالی که این حرف درست است

در سال ۲۰۲۶، رابط خط فرمان انگولار پروژه و کامپوننت و سرویس را می‌سازد و ساختار استاندارد را تحمیل می‌کند؛ متن‌باز و رایگان است و جای ساختن دستی پوشه و فایل را گرفته. کامپوننت مستقل امروز حالت پیش‌فرض است و جای ماژول‌های اعلان را گرفته که سال‌ها بزرگ‌ترین مانع ورود به این فریم‌ورک بودند. سیگنال هم جای سازوکار قدیمی تشخیص تغییر را گرفته و برای کد تازه پیشنهاد رسمی است.

پرسش بعدی این است که همان مسئله‌ها در گزینه‌ای که هیچ تصمیمی از پیش نگرفته چه شکلی‌اند، که کامپوننت، وضعیت، و چرخه رندر است. و گزینه‌ای که به‌جای رانتایم یک کامپایلر دارد در یک کامپایلر، به‌جای یک رانتایم است.

کنار این

بالای این