Angular إطار عمل واجهات متكامل من Google. وخلافًا لـ React، يتخذ القرارات المعمارية نيابة عنك — فالتوجيه والنماذج وطلبات HTTP والاختبار كلها جزء منه. وهذا عبء في مشروع صغير وميزة في مشروع كبير بمطورين كثر.
ما هي Angular؟
حيث يكون React مكتبة تترك البنية لك، يكون Angular هو البنية. فالتوجيه ومعالجة النماذج وطلبات HTTP وحقن الاعتماديات والاختبار وخط البناء تصل معًا، مضبوطة للعمل مع بعضها، وبطريقة موثّقة لكل أمر.
وهذا ذو قيمة حقيقية عند حجم معيّن. ففي فريق من خمسة عشر عبر ثلاث سنوات، كون «كيف نتعامل مع النماذج هنا» سؤالًا محسومًا لا تفضيلًا لكل مطوّر يوفّر وقتًا أكثر من أي اختيار مكتبة منفرد. وكل قاعدة كود Angular تشبه غيرها عمومًا، ما يجعل المنضم الجديد منتجًا خلال أيام لا أسابيع.
وهو TypeScript أولًا — لا اختياريًا ولا مُضافًا — وتستخدمه Google داخليًا بمقياس كبير، ما يمنح قصة دعمه طويل الأمد وزنًا أكبر من غيرها.
متى نختار Angular
حين يشغّل العميل Angular أصلًا. فمعظم عملنا في Angular صيانة أو توسيع تطبيق قائم، وهذه هي الحالة الشائعة الصادقة.
وحين يكون الفريق كبيرًا وسيتغير عبر سنوات — مؤسسات، أو بنوك، أو جهات حكومية. فالحزم الذي يبدو ثقيلًا في مشروع من خمس شاشات هو بالضبط ما يمنع مشروعًا من خمسين شاشة من التشظي إلى خمسة أساليب.
وحين تشترط عملية شراء إطارًا بجهة داعمة مؤسسية مسماة وجدول دعم منشور. وهذا قيد حقيقي في هذه المنطقة، وAngular يفي به أسهل من غيره.
متى لا نستخدم Angular
لموقع تسويقي، أو أي مشروع صغير. فـ Angular يحمل قدرًا كبيرًا من الإطار ليحمّله موقع من خمس صفحات، وكلفة الإعداد لا تُسترد عند ذلك الحجم.
ولشركة ناشئة تحتاج التحرك بسرعة وتغيير الاتجاه. فالبنية التي تحمي فريقًا كبيرًا تبطئ فريقًا صغيرًا، وتجمّع توظيف Angular في دبي أصغر من نظيره لـ React.
وسنقول صراحةً حين يطلب عميل Angular ولا يستدعيه المشروع، لأن اختيار الإطار الخاطئ يُدفع ثمنه كل أسبوع لسنوات.
ما الذي نبنيه بـ Angular
أنظمة داخلية مؤسسية
تطبيقات كبيرة بأدوار كثيرة وقواعد صلاحيات عميقة وسجل تدقيق — الأنظمة التي تُدار بها الأعمال فعلًا. وبنية Angular مصممة لهذا الشكل بالضبط، وقصة الاختبار فيه أقوى ما بين الأطر الكبرى.
تسلّم تطبيق Angular قائم
يُطلب منا في الأغلب صيانة وتوسيع شيء بناه غيرنا. ونبدأ بترقية إلى نسخة مدعومة ومجموعة اختبارات حول الأجزاء التي تحمل مالًا، قبل مسّ أي ميزة.
أدوات داخلية للمؤسسات
تطبيقات طويلة العمر بشاشات كثيرة ومطورين كثر وأفق يمتد عقدًا. فآراء Angular في البنية أثمن ما تكون حيث يتناوب فريق على قاعدة الكود عبر سنوات.
ترحيل من AngularJS
تطبيقات AngularJS قديمة تجاوزت الدعم ولا يمكن إعادة كتابتها دفعة واحدة. ننقلها شاشةً شاشة فيستمر العمل طوال الوقت، وهذا أبطأ على الورق وأكثر أمانًا بكثير عمليًا.
كيف نطلق مشاريع Angular
على نسخة مدعومة، دائمًا. فـ Angular ينشر نافذة دعم واضحة، وتطبيق متأخر بنسختين كبيرتين يراكم تنبيهات أمنية لا يستطيع ترقيعها. وأول ما نفعله في قاعدة كود موروثة هو تحديد موقعها في تلك الدورة.
ووحدات مسارات محمَّلة عند الطلب من البداية، فيكون التنزيل الأول شاشة واحدة لا التطبيق كله — وهي أكبر رافعة أداء يقدمها Angular، وأكثر ما يُترك دون استخدام.
ما تكلّفك Angular
هو أكبر الأطر الكبرى تنزيلًا، وأصعبها جعلًا سريعًا في أول زيارة. وهذه مقايضة مقبولة خلف تسجيل دخول وسيئة على صفحة عامة.
ومنحنى التعلم فيه الأشد أيضًا. فالمطوّر المنتج في React يستغرق وقتًا أطول ملحوظًا ليصبح منتجًا في Angular، وهذا يهم في التوظيف وفي التسليم.
الحزمة أكبر من React أو Vue والمنحنى أشد — فمطوّر ينضم إلى مشروع Angular يحتاج فهم حقن الاعتماديات وRxJS ونظام الوحدات قبل أن ينتج، وذلك أسابيع لا أيام.
وفي هذه المنطقة مجموعة التوظيف أرق أيضًا. وهذا اعتبار حقيقي لعميل ينوي جلب الصيانة داخليًا، وهو السبب الرئيس لعدم توصيتنا بـ Angular لمشروع جديد ما لم يشر إليه شيء آخر.
أسئلة تُطرح علينا عن Angular
AngularJS (النسخة 1) وAngular الحديث إطاران مختلفان يتشاركان الاسم — ولا مسار ترقية بينهما، بل إعادة كتابة فقط. وقد انتهى عمر AngularJS في 2022 ولا يتلقى ترقيعات أمنية، فإن كنت لا تزال عليه فذلك يستحق المعالجة. وسنحدد نطاق إعادة الكتابة بصدق بدل وصفها بأنها ترحيل.
لمشروع جديد سنختار عمومًا React أو Vue — أصغر وأسهل توظيفًا في هذه المنطقة. وAngular هو الجواب الصحيح حين يكون موجودًا أصلًا، أو حين تشترطه المشتريات، أو حين يستفيد فريق كبير من أن يقرر الإطار البنية عنهم.
نعم. فتطبيقات Angular أكثر اتساقًا بين قواعد الكود من معظمها، لأن الإطار يملي كثيرًا من البنية — ما يجعل وراثة واحد أقل إزعاجًا بكثير من وراثة مشروع React بلا قيود.
ليس بطبيعته، وفي جانب هو أرخص: فلأن الإطار يملي البنية، يستطيع مطوّر يعرف Angular أن يجد طريقه في أي قاعدة كود Angular. والكلفة في إيجاد ذلك المطوّر هنا لا في الكود نفسه.
يستطيع، بالعرض من الخادم، ونادرًا ما يكون الأداة الأفضل لموقع. فالحزمة أكبر من البدائل وموقع تسويقي لا يحتاج البنية التي يوفرها Angular. ونحجزه للتطبيقات — لوحات وبوابات وأنظمة داخلية — ونقترح شيئًا أخف للموقع الذي أمامها.