الجمرة. أفضل رهان.

إذا كنت تفكر في الأداة التي يجب استخدامها في مساعدتك في إنشاء التطبيق التالي ، فيجب عليك التفكير في Ember.js. بناء تطبيق الواجهة الأمامية معقد للغاية ويشمل مجموعة متنوعة من القضايا. إنها مغامرة لا تريد أن تأخذها بمفردك وتريد أن تكون مستعدًا لأي سيناريو يظهر. ظهر Ember ظهري وسألقي بعض الضوء على سبب وجوب التفكير في مشروعك التالي.

المكتبات ليست أطر عمل.

المكتبات هي أدوات. أنها تمكنك من القيام بشيء محدد. النظر في فرشاة الطلاء ، فإنه يؤدي وظيفة واحدة وظيفة واحدة فقط. الأطر تشمل أدوات متعددة. في Ember ، تم تنسيق هذه الأدوات من قبل المجتمع لتكون أفضل الحلول لبعض المشاكل الأكثر تعقيدًا وشائعة في تطوير الواجهة الأمامية.

Ember عبارة عن مجموعة أدوات منسقة جيدًا

المشكلة التي أراها هي أن مجتمع الواجهة الأمامية ككل قد أربك الاثنين قليلاً. على سبيل المثال ، Glimmer.js و Vue.js و React.js هي أدوات لطبقة العرض - فهي تساعدك على إدارة عناصر العرض في الصفحة. ومع ذلك ، هناك أدوات تعالج مشكلات أخرى ، مثل React-Router و router.js لدعم التوجيه بالإضافة إلى إنشاء تطبيق رد فعل و ember-cli للأدوات.

تشمل الأطر هذه الأدوات بحيث يمكنك البدء في إنشاء تطبيقك. كان إطاري الأول هو Rails ، وهو مثال ممتاز لإطار يتألف من بعض المكتبات الممتازة. المشكلة هي أن إطار الواجهة الخلفية لا يترجم عقلياً على الواجهة الأمامية ، لأنه بعد كل الواجهة هو واجهة المستخدم - أليس كذلك؟

لا. إن تطوير Frontend يشمل دعم api على الويب ، والأدوات ، والنشر ، والاختبار والمزيد. تم تحسين هذه القطع الفردية بواسطة العديد من المكتبات ، ولكن وجود إطار في جيبك أمر بالغ الأهمية - فهو يتيح لك تقديم البرامج بشكل أسرع ، مما يقلل من إرهاق القرار.

تقديم البرمجيات.

ضمان أن يتم شحن البرامج الكبيرة هو مسؤوليتي الأساسية. كمهندس برمجيات ، أقوم ببناء الأشياء. هذه الأشياء تواجه العملاء وأي شيء يعرقل هذا الهدف هو الهاء.

قد يقول البعض أن إنشاء إطار عمل هو مسؤولية مهندس البرمجيات. و هو. ومع ذلك ، نحتاج أيضًا إلى موازنة تكلفة الأعمال المنزلية مقابل القيمة التي يواجهها المستخدم.

الفرق التي أحب العمل بها أكثر اهتمامًا ببرنامج الشحن. إنهم يدركون أن هناك توازنًا دقيقًا وفرقًا واضحًا بين الحاجة إلى حل مشكلات التطوير الشائعة مع احتياجات العميل.

هل هذا Ember خارج الصندوق. تم إنشاء مجتمع يعمل معًا لحل المشكلات الشائعة مع توفير الميزات التي تحتاجها أكثر من غيرها في التطبيق الخاص بك. إذا لم يكن لديه ما تحتاجه ، فمن المؤكد أن نظام الملحق الإضافي لديه حل لك. إذا لم ينجح ذلك في النهاية ، فأنا متأكد من أنك ستجد أشخاصًا على استعداد لمساعدتك.

فوائد لاختيار Ember.

حياة أبسط.

منذ أن اخترت Ember ، لم أكن قلقًا بشأن الأدوات ودعم الويب api والامتثال الأمني ​​والمزيد. لماذا هذا؟ نظرًا لأن المجتمع يتكون من خبراء في هذه المجالات كرسوا حياتهم لمساعدة أنت وأنا وجميع الأشخاص الآخرين.

