استخدام Javascript و NodeJS فى تطوير المواقع

 تطوير مواقع كاملة مع Javascript و NodeJS

تطوير تطبيقات الويب فى الآونة الاخيرة اصبح مهمة تحتاج منك ان تكون ملم بالكثير من الامور واللغات والتقنيات , فبكل بساطة انت تريد تطوير تطبيقاتك بطريقة اسرع وان يكون التطبيق قوي وسريع وسهل التطوير والكثير من الميزات الاخرى .

مؤخرًا مع التقنيات والادوات الحديثة فى عالم تطوير الويب اصبح من الممكن تطوير تطبيقاتك مع لغة جافاسكربت و HTML , CSS .
فخليط تقنيات جافاسكربت السحرى MongoDB , Express , AngularJS ,NodeJS اصبح قوي بما فيه الكفاية لتطوير تطبيقاتك من البداية إلى النهاية .

لماذا جافاسكربت ؟

جافاسكربت من اشهر اللغات المستخدمة فى عالم الويب استخدمت قديمًا فى الجزء الخاص بالعميل او Client Side وهى الاوامر التى تنفذ على متصفح المستخدم ويكون الكود المصدرى فى هذه الحالة مكشوف للمستخدم , فبتالى كانت الجافاسكربت مقتصرة على انشاء تفاعل للواجهة مع المستخدم وبعض الاشياء الاخرى مثل Validation قبل ارسال البيانات إلى السيرفر , فببساطة كانت جافاسكربت تقوم بمهم كثيرة على جهاز المستخدم بدون الحاجة إلى ازعاج موارد السيرفر فى اشياء لا تستحق اهدار موارد السيرفر من اجلها .

وكان التعامل مع السيرفر مقصور على لغات اخرى من اشهرها PHP , ASP هذه اللغات تنفذ على السيرفر وتتعامل مع قواعد البيانات , فعند البحث فى صندوق البحث فى اي موقع يقوم الموقع بارسال request للسيرفر بالبيانات المطلوب فيقوم السيرفر بالاتصال بقاعدة البيانات وجلب البيانات منها ومعالجة هذه البيانات وتحويلها إلى HTML عند طريق اللغة المستخدمة فى Server ثم يعيد هذه البيانات فى شكل HTML يتمكن المتصفح من قراءتها وعرضها للمستخدم .

للتعرف اكثر على لغات الخادم Server Side ولغات العميل Client Side


ولكن مؤخرًا دخلت جافاسكربت وغطت هذه الجزء ايضًا وهى التعامل مع السيرفر عن طريق NodeJS .

ماهى NodeJS ؟

فى عام 2009 قام Ryan Dahl بانشاء NodeJS , وقام ببناءها على عاملين مهمين ساعدا فى انتشارها بشكل كبير وهما :

1. محرك Chrome V8 المتطور 

وهو نفسه المستخدم فى جوجل كروم وطور من قبل مطورى جوجل فى 2008 , ويتميز بسرعة وقوة كبيرتين .

2. الاعتماد على آلية Non-Blocking

بعكس اللغات الموجودة وعلى رأسها PHP التى تعتمد على آلية Blocking اعتمدت Nodejs على آلية Non-Blocking ولفهم الفرق بينهم بصورة اوضح اليك التالى
عند التعامل مع السيرفر فى لغة مثل PHP تعتمد على Blocking فان تنفيذ الطلبات القادمة من مستخدمى الموقع ستنفذ بالتوالى لا يبدء فى تنفيذ الطلب الجديد الا بعد الانتهاء واعادة النتائج إلى المستخدم الحالى وهذا يسبب اهدار كبير فى الوقت ( بالرغم من استخدام Multi Threads فى PHP لمحاولة حل المشكلة وهى ماتسبب زيادة تكاليف السيرفر ) .
وكان الحل فى NodeJS هو استخدام آلية Blocking التى تسمح بارسال طلبات Request بالتوازي فحين يبدء السيرفر فى تنفيذ Request قادم فانه لا ينتظر انتهاءه حتى يبدء فى تنفيذ Request الذى يليه وكل Request ينتهى من معالجته يقوم بارجاع دالة Call Back المسؤالة عن الرد على Request بالبيانات المطلوبة او برسالة خطأ اذا حدثت مشكلة , وبالتالى بموارد اقل للسيرفر (Single Thread) تزيد السرعة بصورة كبيرة .

كانت هذه مقدمة بسيطة لتطوير المواقع بلغة Javascript و Nodejs , وقريبا سنتطرق لتفاصيل بناء المواقع بلغة جافاسكربت وتقنياتها المختلفة .

مواضيع مفيدة
ما هى البرمجة
دليل لغات البرمجة لمطوري الويب 
استخدام لغة PHP فى تطوير الويب

شارك الموضوع

مواضيع ذات صلة