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



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



إذا لم تتمكن من التغلب عليهم ، انضم إليهم ...


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

بمجرد أن بدأت التعلم عن الملحن و npm أدركت مدى قوتها. بدلاً من قضاء ساعات من وقتي في حل مشكلة ، يمكنني استخدام حزمة من شأنها أن تفعل شيئًا أحتاجه. يمكنني الاعتماد على ما قام به شخص آخر ومواصلة تطوير حلول أسرع.
بمجرد اعتيادى على فكرة سحب الحزم في مشروعي ، لم يكن هناك ما يوقفني . لماذا يجب أن أقضي وقتًا في كتابة وظيفة لأفعل ما أحتاج إليه عندما أتمكن من سحب مكتبة للقيام بذلك من أجلي؟ ميزة Z تبدو صعبة بعض الشيء لتطويرها ، يمكنني فقط سحب الحزمة A وكلها ستكون جيدة.
التبعية جحيم
لكن النتيجة النهائية لم تكن كما كنت أتوقع. بدلا من أن أكون في سماء المطورين ، كنت في جحيم التبعية.
كان مجلد البائع ضخمًا ، وكان مجلد وحدات العقدة الخاص بي عبارة عن ثقب أسود من التبعيات العودية وكان مشروعي يحتوي على العديد من الحزم المتضمنة ، حيث كان منتفخًا بدرجة لا تصدق ، مع وجود ملف JavaScript ضخم ، على الرغم من العديد من محاولات التصغير.
لقد كنت جشعًا ، كسولًا وغير مسؤول ، أحاول أخذ العديد من الاختصارات قدر الإمكان لجعل حياتي أكثر سهولة ، لكن هذه الطريقة جعلت الأمر أكثر صعوبة.
العثور على الأرض الوسطى
لذلك أدركت أنه يجب أن يكون هناك حل وسط .  في مكان ما أجد فيه حزمًا أساسية وأفكر جيدًا في الأمور الأخرى التي أدرجها. لقد تعلمت الكثير عن جافا سكريبت وأدركت أن العديد من مطوري الحزم يعملون بجد للسماح لك فقط بسحب حزمها التي تريدها.
لا تحتاج إلى سحب الحزمة بالكامل إذا كنت تريد ميزة واحدة فقط . ما عليك سوى استيراد الميزة التي تحتاج إليها في ملف JavaScript المترجم الخاص بك حتى لا تضطر زوار موقعك إلى تنزيل رمز لن يتم تشغيله أبدًا.
اعتدت على استخدام Foundation by Zurb وكانت عادتي هي تضمين مكتبة JavaScript المترجمة الخاصة بها فقط في حال احتجت إلى كل ميزة في وقت ما في المستقبل ، ولكن بعد ذلك أدركت أنه إذا كان المشروع الذي كنت أعمل عليه يحتاج فقط إلى أكورديون ، فإني فقط في حاجة إلى حزمة الأساسية وحدات الأكورديون جافا سكريبت. يمكنك بعد ذلك إضافة وحدات إضافية عند الحاجة إليها.
يقدم مديرو الحزم مثل الملحن و npm أيضًا تسهيلات توفير التبعيات إما كإنتاج أو تطوير ، مما يعني أنه يمكنك تحديد ما ينبغي سحبه من أجل التنمية المحلية الخاصة بك فقط وأيها مطلوبة فقط للإنتاج. مثال على ذلك هو phpunit. لا تريد ذلك على خادم الإنتاج الخاص بك ، فقط في بيئة التطوير المحلية التي تدير فيها الاختبارات ، لذلك فقط أضفها إلى قسم require-dev في الملحن الخاص بك.
أعتقد أن الجميع بحاجة إلى معرفة مدى فائدة مديري الحزم والتبعية ، ولكن أيضًا لقضاء بعض الوقت في التعرف على أفضل الطرق لاستخدامهم ، وما إذا كنت تحتاج حقًا إلى تضمين الحزمة بأكملها أو قضاء بعض الوقت في اختيار الميزات فقط تحتاج إلى تضمين .
Share To:

محمد حسن

Post A Comment:

0 comments so far,add yours