عرض مشاركة واحدة
قديم 01-04-2019, 04:48 PM   #1
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
افتراضي ما هو معني مصطلح JAMstack ؟

إذا كنت مهتما بجديد الويب والتقنيات المستخدمة في تطوير تطبيقاته، فمن الممكن جدا أنك سمعت أو قرأت مؤخرا عن شيء اسمه JAMstack، وربما تساءلت عن معنى وجدوى هذه الصيحة الجديدة في عالم تطوير تطبيقات الويب.
سأشرح في هذا المقال بشكل مفصل معنى JAMstack والغاية من إنشاء تطبيقات ومواقع الويب وفقه، وسأبين لكم كذلك متى نقول عن موقع ما بأنه متوافق مع أسلوب JAM ومتى لا يكون كذلك.
متى نستطيع القول عن تطبيق ويب بأنه تطبييق JAMstack ؟

بحسب موقع jamstack.org فإن تطبيقات JAM تخضع لثلاثة مبادئ أساسية، وهي :
1. JavaScript

جميع العمليات الديناميكية (Dynamic Operations) يجب أن تتم في جهة العميل بواسطة جافاسكريبت، وليس شرطا استخدام مكتبة أو إطار عمل جافاسكريبت محدد دون غيره.
2. APIs

جميع العمليات في جهة الخادم والتفاعلات مع قاعدة البيانات يجب أن تتم من خلال واجهات برمجية يمكن الوصول إليها عبر بروتوكول Https من خلال جافاسكريبت. هذه الواجهات البرمجية يمكن أن تكون تابعة لأطراف ثالثة (Third-party services)، كما يمكن أن تكون كذلك من تطويرنا الخاص.
3. Markup

قوالب الصفحات يجب أن يتم توليدها قبل نشر التطبيق، إما باستخدام أحد مولدات المواقع الساكنة (Static Site Generators) مثل Gatsby.js أو Jekyll، أو باستخدام أداة من أدوات البناء المعروفة مثل Webpack.
قد تسألون: وما هو الجديد في هذا الموضوع ؟ جميع تطبيقات الويب الحديثة (مثلا تطبيقات SPA و PWA) تعتمد على جافاسكريبت، APIs و Html.
هذا السؤال جيد ووجيه، سألته مع نفسي أنا كذلك حينما سمعت عن هذا الموضوع لأول مرة.
الفرق بين تطبيقات JAMstack وغيرها من تطبيقات الويب

الفرق ذكرته أعلاه ولكن سأعيد شرحه ببعض من التفصيل.
يمكن أن ألخص لكم الفرق في جملة بسيطة: في تطبيقات “جام ستاك” نقوم بتوليد صفحات التطبيق أو الموقع في مرحلة البناء (Building)، يعني قبل أن يتم نشر (Deploy) التطبيق معني مصطلح JAMstack بينما في أنواع تطبيقات الويب الأخرى يتم توليد HTML ديناميكيا في مرحلة Runtime، يعني في الوقت الذي يطلب منه المستخدم تلك الصفحة، ولا يهمنا إن كان التوليد في جهة الخادم (Server side) أو جهة العميل (Client side).
معني مصطلح JAMstackالصورة من مدونة snipcart.comبتعبير آخر، تطبيقات JAM هي مجرد مواقع إلكترونية ساكنة أضيفت إليها بعض اللمسات والمزايا العصرية، أهمها القدرة على القيام بعمليات دينامكية بفضل الحرفين J و A (جافاسكريبت و APIs) معني مصطلح JAMstack
منافع وإيجابيات JAMstack

1. سرعة وأداء فائقين

بما أن الصفحات كلها عبارة عن قوالب HTML جاهزة فإن إرسالها للمستخدم يتم بسرعة خيالية، لا سيما إذا تمت استضافة تلك الصفحات في إحدى شبكات تقديم المحتوى (CDN) المعروفة مثل Netlify أو Github Pages.
2. حماية وأمان أكثر

في تطبيقات JAMstack يكون كود العميل (HTML و javascript) وكود الخادم (مثلا Node.js ،PHP، بايثون إلخ…) مستضافين على نحو منفصل. فكما قلنا يتم استضافة ال Markup في الغالب في شبكات CDN بينما الخادم (APIs) يمكن أن يكون في مركز بيانات آخر من هذا العالم، ويمكن أن يكون خدمة من طرف ثالث كفايربيز على سبيل المثال.
فصل هذين الجزئين يجعلنا نركز أكثر على كل منهما على حدة، والواجهات البرمجية التي يتم الإستعانة بها تقسم بدورها إلى خدمات صغيرة (Microservices APIs)، بحيث أن كل منها يقوم بعمل محدد وهكذا تُختزل الأماكن والثغرات التي يمكن أن يأتي منها الخطر.
3. تكاليف أقل

تطبيقات JAMstack تستهلك موارد الخادم أقل من غيرها من أنواع التطبيقات الأخرى، وبالتالي فتكاليف Scaling تكون أقل مع ازدياد حجم وعدد المستخدمين. كما أن شبكات تقديم المحتوى (Content Delivery Networks) تقدم حلولا وإمكانية لعمل Scaling بأسعار معقولة مقارنة بتكاليف الإستضافات التقليدية والسحابية الأخرى.

raheel غير متواجد حالياً   اقتباس