منذ وقت ليس ببعيد ، سألني مستخدم الإنترنت عن استخدام المتطلبات والبحر على الواجهة الأمامية. سألته عما إذا كان لشركتك مكتبة JavaScript أو إطار عمل JavaScript الذي كتبه من قبل. لم يكن إجابته شيئًا. لقد سمع للتو أن المتطلبات JS و Seajs هي أشياء جديدة وتقنيات جديدة ، وهي ذات قيمة كبيرة ، لذلك أراد استخدامها.
جعلتني مشكلة مستخدمي الإنترنت في التفكير في تقنية تحميل وحدة JavaScript. في المقال الأخير ، أعطيت الهيكل الأساسي لمكتبة JavaScript التي كتبتها. في الواقع ، أحد أسباب كتابة هذا المقال هو أنني أريد استخدام التكنولوجيا مثل requirejs أو seajs لإعادة تصميم النموذج الأساسي لمكتبة JavaScript الخاصة بي. بعد أن تعرفت على هذه التكنولوجيا بعمق ، وجدت أن استخدام نظام تحميل الوحدة النمطية لحل مشكلة فك الرمز الشائع ورمز العمل في مكتبة JavaScript غير صحيح. يتمثل نطاق نظام تحميل الوحدة النمطية في حل مشكلة التبعية بين مكتبات JavaScript المختلفة ، بدلاً من مساعدتك في كيفية تطوير مكتبة JavaScript.
إذن ما هو نظام تحميل وحدة JavaScript؟
يستخدم نظام الوحدة النمطية بشكل أساسي لحل مشكلة تعارض التسمية لكائنات التشغيل في مكتبات JavaScript المختلفة ومشكلة التبعية بين مكتبات JavaScript المختلفة. يهدف نظام تحميل الوحدة إلى تطبيقات كبيرة على شبكة الإنترنت أو تطبيقات واجهة الويب العملاقة على شبكة الإنترنت.
بشكل عام ، في صفحات تطبيقات الويب العملاقة على الويب ، تحتوي الصفحة على وظائف غنية للغاية وأعمال معقدة. علاوة على ذلك ، مع مرور الوقت ، غالبًا ما تتغير وظائف الصفحة ، مما يؤدي إلى تطوير المطورين الأماميين في كثير من الأحيان وحدات وظيفية للوظائف الجديدة. ومع ذلك ، فإن الوظائف بين الوحدات الوظيفية المختلفة في العمل الفعلي قد تخترق بعضها البعض ، وتعتمد على بعضها البعض ، ولها علاقات معقدة. عندما تكون الصفحة معقدة ، سيكون من الصعب إدارة العلاقة بين كل مكتبة أمامية والتحكم فيها ، وسيكون نظام تحميل الوحدة في متناول اليد في هذا الوقت.
بالنسبة لمعظم المبرمجين ، لا توجد العديد من الفرص لتحمل هذا التطبيق الأمامي الكبير على شبكة الإنترنت بشكل مستقل ، وهناك العديد من الفرص لتطوير تطبيقات ويب صغيرة ومتوسطة الحجم. على سبيل المثال ، مشاريع الويب على مستوى المؤسسة ، هناك أنواع قليلة جدًا من مكتبات JavaScript المستخدمة في مثل هذه المشاريع ، ومن السهل التحكم في تبعيات كل مكتبة ، لذلك ليست هناك حاجة لإدخال أي نظام لإدارة الوحدة النمطية. حتى صفحات الويب الخاصة بالعديد من شركات الإنترنت الصغيرة والمتوسطة الحجم ليست معقدة مثل صفحات تطبيق الويب على مستوى المؤسسة ، وبالتالي فإن العلاقة بين وحداتها أو مكتبات JavaScript سهلة الإدارة. في الواقع ، فإن التطبيقات الصغيرة والمتوسطة أعلاه كلها لسيناريوهات معينة أو محددة. لذلك ، أعتقد شخصياً أنه في مواجهة مشاريع الواجهة الأمامية لهذه الويب ، يمكننا أخيرًا تشكيل مكتبة JavaScript مستقلة. يجب أن تكون خصائص هذه المكتبة مشابهة لنوع المكتبة: مكتبة رئيسية بالإضافة إلى العديد من المكتبات المكونات. الغرض من المكتبة الرئيسية هو حل مشكلة العمومية ، ويجب إعادة استخدامها والهجرة. غالبًا ما يرتبط الغرض من مكتبة المكونات برمز العمل. ومع ذلك ، من أجل التمييز بين نطاق المكتبة الرئيسية ومكتبة المكونات الإضافية ، أضفت وظيفة مساحة الاسم إلى المكتبة.
تقنية تحميل وحدة JavaScript وتكنولوجيا Hadoop لها بعض أوجه التشابه ، أي أنها تقنيات للأنظمة الفائقة ، ولا يمكنها إلا أن تلعب دورها في ظل ظروف معينة. لذلك ، يتم إطلاق هذه التقنيات من شركات الإنترنت الكبيرة ، لأن شركات الإنترنت الكبيرة يجب أن تحل المشكلات بعد أن تصبح تطبيقاتها أكبر وأكثر تعقيدًا. عندما لا يزال نظامك في مهده ، يجب أن تكون حذرًا في استخدام هذه التقنيات. يجب أن نجد أبسط طريقة وأكثر فعالية لحل مشاكلنا الفعلية. إذا كنت تعتقد أن هذا النظام سيصبح أكبر في المستقبل ، فيجب عليك الاحتفاظ بالواجهة لاستخدام هذه التقنيات في المستقبل. إذا تم استخدامه في وقت مبكر جدًا ، فمن المحتمل جدًا أنه عندما يتوسع مقياس النظام ، ستكون تكلفة إعادة تمثيل الكود أعلى.
بالنسبة لأنظمة تحميل الوحدة النمطية ، فإن السيناريو الأكثر ملاءمة هو حل مشكلة الفصل بين وحدات التطبيقات الأمامية الكبيرة على شبكة الإنترنت. إذا كتبنا ملف JavaScript الجديد واستخدمنا تقنية تحميل الوحدة النمطية على الفور ، فهذا ليس قليلاً من التكنولوجيا المعاملة. قبل استخدام تقنية معينة ، يجب ألا نفكر فقط في كيفية استخدامها أو كيفية استخدامها ، ولكن يجب أن نفكر أيضًا فيما إذا كان من المهم استخدامها.
أخيرًا ، أود أن أقول إنني أعتقد أن الطرفية الأمامية الصغيرة والمتوسطة الحجم تستخدم لنشر الإنتاج. نظرًا لأن JavaScript ليس الأكثر تعقيدًا ، فمن الأفضل حزم جميع ملفات JavaScript الخارجية في ملف خارجي JavaScript. هذه الميزة هي أنها تقلل من عدد طلبات HTTP. سيؤدي استخدام تقنية تحميل الوحدة النمطية إلى جعلها مزعجة للغاية في حزم الملفات ، وحتى لا يمكن القيام بها (تعتمد جميع الوحدات مثل requirejs و seajs على الملفات ، وكل وحدة عبارة عن ملف مستقل) ، وهو ما يتعارض مع حل الغرض من تقليل HTTP.