يعد الاختبار في Ember مثالًا مثاليًا على كيف أصبحت الحياة أسهل. الوحدة والتكامل والكامل في اختبار القبول هو جزء من الإطار. ما عليك سوى اختيار عداء الاختبار (على سبيل المثال qunit [2] ، mocha ، إلخ ...) الذي تريد استخدامه. كل شيء آخر يأتي معًا ويمكنك البدء بسرعة في كتابة الاختبارات وتنفيذها.

إن تمكين المهندسين من كتابة اختبارات القبول دون ألم يمكن أن يزيل متطلبات قسم ضمان الجودة المنفصل ، خاصة بالنسبة للفرق الصغيرة والميزانيات الضيقة. وستحصل على كل هذا مجانًا.

مجتمع ودود.

من المحتمل أن يكون المجتمع أحد أفضل الجوانب لاختيار Ember. نظرًا لأن المحادثات شفافة ومفتوحة للجمهور ، فإن الأسباب الكامنة وراء تنفيذ نمط ما على نمط آخر أو لماذا تكون تقنية معينة أفضل - يتم توثيقها جميعًا على الويب [3]. جاهز لك للمراجعة أو النقد أو تجنبه أو تنفيذه.

لاحظ أيضًا أن Ember لن يزول. تم بناء الأساس الذي أنشأه مجتمع Ember بواسطة تحالف من الأفراد والشركات. كل فرد في المجتمع يأتي من خلفيات مختلفة ، بمشاكل مختلفة والعديد من الآراء. ولكن هذا هو المكان الذي تكمن فيه القوة الأساسية للإطار - في النقاش الصحي والتنفيذ وتقديم الحلول المختبرة.

توثيق.

المكتبة موثقة جيدًا [4]. من التعليمات البرمجية المصدر أو أدلة أو محادثات قناة الركود - يمكنك العثور على إجابة لسؤالك. والأفضل - إنه يؤخذ على محمل الجد. يتم إصدار الوثائق ، والمحادثات المجتمعية على Github شاملة ، وقد قام الفريق الأساسي بتنفيذ إرشادات تساعد في تنفيذ هذا الإجراء القياسي في نظام الملحق الشامل الخاص به.

الانتقادات الشائعة للإمبر.

ذلك ليس لطيفا.

حسنًا ، إنها - هناك مجموعة من الميزات في الإطار أراهن أنك تريد استخدامها. على سبيل المثال ، تنفد خرائط المصدر خارج الإطار - مما يعني أنه يمكنك استخدام أدوات مطوري Chrome لإنشاء التطبيق على نطاق واسع.

قد لا تكون تفضيل الاستقرار مبهرجًا إذا كنت تبدأ ، وقد يزعجك أن Ember لا يتيح لك كسر الأشياء. اعتدنا أن نفعل ذلك ، ولم يكن الأمر ممتعًا.

والخبر السار هو أنه يمكن سماع صوتك. لدى Ember عملية RFC منظمة لمناقشة التغييرات الرئيسية في الإطار. يمكنك التعرف على التغييرات قبل حدوثها ، أو إعطاء سنتين أو إنشاء RFC الخاص بك لتلقي التعليقات.

منحنى التعلم حاد.

يتكون Ember من العديد من العناصر المهمة التي تساعد على تسهيل عملية تطوير التطبيق. على سبيل المثال ، يتم إجراء التوجيه ، والنشر ، والاختبار الآلي. وهذا يعني ، ليس فقط أنك سوف تحتاج إلى معرفة أنماط التصميم الموصى بها من Ember - ولكن ستحتاج إلى معرفة الجوانب الأخرى لشحن برامج العمل الجيدة.

هذا يجعل منحنى التعلم حادًا بعض الشيء ، لأنه يوجد أكثر من مجرد تعلم تكوين مكونات للطبقة المرئية. تم استخدام الجدال الدائر حول منحنى التعلم الحاد من Ember ضده ، لكنني أتحدى ذلك بحقيقة أنك ستحتاج في النهاية إلى تعلم هذه الجوانب الأخرى من التطوير مع تزايد احتياجاتك إلى ما وراء طبقة العرض.

