التخطي إلى المحتوى الرئيسي

جافاسكريبت JavaScript - الحلقة الثالثة

 لنسرد اليوم بعض السمات العامة عن جافاسكريبت، ولنبدأ أولا بالبارادايم..

فما هو البارادايم؟

في أصل الكلمة، فالبارادايم هو نموذج عام ترى العالم من خلاله، المخيال الذي تحلل من خلاله المعطيات، هو النمط، النموذج، أو المثال..

في لغات البرمجة، فالبارادايم هو نمط البرمجة، كيف ستبني الكود الخاص بك لكل برنامج، أو لكل وحدة؟..هل على شكل دوال؟..أو على شكل فئات؟..أو ربما في شكل انشائي؟

من أشهر أنماط البرمجة المعروفة هو البرمجة الكائنية Object Oriented، لكن هناك أنماط مختلفة تماماً، مثل برمجة الدوال مثلاً، كانت هذه مقدمة سريعة عن البارادايم، فأي بارادايم تدعم جافاسكريبت؟

الواقع أنها توصف بمتعددة الأنماط ، فهي ملائمة تماماً للبرمجة الكائنية بفضل قدرتك على تعريف الكائنات النموذجية فيها ملحقاً بها خصائص ودوال، وهو ما يسمى prototype-based programming، كذلك يمكنك الاعتماد على نمط برمجة الدوال functional لبناء برامجك على جافاسكريبت.

كما تتيح لك جافا سكريبت مزج النمطين بحرية بحسب ما يتطلبه مشروعك أيضاً .

تعريف المتغيرات

متغيرات جافاسكريبت معرّفة تفاعلياً Dynamically Typed، يعني أن نوع البيانات المخزنة في كل متغيّر يتقرر بحسب تنفيذ البرنامج والمدخلات، بخلاف لغات مثل C++, Java مثلاً، حيث يتحدد نوع البيانات المخزنة في كل متغير منذ اعلانه، في وقت الترجمة.

هذا سيعطي المطور سرعة أكبر في بناء البرامج، لكنه سيصعب من اكتشاف الأخطاء والثغرات المنطقية في البرنامج.

الترجمة

لغة جافا سكريبت كما سبق توضيحه، تنتقل عبر الشبكة في صورة كود، ولا تنتقل في صورة ملف تنفيذي، فهي لغة مفسَّرة interpreted وليست لغة مترجمة compiled.

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

لذلك تلجأ أدوات ادارة المكتبات، مثل npm على سبيل المثال، إلى عملية minifying، تعيد فيه كتابة ملفاتك وجمعها في ملف أو مجموعة ملفات مصغرة، دون ارفاق ملاحظات أو أي أحرف غير ضرورية (بما فيها المسافات والأسطر الفارغة) عند بناء النسخة المخصصة للاصدار.

وهذه العملية تختلف عن عملية الاخفاء Obfuscating، حيث يخلط بينهما الكثيرين، عملية الاخفاء تهدف لاخفاء الهدف من الكود حتى عن جدران النار وأدوات الحماية من الفيروسات، فهي تضع الكود في صورة أحجية يصعب على الحاسوب التعرف من خلالها على السلوك المقصود منه، بالتالي يستخدمها المخترقون ومبرمجي البرامج الخبيثة بالمقام الأول، أما minifying فهي تهدف، ببساطة، لتصغير حجم ملف جافاسكريبت وتحسين آدائه.

node.js

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

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

أعتقد أننا ربما نكتفي بهذا القدر منها، لنجد موضوعات أخرى في الأسابيع التالية.

تعليقات

المشاركات الشائعة من هذه المدونة

جافاسكريبت JavaScript - الحلقة الثانية

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

جدران النار - خطوط الدفاع

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

هجمات التصيّد - الهندسة الاجتماعية

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