اختيار مكتبة 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'. احرص على دمج هذا النهج مع إزالة العناصر غير الضرورية من الشجرة، وذلك لإنشاء حمولة JavaScript صغيرة وإرسالها إلى المستخدمين.
  • استخدِم أدوات اختبار الأداء، مثل Lighthouse، لمراقبة تأثير استخدام مكتبة JavaScript معيّنة في الأداء. إذا كانت المكتبة تضيف تأخيرًا لمدة ثانية واحدة إلى وقت تحميل الصفحة (لا تنسَ تقليل سرعة الشبكة ووحدة المعالجة المركزية أثناء الاختبار)، قد تحتاج إلى إعادة تقييم المكتبة التي اخترتها. بالإضافة إلى التحقّق من تحميل الصفحة، احرص على إنشاء ملف شخصي لأيّ سلوك لصفحة ويب يستدعي رمزًا من المكتبة المعنيّة، لأنّ أداء تحميل الصفحة لا يوضّح القصة الكاملة.
  • إذا كان مؤلف المكتبة يرحّب بالتعليقات، يمكنك إرسال ملاحظاتك حول الأداء واقتراحاتك وحتى مساهماتك في المشروع. وهذا هو المكان الذي يتألق فيه مجتمع البرامج مفتوحة المصدر. إذا قرّرت تقديم مساهمة، قد تحتاج إلى الرجوع إلى صاحب العمل أولاً.
  • استخدِم أداة تتبُّع حِزم مبرمَجة، مثل bundlesize، للتأكّد من عدم إجراء تحديثات كبيرة بشكل غير متوقّع في المكتبة. من الشائع أن تكبر مكتبة JavaScript بمرور الوقت. يمكن أن تؤدي الإضافات إلى الميزات وإصلاحات الأخطاء والحالات الشاذة وغيرها إلى زيادة حجم ملف المكتبة. بعد أن توافق أنت أو فريقك على استخدام مكتبة، قد يكون تعديل المكتبة أقلّ مشكلة وقد لا يطرح أي أسئلة أو أسئلة قليلة. وهنا يأتي دور الاعتماد على عمليات التشغيل الآلي.
  • اطّلِع على متطلباتك للمكتبة وتقييم ما إذا كانت منصة الويب تقدّم الوظيفة نفسها بشكل أصلي أم لا. على سبيل المثال، توفّر منصة الويب حاليًا أداة اختيار الألوان، ما يغني عن استخدام مكتبة JavaScript تابعة لجهة خارجية لتنفيذ الوظيفة نفسها.

الأمان

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

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

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

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

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

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

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

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

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

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

المؤتمرات

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

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

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

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

التحديثات

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

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

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

الترخيص

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

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

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

المنتدى

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

الإيجابيات:

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

السلبيات:

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

الوثائق

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

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

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

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

الخاتمة

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

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

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