تصميم ونشر الواجهات الخلفية على AWS بدون كود: دليل شامل باستخدام Amplify Sandbox

دقائق القراءة: 6

مقدمة إلى AWS Amplify Sandbox: ثورة في تصميم الواجهات الخلفية بدون كود

في عالم تطوير البرمجيات المتسارع، أصبح البحث عن حلول تسرّع عملية البناء وتقلل من التعقيد أمراً حيوياً. هنا تبرز أهمية الأدوات التي تمكّن المطورين، وحتى غير التقنيين، من إنشاء بنى تحتية قوية دون الحاجة للغوص في تفاصيل الأكواد المعقدة أو امتلاك خبرة عميقة في بيئات السحابة. ومن هذا المنطلق، يسرّنا أن نقدم لكم إحدى أبرز الابتكارات التي أُطلقت في مؤتمر AWS re:Invent 2020: أداة Amplify Sandbox.

تمثل Amplify Admin UI واجهة منخفضة الكود (low-code) مصممة خصيصاً لبناء الواجهات الخلفية للتطبيقات، وهي لا تتطلب أي خبرة مسبقة في AWS. لكن ما قد يغفل عنه الكثيرون هو أن Amplify Admin تتضمن أيضاً بيئة Sandbox جديدة ومذهلة، تتيح لك البدء في العمل دون الحاجة حتى لامتلاك حساب AWS.

هذه البيئة التجريبية (Sandbox) هي نسخة قابلة للمشاركة علناً من واجهة Amplify Admin UI، حيث يمكنك إنشاء نماذج البيانات (data models) واختبارها بصرياً دون تسجيل الدخول إلى حساب AWS. حالياً، تتركز إمكانيات Sandbox بشكل أساسي على نماذج البيانات، ولكن من المتوقع أن يتم توسيعها لتشمل فئات AWS Amplify الأخرى مستقبلاً.

عند دخولك إلى بيئة Sandbox لأول مرة، ستجد نفسك أمام باني مرئي (visual builder) يتيح لك إضافة النماذج (models)، التعدادات (enums)، والأنواع المخصصة (custom types). في معظم الأحيان، ستركز على إنشاء النماذج. يمكنك تسمية النماذج، إضافة الحقول (fields)، وتحديد أنواعها (بما في ذلك ما إذا كانت حقولاً اختيارية أو مصفوفات)، وحتى إضافة علاقات من نوع واحد لواحد (one-to-one)، واحد لمتعدد (one-to-many)، أو متعدد لمتعدد (many-to-many) بين النماذج المختلفة.

واجهة Amplify Sandbox لتصميم نماذج البيانات بصرياً

علاوة على ذلك، تتيح لك هذه الأداة مشاركة نماذج البيانات التي تنشئها! هذا يعني أنك لست مضطراً للبدء من الصفر في كل مرة تبدأ فيها مشروعاً جديداً، ويمكنك مشاركة مخططات البيانات (data schemas) الخاصة بك تماماً كما تشارك مقتطفات الأكواد (code gists).

أربعة أمثلة عملية لتطبيقات الواجهة الخلفية باستخدام Amplify Sandbox

لإظهار مدى قوة ومرونة Amplify Sandbox، سنستعرض أربعة أمثلة عملية لتطبيقات مختلفة يمكن تصميم واجهاتها الخلفية بسهولة فائقة:

  • تطبيق للملاحظات (مستوحى من تطبيق SimpleNote المجاني).
  • تطبيق للدردشة (مستوحى من Slack).
  • تطبيق للتواصل الاجتماعي (مستوحى من Twitter).
  • واجهة خلفية لمتجر تجارة إلكترونية.

أهمية تخطيط نماذج البيانات: مخططات علاقات الكيانات (ERDs)

قبل الغوص في بناء النماذج، من الضروري التخطيط المسبق. الطريقة المجربة والموثوقة للقيام بذلك هي رسم مخططات علاقات الكيانات (Entity Relationship Diagrams - ERDs).

