نود.جي إس
المحتويات

على سبيل التعريف، نود.جي إس هو محرك جافاسكريبت بالوقت الفعلي مفتوح المصدر ومُصمم لكتابة تطبيقات متعدد المنصات، وكذلك تطبيقات سهلة التوسيع كخوادم الويب. تم اختياره بواسطة InfoWorld لجائزة تقنية العام في 2012. يسمح نود.جي إس للمبرمجين بكتابة برمجيات بلغة جافاسكربت تعمل خارج مُتصفح الويب، ويقوم NodeJS بترجمتها إلى لغة تفهمها الآلة من خلال مُحرك جافاسكربت V8 المصمم من طرف جوجل، والمستعمل في متصفح كروم وتستعمله باقي المتصفحات المبنية على نواة كروميوم، هذا يمكن المبرمجين من برمجة الكثير من الأمور باستخدام لغة جافاسكربت وجعلها تعمل خارج المتصفح، كبرمجة الواجهة الخلفية للمواقع (back-end)، برمجة سكربت يعمل على سطر الآوامر، وكذلك برمجة تطبيقات بواجهات رُسومية باستخدام تقنيات مثل آلكترون (Electron). وفيما يلي تفاصيل أوسع عن ذلك.
من جهة ثانية، تكتب برامج نود.جي إس بلغة الجافا سكربت، باستخدام نمط حدثّي التوجه، إدخال وإخراج غير متزامنين للحد من النفقات وتحقيق أكبر قدر من قابلية التوسع. وعلى عكس أغلب برامج الجافاسكريبت فهي لا تشتغل على متصفح الويب، ولكن عوضا عن ذلك فيتم تشغيلها من طرف الخادم.
وعلى صعيد آخر، أُنشئ نود.جي إس على يد ريان دال ابتداءً في سنة 2009، وقامت برعاية نموها Joyent، مشغله. يتألف نود.جي إس من في 8 التابع لجوجل مع الكثير من المكتبات المدمجة. وأخذت بعض مواصفات مشروع CommonJS.
المجتمع
وفي السياق ذاته، نود.جي إس لديه مجتمع مطورين متمركزين بقائمتين بريديتين،، nodejs و nodejs-dev, وقناة آي آر سي #نود.جي إس على فرينود. يجتمع المجتمع في NodeConf، مؤتمر مطورين سنوي يركز على نود.جي إس.
}).listen(3000);
- console.log('Server running at http://localhost:3000/');
- خادم ميفاق ضبط الإرسال ينصت لبورت 7000 ويرد بـ'hello' عند الاتصال:
- var net = require('net');
- net.createServer(function (stream) {
- stream.write('hello\r\n');
- stream.on('end', function {
- stream.end('goodbye\r\n');
- });
- stream.pipe(stream);
- }).listen(7000);
أمثلة
تطبيق كامل لبرنامج "أهلا بالعالم" كخادم ويب:
var http = require('http');
مميزات نود.جي إس
ومن ناحية أخرى، سرعة نود.جي إس هي نتيجة لسرعة المحرك الذي تستعمله الذي يعتبر نواتها. تقوم نود.جي إس بمعالجة النص المصدري سطرا سطرا، من خلال خيط واحد على عكس ما يحدث في PHP مثلا، المعنى أنه لو زار 1000 شخص موقعا يعمل على نود.جي إس فسيتم خدمتهم بالتتالي، المشكل أنه لو أضطر شخص ما لانتظار عملية ما مدة دقيقة فيجب على الكل الانتظار حتى تنتهي تلك العملية، إلا أنه يكمن تفادي هذا من خلال بنية الجافا سكربت التي تمكن من استدعاء دالة ما (أو مع صياغتها) عند الانتهاء من عملية ما والمرور للعملية الموالية، ككل تمكن نود.جي إس من بناء تطبيقات كبيرة، أحيانا بسهولة، إلا أن بنية الجافاسكريبت الشاذة تجعل الأمر محبط، يجدر بالذكر أن نود.جي إس تعمل على نواة معالج واحدة، كما أن يجب تنشيط الملف بعد برمجته ليتحول إلى Thread مستعد للرد على أي طلب داخل الوب، في النهاية يمكن القول أن نود.جي إس ليست تلك الوسيلة بعد التي يمكنها التعامل مع مختلف المتطلبات -و هذا من أسباب سرعتها- إلا أنه لا يمكن لوم أحد على ذلك ما دامت لم تتجاوز الإصدار 1.0 بعد، إلا أنها يمكنها تقديم حلول سحرية للأنشطة التي تتطلب تبادل بيانات بين مختلف الزوار في الوقت الحقيقي (الويب في الوقت الحقيقي).
إضافةً إلى ذلك، من مميزات نود.جي إس سرعة الآداة مع المحافظة على الفاعلية، فسرعتها في إرسال الرسائل البريدية هي 10 أضعاف سرعة بي إتش بي، مع عدد أقل من العمليات الغير ناجحة، من مميزاتها كذلك أنك تستدعي المكتبات التي تعمل عليها في الوقت الذي تريد، الأمر الذي يفضي إلى أفضل استغلال للموارد.
لغات أخرى
- تمت كتابة بيئات مشابهة في لغات برمجة أخرى تشمل:
- EventMachine لروبي.
- libevent للسي
- بيئة بيرل الكائنية لبيرل
- توستيد لبايثون
- انظر كذلك
جافا سكريبت
- محرك جافا سكربت في-8 (v8)
- البرمجة التركيبية
- مراجع
- وصلات خارجية
http.createServer(function (request, response) {
response.end('Hello World\n');
response.writeHead(200, {'Content-Type': 'text/plain'});
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