اختيار مكتبة 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 ترخيص برنامج يسمح لك باستخدامها في بيئة غير تجارية. قد يكون هذا الخيار رائعًا لمشروع هواية شخصي. إذا كان مشروعك يتضمّن عنصرًا تجاريًا، قد تحتاج إلى التفكير في ترخيص مؤسسة.

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

المنتدى

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

الإيجابيات:

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

السلبيات:

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

الوثائق

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

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

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

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

الخاتمة

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

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

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