تطوير حزمة MEAN
مكدس MEAN هو إطار عمل لبناء تطبيقات الويب المبني على JavaScript. MEAN هو اختصار لـ MongoDB و Express و Angular و NodeJS.
التقنيات الأربع الحرجة التي تشكل طبقات المكدس.
- MongoDB - قاعدة بيانات المستندات MongoDB - قاعدة بيانات المستندات
- Express(.js) - إطار عمل الويب المكتوب على Node.js
- Angular(.js) – إطار عمل JavaScript لجانب العميل
- Node.js هو خادم الويب JavaScript الأكثر شيوعاً في العالم
هناك متغيرات من مكدس MEAN، بما في ذلك MERN (الذي يستبدل Angular.js بـ React.js) و MEVN (الذي يستبدل Angular.js بـ React.js) (باستخدام Vue.js). مكدس MEAN هو أحد أكثر الأفكار التكنولوجية استخداماً على نطاق واسع لتطوير تطبيقات الويب.
كيف يتم تنفيذ مكدس MEAN؟
بنية معمارية لمكدس MEAN
تم تصميم معمارية MEAN لتبسيط عملية تطوير تطبيقات الويب في JavaScript وإدارة JSON.

مرجع الصورة: https://www.mongodb.com/mean-stack
مكونات مكدس MEAN
الواجهة الأمامية Angular.js
Angular.js، الذي يسمي نفسه "إطار عمل MVW لـ JavaScript" (MVW اختصار لـ "Model View and Whatever")، يقع في أعلى مكدس MEAN.
يتيح Angular.js إضافة البيانات الوصفية إلى علامات HTML الخاصة بك، مما يسمح لك بإنشاء تجارب ويب ديناميكية وتفاعلية بطريقة أكثر قوة مما يمكنك تحقيقه باستخدام HTML و JavaScript الثابتة وحدها (أو jQuery).
يحتوي Angular على جميع الميزات التي يجب أن يملكها إطار عمل JavaScript في الواجهة الأمامية، مثل التحقق من النماذج والتوطين والتواصل مع تطبيق الواجهة الخلفية الخاص بك.
طبقة الخادم باستخدام Express.js و Node.js
Express.js هي الخطوة التالية أدناه، تعمل على خادم Node.js. يصف Express.js نفسه بأنه "إطار عمل ويب سريع وغير مرتبط وخفيف الوزن لـ Node.js"، وهذا هو بالضبط ما هو عليه.
يحتوي Express.js على نماذج متقدمة لتوجيه URL (ربط عنوان URL الوارد بدالة الخادم) ومعالجة طلب ورد HTTP. يمكنك الاتصال بوظائف Express.js التي تدعم تطبيقك بإرسال طلبات XML HTTP (XHRs) أو GETs أو POSTs من واجهة Angular.js الأمامية الخاصة بك.
تستفيد هذه الطرق بدورها من برامج تشغيل Node.js الخاصة بـ MongoDB للوصول إلى البيانات في قاعدة بيانات MongoDB الخاصة بك وتحديثها، إما عبر callbacks أو Promises.
قاعدة بيانات MongoDB
إذا كان تطبيقك يحفظ البيانات (ملفات تعريف المستخدم والمحتوى والتعليقات والتحميلات أو الأحداث)، فستريد قاعدة بيانات سهلة التعامل مثل Angular و Express أو Node.
هنا يأتي دور MongoDB: يمكن نقل مستندات JSON المكتوبة في واجهة Angular.js الأمامية الخاصة بك إلى خادم Express.js، حيث يمكن معالجتها وحفظها على الفور في MongoDB (إذا كانت صحيحة) لاسترجاعها لاحقاً.
مرة أخرى، إذا كنت تريد الاستفادة القصوى من MongoDB بسرعة، يجب عليك اختيار MongoDB Atlas. بنقرة واحدة، ستكون لديك أمان قاعدة بيانات شامل ومدمج وقابلية التوسع عبر السحابة المتعددة. سيتم مناقشة ذلك بمزيد من التفاصيل لاحقاً في هذه الصفحة.
مزايا مكدس MEAN
يمكن استخدام تطبيقات MEAN بطرق مختلفة بسبب طبيعتها متعددة المنصات والكتابة مرة واحدة. بينما MEAN مناسب جيداً للتطبيقات الفعلية، خاصة تلك التي تعمل بشكل أصلي في السحابة وتطبيقات الويب ذات الصفحة الواحدة (الديناميكية) المطورة باستخدام Angular.js، إلا أنه يمكن استخدامه أيضاً لأغراض متنوعة أخرى، بما في ذلك ما يلي:
- أدوات إدارة سير العمل.
- المواقع التي تجميع الأخبار.
- تطبيقات قائمة المهام والتقويمات.
- المنتديات التفاعلية.
- بالإضافة إلى الكثير أكثر.
نظراً لأن جميع المكونات مبنية على JavaScript و JSON، فإن التفاعل بين مكونات المكدس بسيط وسهل.
بالإضافة إلى ذلك، فإن المكونات E و A من MEAN (Express و Angular) هما من أكثر أطر عمل JavaScript استخداماً وتدعماً لتطوير الواجهة الخلفية والأمامية على التوالي. يبسط Express عملية توجيه ومعالجة طلبات وردود HTTP، وله دعم ممتاز للبرمجيات الوسيطة التي تدير نقاط نهاية JSON وتقديم النماذج. Angular هو إطار عمل فعال جداً لتطوير مواقع HTML ديناميكية تتصل بخادم الواجهة الخلفية.
MEAN هو أفضل مكدس لتطوير تطبيقات Node.js، سواء كانت واجهات برمجية عالية الإنتاجية أو تطبيقات ويب بسيطة أو خدمات صغيرة.
جميع مكونات مكدس MEAN مفتوحة المصدر، مما يوفر للمطورين فرصة كبيرة وخالية من التكاليف.
عيوب مكدس MEAN
بينما JavaScript هي لغة حديثة ممتازة، إلا أنها لم تكن مخصصة في الأصل لاستخدام تطوير خوادم الواجهة الخلفية. لأن مكدس MEAN مبني على JavaScript، بما في ذلك خادم الواجهة الخلفية، قد يواجه مشاكل التزامن والأداء على نطاق واسع نتيجة لطبيعة JavaScript.
بالإضافة إلى ذلك، نظراً لأن فرصة التطوير سريعة جداً، قد تعاني منطق الأعمال والخادم من فصل غير كافٍ، مما يؤدي إلى كود الإسباغيتي والممارسات السيئة.
أخيراً، بينما هناك العديد من الأدلة والبرامج التعليمية المتاحة، فإنها ستستبعد عادةً قواعد كود JS الملموسة لهذا المكدس. نتيجة لذلك، قد يتسبب شيء نجح بشكل جيد في تطبيق واحد في مضاعفات في تطبيق آخر.
متى يكون من المناسب استخدام مكدس MEAN؟
يتبع MEAN بنية مكدس ثلاثي الطبقات القياسية، والتي تشمل طبقة العرض (Angular.js) وطبقة التطبيق (Express.js و Node.js) وطبقة قاعدة البيانات (MongoDB).
إذا كنت تطور تطبيق JavaScript، خاصة واحد في Node.js، فيجب عليك النظر بجدية في MEAN.
يخزن MongoDB البيانات بصيغة تشبه JSON (BSON، ملحق JSON ثنائي)، ويعرّف لغة استعلام MongoDB (MQL) في JSON، ويوفر مُفسِّر JavaScript لواجهة سطر الأوامر (CLI). MongoDB ليست فقط مخزن بيانات JavaScript/JSON، بل لديها أيضاً قدرات متقدمة مثل الفهرسة والبحث العميق داخل مستندات JSON ومحركات Node.js الأصلية، وهي مبنية للتوسع الأفقي. من الأسهل بكثير بناء تطبيقات سحابية أصلية باستخدام MongoDB Atlas، خدمة قاعدة البيانات السحابية الأصلية من مؤسسي MongoDB.
MEAN هو أفضل مكدس لتطوير تطبيقات Node.js، سواء كانت واجهات برمجية عالية الإنتاجية أو تطبيقات ويب بسيطة أو خدمات صغيرة.
استخدام مكدس MEAN بالاقتران مع MongoDB Atlas
يبسط برنامج تشغيل MongoDB Node.js دمج MongoDB في نصوص Node.js بشكل حدسي، مما يوفر الوقت للمطورين ويعزز إنتاجيتهم.
بعد ذلك، ستحتاج إلى قاعدة بيانات MongoDB. للبدء مع MongoDB، الخيار الأبسط هو إعداد مجموعة مجانية في MongoDB Atlas، قاعدة البيانات السحابية المدارة بالكامل والمتعددة السحابة لـ MongoDB.
يسهل إعداد قواعد بيانات Atlas وتوسيعها، وتوفر URI موحدة للاتصال. استشر دليل MongoDB الرسمي للحصول على معلومات حول كيفية الاتصال بمجموعة.
على طول الطريق، اتصالات Atlas لديها المصادقة باسم المستخدم/كلمة المرور المدمجة وتشفير TLS من طرف إلى طرف كمعيار. بالإضافة إلى ذلك، يمكنك الاستفادة بسرعة من قدرات أمان MongoDB الإضافية مثل مصادقة الشهادة/IAM و LDAP والتشفير في الراحة والتدقيق.
بالإضافة إلى ذلك، يمكن لمشروع Atlas الاستفادة من منصة تطبيق MongoDB Realm لدمج مجموعة متنوعة من موفري المصادقة، بما في ذلك Google و Facebook و JWT والمصادقة المخصصة.
من السهل توسيع Atlas وإدارتها؛ قيمتها الأساسية هي أنها تحمي وتؤمن الطبقة الأكثر قيمة في مكدس MEAN: طبقة البيانات.
هل مكدس MEAN آمن؟
نوصي باستخدام مكدس MEAN بالاقتران مع MongoDB Atlas، حيث أن Atlas لديها بيانات اعتماد مدمجة وجدار حماية وتشفير من طرف إلى طرف، مما يوفر أفضل أساس لحماية MongoDB الخاص بك.
بالإضافة إلى ذلك، تتمتع مكدس MEAN بمعمارية ثلاثية الطبقات متميزة والتي، عند دمجها مع أفضل الممارسات الصناعية والعزل الشبكي الصحيح، يجب أن تمنع المستخدمين النهائيين من الوصول إلى منطق الأعمال وبشكل أهم طبقة قاعدة البيانات. ونتيجة لذلك، يُقصد بتطبيقك بشكل افتراضي منع السلوك الضار للمستخدم من وضعه في خطر (حقن الاستعلامات ومعالجة التعليمات البرمجية والتنكر على المنفذ وما إلى ذلك).