This post is also available in: English (الإنجليزية)
جافا سكريبت هي لغة برمجة كاملة متعددة الاستخدامات وصديقة للأطفال. مع المزيد من الخبرة ، ستتمكن من إنشاء ألعاب ورسوم متحركة ثنائية وثلاثية الأبعاد وتطبيقات شاملة قائمة على قواعد البيانات وغير ذلك الكثير.
مع المواقع ، يمكن أن تفعل الكثير من الأشياء المدهشة. جافا سكريبت هي لغة برمجة كاملة يمكنها إضافة تفاعل إلى موقع ويب. يحدث هذا في الألعاب ، في سلوك الاستجابات عند الضغط على الأزرار أو عند إدخال البيانات في النماذج ؛ مع التصميم الديناميكي مع الرسوم المتحركة ، إلخ.
ما هو الإطار؟
إطار العمل هو منصة لتطوير تطبيقات البرمجيات. إنه يوفر الأساس الذي يمكن لمطوري البرامج من خلاله بناء برامج لمنصة معينة. على سبيل المثال ، قد يتضمن إطار العمل فئات ووظائف محددة مسبقًا يمكن استخدامها لمعالجة الإدخال وإدارة الأجهزة والتفاعل مع برامج النظام. يساعد هذا في تبسيط عملية التطوير نظرًا لأن المبرمجين لا يحتاجون إلى إعادة كتابة الكود في كل مرة يطورون فيها تطبيقًا جديدًا.
تعد أطر عمل جافا سكريبت جزءًا أساسيًا من تطوير الويب للواجهة الأمامية الحديثة ، حيث توفر للمطورين أدوات مجربة ومُختبرة لبناء تطبيقات ويب تفاعلية قابلة للتطوير.
لقد ناقشنا بالفعل بعضًا من أشهر أطر عمل جافا سكريبت الأمامية ، ولكن ماذا عن الواجهة الخلفية؟ بينما تتداخل بعض أطر العمل ، فمن الأفضل عدم الجمع بين التطوير الأمامي والخلفي ، خاصةً مع شيء بالغ الأهمية مثل جافا سكريبت.
العودة أطر الويب في جافا سكريبت
نقدم لك هنا 5 أطر مهمة لتطوير الويب الخلفي.
1. Express
Express.js هو إطار عمل لتطبيق الويب لـ Node.js. يوفر ميزات متنوعة تجعل تطوير تطبيقات الويب سريعًا وسهلاً والذي يستغرق وقتًا أطول باستخدام Node.js.
يعتمد Express.js على وحدة البرامج الوسيطة Node.js المسماة connect والتي تستخدم بدورها وحدة HTTP. لذا ، فإن أي برمجية وسيطة تعتمد على الاتصال ستعمل أيضًا مع Express.js.
فيما يلي ميزات Express.js:
- يجعل تطوير تطبيق الويب Node.js سريعًا وسهلاً.
- من السهل تكوينها وتخصيصها.
- يسمح لك بتحديد مسارات تطبيقك بناءً على أساليب HTTP وعناوين URL.
- يتضمن وحدات وسيطة متنوعة يمكنك استخدامها لأداء مهام إضافية عند الطلب والاستجابة.
- من السهل دمج Express.js مع محركات القوالب المختلفةمثل Jade و Vash و EJS وما إلى ذلك.
- يسمح لك بتعريف خطأ معالجة البرمجيات الوسيطة.
- باستخدام Express.js ، من السهل تقديم ملفات ثابتة وموارد لتطبيقك.
- يسمح لك بإنشاء خادم REST API.
- يسهل ربط Express.js بقواعد البيانات مثل MongoDB و Redis و MySQL.
2. Meteor
Meteor هي واحدة من أكثر أطر عمل JavaScript شيوعًا ، والتي توفر الكثير من الميزات لتطوير الواجهة الخلفية وعرض الواجهة الأمامية وإدارة قواعد البيانات ومنطق الأعمال.
لقد نما إطار العمل نظامه البيئي بشكل كبير منذ إطلاقه في 2012 يساعد المطورين في التطوير السريع لتطبيقات الويب والجوال الشاملة في JavaScript خالص.
فيما يلي ميزات Meteor.js:
- حل المكدس الكامل: تقدم Meteor حلاً متكاملاً لتطوير ونشر تطبيقات الويب. يأتي Meteor مرفقًا بالعديد من الميزات المضمنة ، مثل القوالب التفاعلية ، وتقليل CSS التلقائي و JS على خادم الإنتاج ، وإعادة تحميل الكود الساخن. نظامها السحابي ، Galaxy ، قوي جدًا لنشر تطبيقات العميل وتوسيع نطاقها ومراقبتها. كما أنه يوفر تقنيات مفيدة من جانب العميل ، بما في ذلك القوالب والمساعدين والأحداث.
- نظام النشر البيئي: Meteor.js هو أكثر من مجرد إطار عمل لتطوير JavaScript. إنه نظام إيكولوجي مفتوح المصدر (IDevE). يسمح Meteor.js ببناء تطبيقات الويب في الوقت الفعلي من البداية. يحتوي على جميع المكونات الضرورية للواجهة الأمامية والخلفية (مثل الأطر والمكتبات وأدوات التكوين وقواعد البيانات وغير ذلك الكثير) التي تساعد المطورين خلال دورة حياة تطوير التطبيق بالكامل ، بدءًا من الإعداد والتطوير وحتى النشر.
- كود JavaScript متماثل: يسمح Meteor باستخدام نفس الكود على الواجهة الأمامية والخلفية وكذلك لتطبيقات الجوال والويب. يمنع المطورين من المطالبة بتثبيت وتكوين مكتبات مختلفة ومديري الوحدات وواجهات برمجة التطبيقات وبرامج التشغيل والمزيد. علاوة على ذلك ، مع Meteor ، يمكن للمطورين الاستفادة من قوة JavaScript مع تقليل طول الكود وتعقيده. يوفر هذا الكثير من وقت المطور حيث لا يتعين عليهم إجراء تبديل السياق بين لغة الخادم وجافا سكريبت.
- حل الواجهة الأمامية: تقدم Meteor Blaze.js ، إطار تطوير أمامي. على الرغم من أنه ليس إطار عمل متقدم ، إلا أنه يقدم بعض الميزات الجيدة. ولكن ، يتكامل Meteor أيضًا مع الأطر الأمامية الحديثة الشائعة مثل Backbone.js من أجل تحقيق نتائج أفضل. تقدم Meteor واجهات برمجة تطبيقات متشابهة تتواصل بين الواجهة الأمامية والخلفية. يتيح ذلك للمطورين التعامل مع إدارة خادم العميل وإدارة جلسة الخادم بسهولة. يحدث اتصال البيانات بين العميل والخادم تلقائيًا دون الحاجة إلى كتابة أي كود معياري.
- تكامل قاعدة البيانات: من عيوب Meteor.js أنها تدعم MongoDB فقط حتى الآن. لذلك ، لا يمكنك استخدام Meteor إذا كنت بحاجة إلى تضمين دعم قاعدة بيانات NoSQL لتطبيقاتك. لكن النظام البيئي Meteor يوفر قاعدة بيانات MongoDB بالإضافة إلى تمثيل أمامي لـ MongoDB يسمى Minimongo ، والذي تمت كتابته بالكامل بلغة JavaScript. يحتوي Meteor على واجهة برمجة تطبيقات Mongo التي تدمج MongoDB بسلاسة في النهاية الخلفية و Minimongo في الواجهة الأمامية. ينتج عن ذلك إعادة تحميل الصفحة وتحديثات الصفحة بشكل أسرع وبالتالي تقليل زمن الوصول.
- Live Reload: ميزة أخرى بارزة في Meteor.js هي إعادة تحميل المتصفح المباشر المتكامل. عندما تكون هناك أي تغييرات تطويرية يجب إجراؤها على الواجهة الأمامية ، فإنها تعيد تحميل صفحة الويب الحية تلقائيًا. تسمح إعادة التحميل المباشر أيضًا بتحديث عناصر DOM المطلوبة فقط على صفحة الويب دون إعادة تحميل الصفحة بالكامل على الرغم من أي تغييرات تعتمد على البيانات الموجودة على الواجهة الخلفية أو الواجهة الأمامية.
- مدير الحزم المخصص: يمكن للمرء استخدام وحدات npm (98000 وحدة) مع Meteor ولكن لديه أيضًا مدير الحزم المخصص الخاص به والذي يتميز بوظائف npm الضرورية وبعض الوظائف الإضافية. يضم المستودع الرسمي لشركة Meteor لحزم Meteor المسمى جوًا.جس أكثر من 2600 حزمة ذكية.
3. Next
Next.js هو إطار عمل JavaScript صغير يستخدم بشكل أساسي كنهاية خلفية لتطوير التطبيقات في إطار عمل React. الغرض الرئيسي من Next هو توفير تجربة تنفيذ بسيطة لتطوير تطبيقات React.
فيما يلي ميزات التالي:
- إعادة تحميل التعليمات البرمجية الساخنة: يقوم Next.js بإعادة تحميل الصفحة عندما يكتشف أي تغيير محفوظ على القرص.
- التوجيه التلقائي: يتم تعيين أي عنوان URL لنظام الملفات ، إلى الملفات الموضوعة في مجلد الصفحات ، ولا تحتاج إلى أي تكوين (لديك خيارات التخصيص بالطبع).
- مكونات الملف الفردي: باستخدام style-jsx ، متكامل تمامًا كما تم إنشاؤه بواسطة نفس الفريق ، من السهل إضافة أنماط محددة النطاق إلى المكون.
- عرض الخادم: يمكنك عرض مكونات React على جانب الخادم ، قبل إرسال HTML إلى العميل.
- توافق النظام البيئي: يلعب Next.js بشكل جيد مع باقي أنظمة JavaScript و Node و React.
- تقسيم تلقائي للكود: يتم عرض الصفحات بالمكتبات وجافا سكريبت التي يحتاجونها فقط ، لا أكثر. بدلاً من إنشاء ملف JavaScript واحد يحتوي على كل كود التطبيق ، يتم تقسيم التطبيق تلقائيًا بواسطة Next.js في عدة موارد مختلفة.
- الجلب المسبق: يدعم مكون الرابط ، المستخدم لربط الصفحات المختلفة معًا ، خاصية الجلب المسبق التي تقوم تلقائيًا بإعداد موارد الصفحة مسبقًا (بما في ذلك الشفرة المفقودة بسبب تقسيم الكود) في الخلفية.
- المكونات الديناميكية: يمكنك استيراد وحدات JavaScript ومكونات React بشكل ديناميكي.
- عمليات التصدير الثابتة: باستخدام أمر التصدير التالي ، يتيح لك Next.js تصدير موقع ثابت بالكامل من تطبيقك.
- دعم TypeScript: تتم كتابة Next.js في TypeScript وعلى هذا النحو يأتي مع دعم TypeScript ممتاز.
4. Koa
Koa هو إطار عمل ويب جديد صممه الفريق وراء Express ، والذي يهدف إلى أن يكون أساسًا أصغر حجمًا وأكثر تعبيرًا وأكثر قوة لتطبيقات الويب وواجهات برمجة التطبيقات. من خلال الاستفادة من المولدات ، يتيح لك Koa التخلص من عمليات الاسترجاعات وزيادة معالجة الأخطاء بشكل كبير.
لا تجمع Koa أي برمجيات وسيطة داخل النواة وتوفر مجموعة أنيقة من الأساليب التي تجعل خوادم الكتابة سريعة وممتعة.
تطبيق Koa هو كائن يحتوي على مصفوفة من وظائف البرامج الوسيطة التي يتم تكوينها وتنفيذها بطريقة تشبه المكدس عند الطلب. يشبه Koa العديد من أنظمة البرامج الوسيطة الأخرى التي قد تكون واجهتها مثل Ruby’s Rack و Connect وما إلى ذلك – ومع ذلك ، تم اتخاذ قرار تصميم رئيسي لتوفير “سكر” عالي المستوى في طبقة البرامج الوسيطة منخفضة المستوى. يعمل هذا على تحسين قابلية التشغيل البيني والمتانة ويجعل كتابة البرامج الوسيطة أكثر إمتاعًا.
يتضمن ذلك طرقًا للمهام الشائعة مثل التفاوض على المحتوى وحداثة ذاكرة التخزين المؤقت ودعم الوكيل وإعادة التوجيه من بين أمور أخرى. على الرغم من توفير عدد كبير بشكل معقول من الطرق المفيدة ، يحتفظ Koa بصمة صغيرة ، حيث لا يتم تجميع أي برمجيات وسيطة.
فيما يلي ميزات Koa:
- دعم المولد من الألف إلى الياء باستخدام المولدات (ميزة حافة النزيف ، حتى بالنسبة لـ Node.js) سيؤدي إلى تنظيف الكود الخاص بك من الفوضى التي تسببها كل عمليات الاسترجاعات هذه ، مما يجعل الكود الخاص بك أكثر قابلية للإدارة.
- فريق التطوير لديه سجل حافل
- تم تطوير Koa بواسطة الفريق وراء إطار عمل node.js المستخدم على نطاق واسع (express.js).
- خفيف الوزن للغاية
- Koa خفيف الوزن للغاية مع 550 سطرًا فقط من التعليمات البرمجية.
- مزامنة / انتظار الكلمات الرئيسية مدعومة وتجاوزت وظائف المولد
- تعد وظائف المولدات بالطبع إضافة ضخمة ، ولكن في ذلك الوقت تجاوز فريق Koa وظائف الأجيال وتحول نحو برمجة نمط غير متزامن / انتظار. لقد جعلت أفضل إطار عمل في نظام Koa متاحًا في السوق.
5. Sails
Sails.js (أو Sails) عبارة عن إطار تطبيق ويب خاص بوحدة التحكم في عرض النموذج (MVC) تم تطويره فوق بيئة Node.js التي تم إصدارها كبرنامج مجاني ومفتوح المصدر بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. إنه مصمم لتسهيل إنشاء تطبيقات ويب Node.js وواجهات برمجة تطبيقات مخصصة على مستوى المؤسسات. تقدم محاكاة بنية MVC لأطر أخرى ، مثل Ruby on Rails ، نمطًا وألفة مماثلة ، مما يقلل العبء المعرفي عند التبديل بين الأطر / اللغات الأخرى.
فيما يلي ميزات الأشرعة:
- 100٪ جافا سكريبت: مثل أطر MVC الأخرى ، تم تصميم Sails مع التركيز على سعادة المطور وفلسفة الإفراط في التهيئة. لكن Node.js يأخذ هذا المبدأ إلى المستوى التالي. يعني البناء فوق Sails أن تطبيقك مكتوب بالكامل بلغة JavaScript ، وهي اللغة التي تستخدمها بالفعل في المتصفح. نظرًا لأنك تقضي وقتًا أقل في تغيير السياق ، يمكنك كتابة التعليمات البرمجية بأسلوب أكثر اتساقًا ، مما يجعل التطوير أكثر إنتاجية ومتعة.
- أي قاعدة بيانات: تجمع Sails بين ORM قويًا ، Waterline ، والذي يوفر طبقة وصول بسيطة إلى البيانات تعمل فقط ، بغض النظر عن قاعدة البيانات التي تستخدمها. بالإضافة إلى عدد كبير من المشاريع المجتمعية ، توجد محولات مدعومة رسميًا لـ MySQL و MongoDB و PostgreSQL و Redis والقرص المحلي.
- الارتباطات القوية: تقدم Sails طريقة جديدة للنموذج العلائقي المألوف ، بهدف جعل نمذجة البيانات أكثر عملية. يمكنك القيام بنفس الأشياء التي قد تكون معتادًا عليها (واحد إلى متعدد ، متعدد إلى متعدد) ، ولكن يمكنك أيضًا تعيين عدة ارتباطات مسماة لكل نموذج (على سبيل المثال ، قد تحتوي الكعكة على مجموعتين من الأشخاص: ” أصحاب “و” أكلة “). والأفضل من ذلك ، يمكنك تعيين نماذج مختلفة لقواعد بيانات مختلفة ، وستظل ارتباطاتك / صلاتك تعمل – حتى عبر NoSQL والحدود العلائقية. لا تواجه الأشرعة مشكلة ضمنيًا / تلقائيًا في الانضمام إلى جدول MySQL مع مجموعة Mongo والعكس صحيح.
- الإنشاء التلقائي لواجهات برمجة تطبيقات REST: تأتي Sails مع مخططات تساعد على تنشيط الواجهة الخلفية لتطبيقك دون كتابة أي رمز. ما عليك سوى تشغيل الأشرعة لإنشاء طبيب أسنان تابع لواجهة برمجة التطبيقات وستحصل على واجهة برمجة تطبيقات تتيح لك البحث عن أطباء الأسنان وترقيمهم وفرزهم وتصفيتهم وإنشائهم وإتلافهم وتحديثهم وإقرانهم. نظرًا لأن إجراءات المخطط هذه مبنية على نفس التقنية الأساسية مثل Sails ، فإنها تعمل أيضًا مع Websockets وأي قاعدة بيانات مدعومة خارج الصندوق.
- دعم WebSockets بدون رمز إضافي: في الماضي ، كانت إضافة ميزة الوقت الحقيقي / “المذنب” تعني الحفاظ على قاعدتي رمز منفصلتين. ولكن نظرًا لأن مترجم الطلب في Sails يترجم رسائل المقبس الواردة نيابةً عنك ، فهي متوافقة تلقائيًا مع كل مسار في تطبيق Sails الخاص بك ، بالإضافة إلى أي مسارات Express / برامج وسيطة حالية. يتم الاعتناء بتطبيع المعلمات والجلسة وواجهة البث. بمعنى آخر ، تعمل الشفرة التي تكتبها مع WebSockets و HTTP ، دون أي عمل إضافي.
- سياسات الأمان التصريحية والقابلة لإعادة الاستخدام: توفر الأشرعة أمانًا أساسيًا والتحكم في الوصول المستند إلى الأدوار بشكل افتراضي في شكل سياسات – وظائف وسيطة بسيطة وقابلة لإعادة الاستخدام تعمل قبل وحدات التحكم والإجراءات الخاصة بك. تشجع سياسات الكتابة على التضمين ، مما يبسط بشكل كبير منطق عملك ويقلل من إجمالي كمية التعليمات البرمجية التي تحتاج إلى كتابتها. السياسات قابلة للتبديل مع البرامج الوسيطة Express / Connect ، مما يعني أنه يمكنك توصيل وحدات npm الشائعة مثل Passport. أخيرًا ، مثل معظم الأشياء في Sails ، تعمل سياساتك مع WebSockets و HTTP تلقائيًا.
- حيادية الواجهة الأمامية: في حين أن الوعد بـ “لغة / إطار عمل واحد للحكم عليهم جميعًا” أمر مغري بالتأكيد ، إلا أنه ليس دائمًا واقعيًا. تتوافق الأشرعة مع أي إستراتيجية أمامية ؛ سواء كانت Angular أو Backbone أو iOS / ObjC أو Android / Java أو Windows Phone أو أي شيء آخر لم يتم اختراعه بعد. بالإضافة إلى ذلك ، من السهل تقديم نفس واجهة برمجة التطبيقات ليتم استهلاكها بواسطة خدمة ويب أخرى أو مجتمع من المطورين.
- خط أنابيب مرن للأصول: يتم شحن Sails مع Grunt – مما يعني أن سير عمل الأصول الأمامية بالكامل قابل للتخصيص تمامًا ويأتي مع دعم لجميع وحدات Grunt الرائعة الموجودة بالفعل. يتضمن ذلك دعمًا لـ LESS و SASS و Stylus و CoffeeScript و JST و Jade و Handlebars و Dust وغيرها الكثير. عندما تكون جاهزًا لبدء الإنتاج ، يتم تصغير أصولك وضغطها تلقائيًا. يمكنك حتى تجميع أصولك الثابتة ودفعها إلى CDN مثل CloudFront لجعل تحميل تطبيقك أسرع.
- أساس متين: تم تصميم Sails على Node.js ، وهي تقنية شائعة وخفيفة الوزن من جانب الخادم تتيح لك كتابة تطبيقات شبكة سريعة وقابلة للتطوير في JavaScript. تستخدم Sails Express للتعامل مع طلبات HTTP والتفاف socket.io لإدارة WebSockets. لذلك إذا احتاج تطبيقك إلى الحصول على مستوى منخفض حقًا ، فيمكنك الوصول إلى كائنات Express أو Socket.io الأولية. من الآثار الجانبية الرائعة الأخرى أن مسارات Express الحالية تعمل بشكل جيد في تطبيق Sails ، لذا فإن ترحيل تطبيق Node الحالي أمر سهل للغاية.
اقرأ أيضًا 5 من أفضل أطر عمل ويب FrontEnd في JavaScript يجب أن يعرفها الأطفال