أثناء محاولة بناء مشروع برمجي كامل، فأنت ستضيف العديد من البرمجيات الخارجية لمشروعك البرمجي، فلا يمكنك حاليا إنجاز مشروع برمجي ( و سنحدد مجال تطوير تطبيقات الويب في هذا المقال كمثال ) لا يمكنك إنجازه بما توفر من لغات أساسية و أصلية في المجال مثل Html, Css, Js, Php، لا بد ان تستعين بمنصات و مكتبات و فريمووركات خارجية لتسهيل الأمر عليك، مثل Bootstrap في الـ Front End او FontAwesome او ربما Angular و غيرها .
بغض النظر عن مسألة توافق الإطارات فيما بينها و لغات البرمجة، فأنت في مشروع برمجي ستضيف العديد من البرمجيات الخارجية من أجل تشكيل برمجية نهائية، ستستشغل بالعديد من الـ API’s و العديد من الـ Framworks و غيرها، فكيف يمكنك إدارة كل هذه الأمور دفعة واحدة؟ خصوصا ان كثرتها و إضافتها بشكل كامل في برمجياتك قد يسبب ثقل مشروعك البرمجي ؟
– ما هو الـ Package Manager :
من هذا المنطلق ظهر الـ Package Manager، يمكننا ان نقول انها نظام او برمجية محددة تقوم بإدارة كل البرمجيات الخارجية الأخرى في مشروعنا البرمجي، فنحن غير مضطرين في كل مرة بالبحث عن CDN الخاص ببرمجية معينة او تحميلها ثم إدراجها بشكل يدوي و ما الى ذلك، يكفي ان تكون تلك البرمجية مُدعمة من طرف الـ Package Manager الذي نحن بصدد العمل عليه، ثم تحميلها بواسطة ذلك الـ Package Manager و تلقائيا سيتم إضافتها للمشروع .
ليس هذا فقط، بل يمكن التحكم في تحديثاتها أيضا، إذ يساعدك الـ Package Manager على تحديث كل برمجياتك بكود واحد فقط، و يساعدك على ضبط توافق البرمجيات في مشروعك، و يساعدك أيضا على حذف البرمجيات الأخرى الغير مستخدمة في المشروع، و ذلك من أجل تنظيم أكبر و اكثر إحترافية لمشروعك البرمجي .
– ما دور الـ Package Manager في المشروع البرمجي ؟
الـ Package Manager يقوم بإدارة كل الموارد الخارجية لك في مشروعك، من إضافة موارد خارجية و إطارات و فريمووركات و حتى المكتبات مفتوحة المصدر التي تجدها على Github و تريد تضمينها في مشروعك، يمكنك فعل كل ذلك بسطر Console واحد ( في جميع المنصات )، يمكنك كذلك حذف الموارد الخارجية في حالة عدم إحتياجها، كما يمكنك تحديث كل الموارد لآخر الإصدارات دفعة واحدة .
لكن الاهم في كل هذا، هو تجميعها كلها و تشغيلها بدون مشاكل، فأحيانا تضيف مكتبات و إطارات و موارد خارجية و لا تدري ان كانت تشتغل ام لا، فتقوم بعمل بعض الـ Tests و ترى ان إدراجها تم بشكل صحيح لكنها غير شغالة لأسباب اخرى، ثم تقضي ساعات في محاولة معرفة السبب .
لا لا، بل يوجد أفضل، ماذا لو أخيرا إنتهيت من المشروع بإضافة و لنقل 7 مكتبات خارجية و أردت نقله لسيرفر خارجي و رفعه على إستضافة، سيتوجب عليك مجددا رفع كل تلك المكتبات و تغيير الـ URL الخاص بها في حالة إدراجها بطرق معينة ( مثل إدراجها عن طريق الـ Enques في الـ WordPress ) مما سيضعك أمام عائق تعديل و إعادة هيكلة ملفات المشروع .
اترى كم ستسهل عليك الـ Package Manager الامر ؟
للـ Package Managers أنواع و إختلافات كذلك و مجال إستخدامها، إليك بعضا منها :
– الـ Composer
– الـ Gems
– الـ npm
– الـ Pip