لاحظ أن هذا لفت انتباه الفريق الأساسي ، وهناك حركة كبيرة لتبسيط الأمور لضمان تبسيط حاجز الدخول. على سبيل المثال ، الانتقال إلى فئات JavaScript ، وإزالة الحاجة إلى this.get و this.set ، وقد تم اقتراح المزيد لإزالة أكبر مصادر الارتباك لمطوري JavaScript.

الأم ليس المواطن الأساسي.

Ember هو إطار عمل ملتزم بهندسة التطبيقات ذات الصفحة الواحدة (SPA). الفوائد التي تحصل عليها من SPA هي فوائد Ember. نظرًا لأن SPA ليس مفهومًا للتطبيقات الأصلية ، فإن Ember غير مناسب للمواطنين الأصليين.

ضع في اعتبارك Ember يتقدم مع تطبيقات الويب المتقدمة. لذلك إذا كان هذا هو الخيار الذي ترغب في النظر فيه ، فتحقق من إنشاء تطبيق ويب تقدمي باستخدام Ember بواسطة mixonic.

لماذا يجب عليك اختيار Ember.

يتم استخدام Ember في عالم بدء التشغيل وعلى مستوى المؤسسة. هناك العديد من التطبيقات التي أثبتت قدرتها على التكيف مع الوقت. يتم استخدامه في العديد من الصناعات وقد أثبتت قوتها بسرعة وفعالية. ساعدت Ember الشركات في شحن قيمة واستقرار فرق التطوير.

انطلاقًا من منظور هندسة البرمجيات ، فإن استقرار الفريق يستحق أكثر من أي شيء آخر عملت عليه. عندما تتمكن من العمل في فريق ومشاركة نفس اللغة دون أي لبس يذكر حول التقنيات ، فإن الفريق ينمو ويصبح أكثر قيمة من المنتج الفعلي.

من منظور المنتج ، يمكنك رؤية تقدم سريع. في الواقع ، إذا كانت الأداة التي اخترتها تمنحك القدرة على التكرار بسرعة على الميزات وتنفيذ الملاحظات في وقت قليل أو بلا وقت - يبدو لي أن هذا هو الأداة المناسبة لهذا المنصب.

وفي النهاية من منظور الأعمال ، كلما كان من الممكن إضافة قيمة إلى المنتج الخاص بي كلما كان ذلك أفضل.

إذا كنت تريد أن يكون فريقك أكثر إنتاجية ورضا أثناء تقديم القيمة ، فعليك التفكير في اختيار Ember. إذا كنت لا تزال مترددًا ، فلا تتردد في التواصل معي على Twitter علىalvincrespo ، فأنا سعيد جدًا بمساعدتك في اكتشاف أفضل أداة لهذا المنصب.

شكر.

شكرا لكل من ساعدني في كتابة هذا المنشور. إن وقتك وجهدك موضع تقدير كبير وآمل أن تعكس كلماتي هنا رأيك بشكل صحيح.

ملاحظات.

[1] يعتمد تطبيق إنشاء رد فعل (CRA) قليلاً على نفس فلسفة ember-cli. توفر CRA تجربة مبدئية في إنشاء تطبيق ، ولكن بمجرد تجاوز احتياجاتك لأهداف هذا المشروع - أنت وحدك. من ناحية أخرى ، يوفر ember-cli نظامًا إيكولوجيًا إضافيًا يمنحك القدرة على الربط مع CLI لتخصيص تصميماتك.

[2] ember-qunit هو عداء الاختبار الافتراضي ، الذي لا يتطلب أي تهيئة مسبقًا

[3] أمثلة على المحادثات الشفافة:

  • https://github.com/emberjs/rfcs/pull/176
  • https://github.com/emberjs/rfcs/pull/240

[4] أمثلة على الوثائق:

  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-runtime/lib/mixins/observable.js#L96
  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-routing/lib/system/route.js#L1458