Site Message

المكتبات و إطارات العمل .. ما الفرق بينهما ( Libraries VS Frameworks )


في مجال البرمجة كثيرا ما نسمع مصطلح المكتبات Libraries و إطارات العمل Frameworks ويتم استخدام المصطلحين تقريبا بشكل تبادلي فهل هما نفس الشيء أم أن هناك فرق ؟ وما هو ؟؟

أولا دعني أوضح أن كلا المصطلحين هما مجموعة من اﻷكواد الخارجية ( أكواد مكتوبة بواسطة مبرمجين آخرين ) غرضها تقديم حل سهل لمشكلة عامة. وهذا هو أكبر وجه للشبه بين المكتبات_و_إطارات_العمل.

ما هي المكتبات Libraries

هي مجموعة من العناصر Objects و الدوال Functions تمت كتابتها بعناية و تم جمعها في مكان واحد بحيث يسهل إدراجها في كودك البرمجي وتستطيع استدعاء وتطبيق هذه العناصر و الدوال بسهولة.


بصفة عامة , ﻷن المكتبات البرمجية مكتوبة بواسطة آخرين فغالبا ما يرفق معها توثيق جيد documentation بحيث يستطيع أي مبرمج آخر أن يستخدم هذه المكتبات و يدرجها ضمن برمجياته بسهولة و بشكل سليم.

وبصفة عامة أيضا تكون المكتبات موجهة لعلاج مشكلة واحدة محددة أو مجموعة مشاكل مرتبطة ببعضها ببعض.

ومن أشهر المكتبات البرمجية

مكتبة GD المتخصصة في التعامل مع الصور , ومكتبة FFMPEG المتخصصة للتعامل مع ملفات الفيديو , كذلك مكتبة jQuery في الجافا اسكربت المتخصصة للتعامل مع الـ DOM

ما هي إطارات العمل Frameworks

على الجانب اﻵخر نجد إطارات العمل عبارة عن أنظمة متكاملة توفر لك إمكانية إنشاء برنامجك الخاص المبني عليها " وفق ضوابطها وقواعدها " , فإطار العمل يوفر لك مجموعة متكاملة من المكتبات واﻷدوات التي تختصر عليك الكثير جدا من الوقت والجهد لكتابة كودك الخاص , ولكنه أيضا يلزمك بطريقة معينة لكتابة كودك الخاص وكيفية ربط عناصره ببعضها البعض.


ومن أشهر إطارات العمل

في لغة الـ PHP نجد لارافيل Laravel و كود اجنيتر Codeigniter و YII وغيرهم
أما في لغة الجافا اسكربت فنجد ريأكت React.js و فو Vue.js و أنجلر Angular
و في لغة البايثون أشهر إطار لتطوير الويب جانجو Django

لاحظ الفرق بين المكتبات و إطارات العمل ( Libraries VS Frameworks )

[1]. في المكتبات أنا أحدد لك العناصر و الدوال وكيفية طلبها , لكني اترك لك تماما الحرية في طلب أي عنصر أو دالة منها في أي وقت وبأي طريقة ممكنة داخل كودك البرمجي

أما في إطار العمل , أنا أحدد لك كيفية كتابة و تنظيم كودك البرمجي , وكيف تستطيع ربط عناصر الكود بعضها ببعض , وأوفر لك مجموعة ضخمة من المكتبات و اﻷكواد الجاهزة لكني أحدد لك كيف تطلبها ومتى تستطيع طلبها 😁.

[2]. كذلك تجد أنك تستطيع في المشروع الواحد أن تعتمد على العديد من المكتبات المختلفة , لكنك لن تتمكن من استخدام أكثر من إطار عمل لنفس المشروع , فكل إطار عمل يفرض عليك تصوره لخطة التطبيق وهو تصور مختلف من إطار عمل ﻵخر , فضلا ﻷنك لن تعرف من تجعل إطار العمل الرئيسي و كيف تضمن داخله اﻹطار اﻵخر.
ما هي المكتبات Libraries

[3]. المكتبات تساعدك في حل مشكلة أو تنفيذ مهمة معينة , بينما إطار العمل هدفه مساعدتك ﻹخراج وتنفيذ برنامجك بالكامل

[4]. أنت تستطيع في أي وقت استبدال المكتبات التي يعتمد عليها برنامجك بمكتبات أخرى بسهولة وبدون أن تضطر ﻹعادة كتابة برنامجك من البداية , أما إذا كان برنامجك مبني على إطار عمل معين و قررت بعد ذلك تغيير إطار العمل سيتعين عليك إعادة كتابة برنامج بالكامل من البداية وفقا لتصور وخطة عمل اﻹطار الجديد.

[5]. المكتبة تعتبر أداة تعتمد عليها , لكن إطار العمل يعتبر طريقة تنفيذ وكتابة البرنامج.

[6]. ختاما تستطيع القول أن كودك الخاص يمكن أن يتضمن مكتبات برمجية داخله , أما إذا كنت ستبني كودك داخل إطار عمل فإن إطار العمل هو الذي يتضمن كودك الخاص داخله 😂.

ومن أشهر المكتبات البرمجية
AlAmlak alsouti وأفهم ي فهيم😜