الوحدات والحزم (Modules)

مقدمة

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

الوحدة (module)

هي عبارة عن ملف برمجي يمكن استدعاؤه داخل مشروعنا البرمجي

في المثال في مقدمة الدرس، الملف الذي يحتوي على الدالة التي نريد استخدامها أكثر من مرة في مشروعنا يُسمى بوحدة (module)

الحزمة (package)

الحزمة هي عبارة عن عدد من الوحدات (modules) مرتبطة مع بعضها لتؤدي دور معين أو مهمة معينة، فمثلاً يمكننا انشاء حزمة عبارة عن عدد كبير من الدوال التي تساعدنا في التعامل مع الوقت! وهكذا....

تُجمّع وحدات الحزمة في مجلد (directory / folder) واحد حيث تكون منغلقة على نفسها...

يختلف اسم الحزمة حسب استخدامها، فأحيانا يُطلق على الحزمة مكتبة (library) وأحياناً إطار عمل (framework) وأحيانا أداة.. الخ، فيختلف المُسمى حسب حجم واستخدام الحزمة وما تحتويه

الحزم المدمجة بكل لغة (built-in)

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

  • حزمة التعامل مع العمليات الحسابية المتقدمة (Math)
  • حزمة التعامل مع التواريخ واﻷوقات (Date and time)
  • حزمة التعامل مع الملفات (Files)
  • حزمة التعامل مع قواعد البيانات (Database)
  • حزمة التعامل مع الشبكة (Network)

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

مكتبات خارجية

يمكن ﻷي مبرمج إنشاء مكتبة ومشاركتها مع المبرمجين الأخرين، وهذا من أهم مفاهيم البرمجة وأحد أهم أسباب التطور الشديد للبرمجة... فاللغة تأتي باﻷساسيات التي تُمكنك من كتابة أي برنامج، وببعض الدوال والحزم المدمجة فيها لتُسهل عليك بعض اﻷمور لكن هناك الكثير جداً من اﻷمور التي لن تجدها مُدمجة في اللغة وستحتاج لإنشاءها بنفسك لاستخدامها، ولكن ﻷن المجتمع البرمجي مبني على التعاون؛ تجد الكثير من المبرمجين غيرك احتاجوا لما تحتاج له اﻵن في مشروعك وقد أنشأوا مكتبة / حزمة تؤدي الغرض ونشروها ليستخدمها أي مبرمج آخر إذا احتاج لها، ومن هنا تطور التقنيات واللغات وتظهر تقنيات جديدة قوية جداً مبنية على هذا المبدأ... لذلك يجب وبشدة تعلم كيفية البحث عن هذه المكتبات واستخدامها حسب الحاجة، ومن هنا يأتي دور مدير الحزم (Package Manager)

مدير الحزم (Package Manager)

ما هو مدير الحزم؟

مدير الحزم هو برنامج يساعد المبرمجين على مشاركة الحزم وتسهيل تنزيلها واستخدامها في المشروع، وإدارتها وتنظيمها.

وستجد ﻷي لغة برمجة مجتمع من المبرمجين خاص بيها، ولكل لغة مدير حزم خاص بيها يعتمد عليه مجتمعها البرمجي في مشاركة الحزم ونشرها .. الخ

جافاسكريبت لديها مدير حزم يُسمى NPM يمكنك البحث عنه على جوجل وتجربته.

مدير الحزم وسطر اﻷوامر (CLI)

مدير الحزم هو برنامج كأي برنامج يجب تثبيته على النظام لاستخدامه، لكن ﻷن مدير الحزم ليس موجه للمستخدم العادي بل موجه للمبرمجين، فإن واجهته ليست واجهة رسومية (GUI) يعني ليست أزرار وصور ..الخ كواجهة أي برنامج، ولكن واجهته هي واجهة سطر اﻷوامر (CLI) وبالتالي لاستخدامه يجب تعلم سطر اﻷوامر وفهم كيفية التعامل معاه، وسطر اﻷوامر هو رفيق المبرمج عموما ومن أهم مساعديه لذلك إتقانه هو شيء أساسي لأي مبرمج.

يمكنك البدء في تعلم سطر اﻷوامر، ابحث على جوجل عن "سطر الأوامر" أو "تعلم سطر اﻷوامر" ستجد له دورات وفيديوهات ومقالات كثيرة تشرح أهميته واستخدامه...

المساهمين

وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github