تسهل واجهة Amplify Admin UI عملية البدء، ولكن التخطيط المسبق يضيف قيمة كبيرة. لقد اخترنا استخدام Lucidcharts لرسوماتنا، ولكن يمكنك استخدام أي أداة رسم تخطيطي أخرى لهذا الغرض.

مثال لمخطط علاقات الكيانات (ERD) فارغ للتخطيط

تصميم الواجهات الخلفية لتطبيقات مختلفة

تطبيق الملاحظات: البساطة والكفاءة

هذا تطبيق بسيط أستخدمه شخصياً كل يوم، وأحب بساطته. لدينا نموذجان رئيسيان: Notes (الملاحظات) و Tags (الوسوم). توجد علاقة واحدة من نوع متعدد لمتعدد (many-to-many) بينهما لتسهيل الاستعلامات.

يمكنك توسيع هذا النموذج لاحقاً لتقديم ميزات التحرير التعاوني أو التحرير المستند إلى الأدوار، وهي متاحة بمجرد نشر هذا النموذج. يجب أيضاً الاستفادة من مكتبات DataStore من جانب العميل لضمان عمل الملاحظات دون اتصال بالإنترنت (offline).

يمكنك الاطلاع على بيئة Sandbox لهذا النموذج هنا: رابط Sandbox.

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

نموذج بيانات تطبيق الملاحظات (SimpleNote Clone) في Amplify Sandbox

تطبيق الدردشة: إدارة القنوات والمستخدمين

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

لذلك، توجد علاقة ثلاثية مثيرة للاهتمام بين النماذج الثلاثة الأساسية. يمكنك الاطلاع على بيئة Sandbox هنا: رابط Sandbox.

نموذج Channel هو الأكثر تعقيداً هنا – لاحظ كيف نستفيد بالكامل من جميع أنواع العلاقات المتاحة في Sandbox:

  • يمكن أن تحتوي القنوات على العديد من المستخدمين، ويمكن للمستخدمين الانضمام إلى العديد من القنوات.
  • يمكن إنشاء القنوات بواسطة مستخدم واحد فقط، ولا توجد حاجة لتتبع القنوات التي أنشأها أي مستخدم معين.
  • يمكن أن تحتوي القنوات على العديد من الرسائل، ولكن كل رسالة يمكن أن تنتمي إلى قناة واحدة فقط.

نموذج بيانات تطبيق الدردشة (Slack Clone) في Amplify Sandbox

تطبيق التواصل الاجتماعي: تعقيد التفاعلات

غالباً ما تكون نماذج بيانات تطبيقات التواصل الاجتماعي من أكثر النماذج تعقيداً. هنا، سنقوم بتطبيق الحد الأدنى من تطبيق التواصل الاجتماعي القابل للحياة (minimum viable social media app) – حيث نقدم نموذج Tweet (التغريدة) ونموذج User (المستخدم) فقط.

ومع ذلك، فإن نموذج Tweet نفسه يحتوي على مجموعة معقدة من العلاقات. فهو يحتوي على مستخدم مؤلف (author User)، ومجموعة من الإعجابات (likes)، والردود (replies)، والاقتباسات (quotes) التي تحتاج إلى نمذجة.

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

يمكنك الاطلاع على بيئة Sandbox هنا: رابط Sandbox.

لاحظ أن التكرار (recursion) يتم تنفيذه هنا عن طريق نمذجة الإعجابات والردود والاقتباسات كمصفوفة من معرفات المستخدم (User ID's) والتغريدات (Tweet ID's) الخاصة بها.

نموذج بيانات تطبيق التواصل الاجتماعي (Twitter Clone) في Amplify Sandbox

متجر التجارة الإلكترونية: إدارة المنتجات والطلبات والعملاء

تزداد المخاطر عندما يتعلق الأمر بالمال. لذا، فإن تتبع الطلبات وضمان تجربة عملاء ممتازة أمر بالغ الأهمية. نقوم بنمذجة واجهة خلفية نموذجية للتجارة الإلكترونية من خلال ضمان وجود نماذج منفصلة للموردين (Suppliers)، المنتجات (Products)، الطلبات (Orders)، والعملاء (Customers).

