اختيار مكتبة أو إطار عمل JavaScript

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

ما هي مكتبات وأُطر عمل JavaScript؟

ما هي مكتبة JavaScript؟ بأبسط شكل، مكتبة JavaScript هي رمز مكتوب مسبقًا يمكنك استدعاؤه في رمز مشروعك لإنجاز مهمة معيّنة.

يذكر هذا المنشور بشكل أساسي "المكتبات". ومع ذلك، فإن العديد من المناقشات تنطبق أيضًا على أطر العمل. بشكل أساسي، يمكن تلخيص الفرق بين الاثنين على النحو التالي:

  • بالنسبة إلى المكتبة، يستدعي الرمز البرمجي للتطبيق رمز المكتبة.
  • بالنسبة إلى إطار العمل، يتم استدعاء الرمز البرمجي للتطبيق من خلال إطار العمل.

تساعد الأمثلة العملية التالية في توضيح الاختلافات.

مثال على استدعاء مكتبة JavaScript

تنفّذ مكتبة JavaScript مهمة محدّدة ثم تعيد التحكّم إلى تطبيقك. عند استخدام مكتبة، يمكنك التحكّم في مسار التطبيق واختيار وقت استدعاء المكتبة.

في المثال التالي، يستورد الرمز البرمجي للتطبيق طريقة من مكتبة lodash. بعد اكتمال الدالة، يتم إرجاع عنصر التحكّم إلى تطبيقك.

import capitalize from 'lodash.capitalize';
capitalize('hello'); // Hello

عند تنفيذ طريقة lodash.capitalize، يتم استدعاء رمز JavaScript مكتوب مسبقًا يكتب الحرف الأول من السلسلة بأحرف كبيرة.

مثال على استخدام إطار عمل JavaScript

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

يعرض المثال التالي مقتطف رمز يستخدم إطار عمل JavaScript من Preact:

import { createElement } from 'preact';

export default function App() {
  return (
    <p class="big">Hello World!</p>
  )
}

في المثال، لاحظ أن إطار العمل لديه تحكم أكبر بكثير في الكود الذي تكتبه، وفي بعض الحالات، يتحكم إطار العمل في وقت تنفيذ الكود الخاص بك.

لماذا نستخدم مكتبة؟

يمكن أن يساعد استخدام مكتبة JavaScript في تجنُّب تكرار الرموز غير الضروري. يمكن للمكتبات تبسيط المنطق المعقّد، مثل معالجة التواريخ أو العمليات الحسابية المالية. يمكن أن تساعد المكتبة أيضًا في إخراج منتجك الأولي، بدلاً من الاضطرار إلى كتابة كل التعليمات البرمجية من البداية، الأمر الذي قد يستغرق وقتًا.

تساعد بعض مكتبات JavaScript من جهة العميل في تجنُّب المشاكل غير المعتادة في منصة الويب. يمكن أن تكون المكتبة أيضًا أداة تعليمية. على سبيل المثال، إذا لم تكن على دراية بدوال تسهيل الحركة، يمكن أن يوضّح لك الرمز المصدر للمكتبة كيفية عمل هذه الدوال.

تحظى بعض المكتبات بدعم من شركات كبيرة تستثمر الوقت والمال في الحفاظ على تحديث المكتبات وأمانها. تتوفّر مع العديد من المكتبات مستندات شاملة تتيح لك ولفريقك التعرّف بسرعة على كيفية استخدام المكتبة.

في النهاية، يوفّر لك استخدام مكتبة JavaScript الوقت.

لماذا يجب أن تهتم باستخدام المكتبة؟

من الناحية الفنية، يمكنك تطوير تطبيق الويب من البداية، ولكن لماذا تواجه مشكلة عندما يمكنك استخدام برامج مجانية (مفتوحة المصدر)، أو شراء حل يمكنه، على المدى الطويل، توفير الوقت والمال؟ تتوفّر مجموعة كبيرة من مكتبات وأُطر عمل JavaScript، ويقدّم كل منها نهجًا فريدًا لحلّ المشاكل، ولكل منها خصائص مختلفة. على سبيل المثال:

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

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

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

الأداء

يجب عدم تجاهل تأثير أداء مكتبة JavaScript على تطبيق ويب من جهة العميل. يمكن أن تؤدي مكتبة JavaScript الكبيرة إلى تعطيل أداء تحميل صفحتك، وتذكَّر أنّ الأجزاء من الثانية يمكن أن تحقّق الملايين.

لنفترض أنّك تستخدم مكتبة JavaScript للصور المتحركة. يمكن لبعض المكتبات إضافة عشرات الكيلوبايت بسهولة، وفي بعض الحالات، مئات الكيلوبايت. يمكن أن تؤدي موارد JavaScript مثل هذه إلى تأخير كبير في تحميل صفحتك لأنّ المتصفّح يحتاج إلى تنزيل الرمز وتحليله وتجميعه وتنفيذه.

وكلما زاد حجم مكتبة JavaScript، زاد تأثير الأداء في المستخدمين.

عند تقييم أو استخدام مكتبة أو إطار عمل JavaScript، ننصحك باتّباع الاقتراحات التالية لتحسين الأداء:

  • إذا كانت مكتبة JavaScript كبيرة، ننصحك باستخدام بديل أصغر حجمًا. على سبيل المثال، توفّر date-fns الكثير من الوظائف بحجم معقول أكثر من بعض الخيارات الأخرى.
  • استنادًا إلى مثال date-fns السابق، استورِد الدوال التي تحتاج إليها فقط، مثل: import { format } from 'date-fns'. احرص على دمج هذا النهج مع تقنية Tree Shaking، بحيث يتم إنشاء الحد الأدنى من حمولة JavaScript وإرسالها إلى المستخدمين.
  • استخدِم أدوات اختبار الأداء، مثل Lighthouse، لمراقبة تأثير استخدام مكتبة JavaScript معيّنة في الأداء. إذا كانت إحدى المكتبات تضيف تأخيرًا لمدة ثانية واحدة إلى وقت تحميل الصفحة (لا تنسَ تقييد الشبكة ووحدة المعالجة المركزية أثناء الاختبار)، قد تحتاج إلى إعادة تقييم المكتبة التي اخترتها. بالإضافة إلى التحقّق من تحميل الصفحة، تأكَّد من تحليل سلوك أي صفحة ويب تستدعي رمزًا من المكتبة المعنيّة، لأنّ أداء تحميل الصفحة لا يقدّم صورة كاملة.
  • إذا كان مؤلف المكتبة يرحب بالتعليقات، فأرسل ملاحظاتك واقتراحاتك وحتى مساهماتك في المشروع. هنا يبرز دور منتدى البرامج المفتوحة المصدر. إذا قررت تقديم مساهمة، فقد تحتاج إلى مراجعة صاحب العمل أولاً.
  • استخدِم أداة تتبُّع حِزم مبرمَجة، مثل bundlesize، لمراقبة التحديثات الكبيرة غير المتوقّعة في المكتبة. من الشائع أن تنمو مكتبة JavaScript بمرور الوقت. يمكن أن تؤدي الإضافات إلى الميزات وإصلاحات الأخطاء والحالات الهامشية وغيرها إلى زيادة حجم ملف المكتبة. بمجرد موافقتك أنت/فريقك على استخدام مكتبة، قد يكون تحديث المكتبة أقل مشكلة وقد يثير أسئلة قليلة أو معدومة. هنا يأتي دور الأتمتة.
  • اطّلِع على متطلباتك الخاصة بالمكتبة وقيِّم ما إذا كانت منصة الويب توفّر الوظيفة نفسها بشكلٍ أصلي أم لا. على سبيل المثال، توفّر منصة الويب حاليًا علبة ألوان، ما يغني عن استخدام مكتبة JavaScript تابعة لجهة خارجية لتنفيذ الوظيفة نفسها.

الأمان

ينطوي استخدام وحدة تابعة لجهة خارجية على بعض المخاطر الأمنية المتأصلة. فالحزمة الضارة ضمن قاعدة الرموز البرمجية لتطبيق الويب يمكن أن تعرّض أمان فريق التطوير والمستخدمين للخطر.

لنفترض أنّ هناك مكتبة منشورة في منظومة NPM المتكاملة. قد تكون هذه الحزمة شرعية. ومع ذلك، بمرور الوقت، يمكن أن تتعرض الحزمة للاختراق.

في ما يلي بعض النصائح المتعلّقة بالأمان التي يجب مراعاتها عند استخدام رمز برمجي تابع لجهة خارجية أو تقييمه:

  • إذا كنت تستخدم GitHub، ننصحك بالاطّلاع على عروض أمان الرموز البرمجية، مثل Dependabot. أو يمكنك استخدام خدمات بديلة تبحث عن الثغرات الأمنية في الرمز البرمجي، مثل snyk.io.
  • يمكنك الاستعانة بخدمات تدقيق الرموز، وهي فريق من المهندسين الذين يمكنهم تدقيق الرموز التابعة لجهات خارجية التي تستخدمها يدويًا.
  • قيِّم ما إذا كان عليك قفل التبعيات على إصدار معيّن أو تنفيذ رمز الجهة الخارجية ضمن نظام التحكّم في الإصدارات. يمكن أن يساعد ذلك في قفل التبعية على إصدار واحد معيّن، يُفترض أنّه آمن. ومن المفارقات أنّ ذلك قد يؤدي إلى تأثير معاكس في ما يتعلّق بالأمان، لأنّك قد تفوّت تحديثات مهمة للمكتبة.
  • افحص الصفحة الرئيسية للمشروع أو صفحة GitHub، إن وُجدت. ابحث عمّا إذا كانت هناك مشاكل أمان معلّقة، وما إذا تم حلّ مشاكل الأمان السابقة في إطار زمني معقول.
  • إنّ الرموز البرمجية التابعة لجهات خارجية والتي تستخدم رموزًا برمجية أخرى تابعة لجهات خارجية قد تنطوي على مخاطر أكبر من مكتبة لا تتضمّن أي تبعيات. يُرجى الانتباه إلى هذه المخاطر.

تسهيل الاستخدام

قد تتساءل عن كيفية ارتباط مكتبات البرامج بإمكانية الوصول إلى الويب. على الرغم من إمكانية استخدام مكتبة برامج في بيئات مختلفة، فإنّ تسهيل استخدام الويب له أهمية كبيرة في سياق مكتبة مستندة إلى JavaScript من جهة العميل.

يمكن لمكتبة JavaScript من جهة العميل (أو إطار عمل، في هذا الصدد) زيادة أو تقليل إمكانية الوصول إلى موقع الويب الخاص بك. لنفترض أنّ هناك مكتبة JavaScript تابعة لجهة خارجية تضيف شريط تمرير صور إلى صفحة. إذا لم يأخذ شريط تمرير الصور في الاعتبار تسهيل استخدام الويب، فقد تتغاضى أنت كمطوِّر تطبيقات ويب عن هذه الميزة المهمة، وتطلق منتجًا يفتقد إلى ميزات مهمة، مثل إمكانية التنقل في شريط التمرير باستخدام لوحة المفاتيح!

  • هل يتيح المكوّن الإضافي للخطوط المتجاوبة للمستخدمين تكبير الصفحة أو تصغيرها؟
  • هل يتيح المكوّن الإضافي لتحميل الملفات تحميل الملفات من الأجهزة المساعدة؟
  • هل توفّر مكتبة الصور المتحركة الدعم للمستخدمين الذين يفضّلون تقليل الحركة؟
  • هل يتيح المكوّن الإضافي للخرائط التفاعلية استخدام لوحة المفاتيح فقط؟
  • هل توفّر مكتبة مشغّل الصوت تجربة مناسبة على برامج قراءة الشاشة؟

من المنطقي أن نتوقع أنك بحاجة إلى مستوى معين من المشاركة، كمطوِّر تطبيقات ويب، لتلبية متطلبات تسهيل الاستخدام هذه. على سبيل المثال:

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

مؤتمرات

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

إذا كانت المكتبة لا تتبع اصطلاحات الترميز الشائعة (على سبيل المثال، دليل أسلوب شائع)، فليس هناك الكثير مما يمكنك فعله كحل فوري. ومع ذلك، لا تزال هناك بعض الخيارات:

  • تأكَّد من التمييز بين الرمز المصدر للمكتبة وواجهة برمجة التطبيقات المتاحة لك، بصفتك مستخدم المكتبة. على الرغم من أن الرمز المصدري الداخلي قد يستخدم اصطلاحات غير مألوفة، إذا كانت واجهة برمجة التطبيقات (جزء المكتبة الذي تتفاعل معه) تستخدم اصطلاحات مألوفة، فقد لا يكون هناك ما يدعو للقلق.
  • إذا كانت واجهة برمجة التطبيقات للمكتبة لا تتّبع قواعد الترميز الشائعة، يمكنك استخدام نمط تصميم JavaScript، مثل نمط الوكيل، لتضمين جميع التفاعلات مع المكتبة في ملف واحد في قاعدة الرموز البرمجية. يمكن للوكيل بعد ذلك تقديم واجهة برمجة تطبيقات أكثر سهولة لأجزاء أخرى من الرمز داخل قاعدة الرموز البرمجية.

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

التحديثات

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

عند اختيار مكتبة أو إطار عمل، انتبه إلى كيفية التعامل مع التحديثات، وكن على دراية بأنّ هذه القرارات يمكن أن تؤثر فيك:

  • هل تتّبع المكتبة جدولاً زمنيًا منطقيًا لإصدار الفيديوهات؟ على سبيل المثال، قد يتم إجراء تعديلات على مستودع الرموز البرمجية بشكل متكرر، ولكن إذا لم يتم "نشر" هذه التعديلات أو "إصدارها" وفقًا لذلك، ستواجه صعوبة في تنزيلها.
  • هل تصدر المكتبة تحديثات باستخدام نظام إصدارات برامج معقول؟ من المفترض أن توفّر لك المكتبة الوقت. إذا كان عليك تغيير الرمز بشكل غير متوقّع في كل مرة يتم فيها تحديث إصدار المكتبة، قد يؤدي ذلك إلى إبطال الغرض من استخدام هذه المكتبة في المقام الأول. لا يمكن تجنُّب التغييرات التي قد تؤدي إلى عطل في بعض الأحيان، ولكن في الوضع المثالي، تكون التغييرات غير متكررة ولا يتم فرضها على مستخدمي المكتبة.
  • هل تبذل المكتبة جهدًا لتحقيق التوافق مع الأنظمة القديمة؟ في بعض الأحيان، قد تتضمّن تحديثات البرامج تغييرات قد تؤدي إلى عطل، ولكنّها توفّر أيضًا طبقة من التوافق مع الأنظمة القديمة. يتيح ذلك لمستخدم المكتبة استخدام أحدث إصدار من المكتبة مع إجراء تغييرات طفيفة على الرمز البرمجي.

الترخيص

ترخيص البرامج هو جانب مهم من استخدام مكتبات البرامج الخارجية. يجوز لمؤلف المكتبة تعيين ترخيص لمكتبته. إذا كنت تفكر في استخدام المكتبة، فقد يؤثر عليك اختيارهم للترخيص.

على سبيل المثال، قد يكون لمكتبة JavaScript ترخيص برنامج يسمح لك باستخدامها للاستخدام غير التجاري. بالنسبة إلى مشروع شخصي لممارسة هواية، قد يكون هذا خيارًا رائعًا. إذا كان مشروعك يتضمّن عنصرًا تجاريًا، قد تحتاج إلى ترخيص مؤسسة.

في حال الشك، ننصحك بطلب مشورة قانونية من متخصّص أو الرجوع إلى الفريق القانوني في شركتك.

المنتدى

يمكن أن تكون المكتبة أو إطار العمل الذي يضم مجتمعًا كبيرًا من المستخدمين/المساهمين مفيدًا، ولكن هذا ليس ضمانًا. بشكل عام، كلما زاد عدد مستخدمي المكتبة أو إطار العمل، زادت احتمالية الاستفادة منه. ضع في اعتبارك الإيجابيات والسلبيات التالية للمشاركة في منتدى تطوير:

الإيجابيات:

  • قد تعني قاعدة المستخدمين الكبيرة فرصة أكبر لاكتشاف الأخطاء مبكرًا وبشكل متكرر.
  • قد يعني المجتمع النشط الكبير المزيد من البرامج التعليمية والأدلة ومقاطع الفيديو وحتى الدورات التدريبية حول المكتبة أو إطار العمل المعني.
  • قد يعني المجتمع النشط الكبير المزيد من الدعم في المنتديات ومواقع الأسئلة والأجوبة، مما يزيد من احتمالية الإجابة على أسئلة الدعم.
  • يمكن أن يعني المجتمع المتفاعل المزيد من المساهمين الخارجيين في المكتبة أو إطار العمل. ويمكن أن تساعد في تقديم ميزات غير متوفّرة في خطة عمل المؤلف.
  • عندما تكون مكتبة أو إطار عمل شائعًا داخل مجتمع ما، تزداد احتمالية أن يكون أقرانك وزملائك قد سمعوا عن هذه المكتبة أو إطار العمل أو حتى على دراية بها.

السلبيات:

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

الوثائق

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

ويمكن أن توفّر المستندات أيضًا رمزًا نموذجيًا، ما يسهّل عليك البدء بسرعة. عند تقييم مكتبة أو إطار عمل، يمكنك طرح بعض الأسئلة التالية:

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

لا يمكن أن تكون الوثائق كاملة دائمًا، ولا بأس بذلك. عليك تقييم احتياجات مؤسستك ومتطلبات مشروعك ومدى تعقيد برنامجك، واستخدام ذلك لتحديد مستوى التوثيق الذي تحتاجه.

الخاتمة

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

هناك جوانب أخرى للمكتبات وأُطر العمل قد ترغب في أخذها في الاعتبار، ولم تتم مناقشتها بشكل كبير في هذه المقالة:

  • قابلية التوسيع: ما مدى سهولة توسيع المكتبة باستخدام منطق و/أو سلوك مخصّص؟
  • الأدوات: هل تحتوي المكتبة على أدوات، مثل المكوّنات الإضافية لأداة تعديل الرموز وأدوات تصحيح الأخطاء والمكوّنات الإضافية لنظام التصميم، إن وُجدت؟
  • البنية: الرمز البرمجي الواضح مهم، ولكن هل بنية المكتبة بشكل عام منطقية؟
  • الاختبارات: هل يحتوي المشروع على حزمة اختبارية؟ هل يستخدم الموقع الإلكتروني للمشروع شارات أو مؤشرات تشير إلى أنّ الحزمة الاختبارية تجتاز أحدث عملية إرسال؟
  • التوافق: هل تعمل المكتبة بشكل جيد مع المكتبات و/أو أُطر العمل الأخرى التي تستخدمها حاليًا؟
  • التكلفة: ما هي تكلفة إطار العمل؟ هل هو مفتوح المصدر أم متاح للشراء؟
  • مقاييس الغرور: يجب أن تكون هذه المقاييس في أسفل قائمة المعايير، أو حتى تجاهلها تمامًا، ولكن قد ترغب في النظر في "الأصوات" التي حصل عليها المشروع، وحسابات وسائل التواصل الاجتماعي التي تمثل المشروع، و/أو عدد الأخطاء/المشاكل المفتوحة في صفحة المشروع.