للتغلغل في الفروق الدقيقة لتجربة الطلب النموذجية، قمنا أيضاً بتضمين القدرة على تحديد كميات المنتجات في طلب واحد، وكذلك تطبيق الكوبونات (coupons).

نظراً لوجود عدد لا نهائي من الاختلافات في تجربة التجارة الإلكترونية، لا يمكننا نمذجة كل منها، ولكن نأمل أن يكون هذا بمثابة نقطة بداية جيدة. شارك نموذجك الخاص إذا كان لديك تعديلات على هذا المفهوم!

يمكنك الاطلاع على بيئة Sandbox هنا: رابط Sandbox.

لاحظ أن التعقيد الهائل لهذا النموذج يتم التعامل معه بسهولة بواسطة ميزات Sandbox. يمكن أن يحتوي الطلب الواحد على عميل واحد فقط، ولكن يمكن للعميل الواحد أن يكون لديه العديد من الطلبات. عند إعداد هذا في نموذج Customer، تكون Sandbox ذكية بما يكفي لإعداد حقل customerID مطابق تلقائياً كمصدر علاقة (Relationship Source) في نموذج Order. سيكون هذا مفيداً جداً لاستعلامات GraphQL في المستقبل.

نموذج بيانات متجر التجارة الإلكترونية في Amplify Sandbox

نشر نموذج الواجهة الخلفية على AWS بخطوات بسيطة

بمجرد الانتهاء من تصميم نموذجك، ستطالبك بيئة Sandbox باختباره محلياً عن طريق تنزيله باستخدام Amplify CLI. ومع ذلك، إذا كنت ترغب فقط في نشره مباشرة على AWS، يمكنك تخطي هذه الخطوة والتوجه مباشرة إلى مرحلة “النشر على AWS” (Deploy to AWS).

خيار النشر إلى AWS مباشرة من Amplify Sandbox

بمجرد النقر على “تسجيل الدخول للنشر على AWS” (Login to deploy to AWS)، تكون قد انتهيت! تخيل ذلك – لقد أنشأت للتو نموذج بيانات خلفية حقيقياً دون كتابة أي كود ونشرته مباشرة على AWS. 🤯

تأكيد نجاح نشر الواجهة الخلفية على AWS

من هنا، يمكنك إعداد المزيد من التخصيصات، بما في ذلك إضافة المصادقة (authentication)، ودعوة المستخدمين وتعيين الأدوار، وإضافة قواعد الترخيص (authorization rules) على كل نموذج، وإنشاء محتوى باستخدام محرر WYSIWYG الخاص بنا، والمزيد.

إذا كنت ترغب في معرفة المزيد، فقد كتبت Ali Spittel منشوراً رائعاً حول مدى قوة واجهة Amplify Admin UI بعد نشرها، بينما ركز هذا المقال على بيئة Sandbox التي لا تتطلب حساباً قبل النشر. كما كتب Nader Dabit عن 10 ميزات أخرى قد تكون حريصاً على تجربتها.

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

الخلاصة التقنية

يمثل AWS Amplify Sandbox نقلة نوعية في مجال تطوير الواجهات الخلفية (backend development)، حيث يكسر الحواجز التقليدية التي تتطلب خبرة عميقة في البرمجة أو إدارة البنية التحتية السحابية. من خلال واجهة بصرية بديهية، يتيح للمطورين والمصممين على حد سواء التركيز على منطق العمل وتصميم نماذج البيانات المعقدة بكفاءة غير مسبوقة. إن القدرة على إنشاء مخططات بيانات قابلة للمشاركة ونشرها مباشرة على AWS بدون كود يفتح آفاقاً جديدة للابتكار، ويقلل بشكل كبير من الوقت والتكلفة اللازمين لإطلاق المنتجات. هذه الأداة لا تبسط عملية التطوير فحسب، بل تمكّن فرق العمل من التجريب والتكرار السريع، مما يجعلها إضافة قيمة لأي مشروع يسعى للسرعة والمرونة في بيئة cloud-native.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *