"من أين تنمو الأرجل" أو ما يسبق البرمجة؟

تحية للجميع! في اليوم الآخر ، كجزء من منصة OTUS التعليمية ، تم إطلاق دورة جديدة: "أنماط الهندسة المعمارية والتصميم" . فيما يتعلق بالبداية ، عقدنا درسًا تقليديًا مفتوحًا . درست ميزات تطبيق متآلف ، وبنيات متعددة المستويات وخوادم. لقد درسنا بالتفصيل النظام الذي يحركه الحدث ، والنظام الموجه للخدمة ، وهيكل الخدمات الصغيرة.



المعلم هو ماتفي كالينين ، متخصص بأكثر من 20 عامًا من الخبرة في البرمجة ومؤلف الدورة "أنماط الهندسة المعمارية والتصميم".

خلفية صغيرة


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

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

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

  • رد سريع؛
  • عرض النطاق
  • الأداء من حيث وحدة الموارد ؛
  • القدرة على التوسع ؛
  • قدرات التكامل ؛
  • ميزات المنصات المستخدمة ؛
  • ميزات العمليات التجارية القائمة ؛
  • وأكثر بكثير…

في الوقت نفسه ، لا يسع المرء إلا أن يتذكر الاقتباس التالي:

“لا يتطلب رمز البرنامج الصحيح تكاليف عمل كبيرة لإنشاءه وصيانته. يتم إجراء التغييرات بسرعة وسهولة. الأخطاء قليلة. تكاليف العمالة هي الحد الأدنى ، في حين أن الوظائف والمرونة القصوى . "

روبرت سيسيل مارتن

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


?


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

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

ثم حان الوقت لاستدعاء اقتباس آخر:

"إن الهدف من هندسة البرمجيات هو الحد من العمالة البشرية المطلوبة لإنشاء وصيانة النظام."

روبرت سيسيل مارتن


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

في هذا السياق ، من المثير للاهتمام أن ننظر إلى قيم البرمجيات:

  • يلبي الرمز متطلبات عملية الأعمال ؛
  • هناك احتمال حدوث تغييرات سريعة في السلوك.

وهنا يطرح السؤال: لماذا هو أكثر أهمية ، تشغيل النظام أو بساطة تغييره ؟ للإجابة عليه ، دعنا ننظر إلى البرنامج من وجهة نظر الأداة:

إذا كان هناك برنامج يعمل بشكل صحيح لا يسمح بالتغييرات ، فإن مثل هذا البرنامج سيصبح غير ذي صلة في نهاية المطاف - عندما تتغير المتطلبات.

إذا كان البرنامج لا يعمل بشكل صحيح ، ولكن يمكن إجراء تغييرات فيه ، فيمكن إجراؤه للعمل بشكل صحيح في إطار المتطلبات المتغيرة. سيظل هذا البرنامج مفيدًا دائمًا.

نماذج (نماذج) البرمجة


ما هو برأيك أكثر نماذج البرمجة شهرة (الأولى)؟ بالطبع متآلف . من المناسب هنا مرة أخرى للحظة العودة إلى عام 1968 والتذكر Edsger Dijkstra ، الذي أظهر أن الاستخدام غير المنضبط للتحولات (تعليمات الانتقال) ضار ببنية البرنامج. واقترح استبدال التحولات بمزيد من المفهوم إذا / ثم / آخر والقيام / أثناء / حتى البناء.

الآن يمكن رؤية تعليمات الانتقال إلى كثير من الأحيان. ولكن قبل ذلك ، كانت تعليمات الانتقال إلى شائعة جدًا. بشكل عام ، هذا شكل من أشكال الشر ، لأنه عندما ترى الرمز الذي يوجد فيه تعليمات الانتقال ، تشعر أنك قد لا تجد النقطة التي تذهب إليها. وكلما انتقلت أكثر ، كلما كان الأمر أكثر تعقيدًا ، أي أننا حصلنا على رمز السباغيتي. نسمي الآن هذا الرمز "السباغيتي" ، حيث ، على سبيل المثال ، 20 حرفًا متداخلاً ، وربما غوتو واحد. هذا أيضا ليس رمز واضح جدا. تخيل أن لديك goto 10-15 ، وتحاول فهم كيفية عمل الدورة - هذا ما كان يفكر فيه ديكسترا.

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

البرمجة الهيكلية


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

وهكذا ، تحولنا بسلاسة إلى البرمجة الهيكلية . وفقا له ، تم بناء البرنامج دون استخدام مشغل goto ويتكون من ثلاثة هياكل تحكم أساسية:

  • تسلسل،
  • التفرع
  • دورة.

يتم استخدام البرامج الفرعية ، ويتم تنفيذ التطوير نفسه خطوة بخطوة ، من الأعلى إلى الأسفل.
ومرة أخرى ، في عام 1966 ... في هذا العام ، لاحظ Ole-Johan Dahl و Kristen Nyugor أنه في لغة ALGOL من الممكن نقل إطار مكدس استدعاء الوظيفة إلى الذاكرة الديناميكية (كومة) ، بحيث يمكن حفظ المتغيرات المحلية المعلنة داخل الوظيفة بعد الخروج منه. ونتيجة لذلك ، تحولت الدالة إلى مُنشئ للفئة ، والمتغيرات المحلية إلى متغيرات المثال ، والدالات المتداخلة في الأساليب. أدى ذلك إلى اكتشاف تعدد الأشكال من خلال الاستخدام الصارم لمؤشرات الوظائف.

البرمجة الشيئية


كما تعلمون جميعًا ، في OOP ، يتم تمثيل البرامج على أنها مجموعة من الكائنات ، كل منها عبارة عن مثيل لفئة معينة ، وتشكل الفئات تسلسل وراثي.

المبادئ الأساسية للهيكل:

  • التجريد؛
  • ميراث؛
  • تعدد الأشكال.

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

برمجة حتمية


يشبه البرنامج الضروري الأوامر التي يجب على الكمبيوتر تنفيذها. وتتميز هذه البرامج بما يلي:

  • يتم كتابة التعليمات في التعليمات البرمجية المصدر للبرنامج ؛
  • يجب اتباع التعليمات بالتسلسل ؛
  • يمكن قراءة البيانات التي تم الحصول عليها أثناء تنفيذ التعليمات السابقة من الذاكرة عن طريق التعليمات اللاحقة ؛
  • يمكن كتابة البيانات التي تم الحصول عليها عن طريق تنفيذ التعليمات إلى الذاكرة.

أيضا تصميم قديم جدا. الملامح الرئيسية للغات الحتمية:

  • استخدام المتغيرات المسماة ؛
  • استخدام عامل التعيين ؛
  • استخدام التعبيرات المركبة ؛
  • استخدام الروتين.

ومع ذلك ، نواصل "السفر عبر الزمن". هذه المرة سنعود للحظة عام 1936 (!). من المثير للاهتمام أن كنيسة ألونزو اخترعت هذا العام حساب التفاضل والتكامل لامدا (أو λ- حساب التفاضل والتكامل) ، والتي شكلت لاحقًا ، في عام 1958 ، أساس لغة LISP التي ابتكرها جون مكارثي. المفهوم الأساسي لـ λ-calculus هو عدم الثبات - أي استحالة تغيير قيم الرموز.

البرمجة الوظيفية


تتضمن البرمجة الوظيفية القيام بحساب نتائج الدالات من بيانات المصدر ونتائج الوظائف الأخرى ولا تتضمن تخزينًا صريحًا لحالة البرنامج.

في الواقع ، هذا يعني أن اللغة الوظيفية ليس لها بيان مهمة.

دعونا نلقي نظرة على الفرق بين الأنماط الحتمية والوظيفية باستخدام مثال:

#  
target = []  #   
for item in source_list:  #     
    trans1 = G(item)  #   G()
    trans2 = F(trans1)  #   F()
    target.append(trans2)  #     
#  
compose2 = lambda A, B: lambda x: A(B(x))
target = map(compose2(F, G), source_list)

إذن ما هي هندسة البرمجيات؟


هندسة البرمجيات هي مجموعة من القرارات حول تنظيم نظام البرمجيات.

ويشمل:

  • اختيار العناصر الهيكلية وواجهاتهم ؛
  • سلوك العناصر والواجهات المختارة وتفاعلها ؛
  • الجمع بين عناصر الهيكل والسلوك المختارة في أنظمة أكبر ؛
  • النمط المعماري الذي يوجه المنظمة بأكملها.

يرجى ملاحظة: أولاً توصلنا إلى استنتاج مفاده أن goto لا يناسبنا ، ثم رأينا أن هناك قواعد معينة (تغليف ، وراثة ، تعدد الأشكال) ، ثم أدركنا أن هذه القواعد لا تعمل فقط ، ولكن وفقًا لمبادئ معينة. النقطة الرابعة هي الأسلوب المعماري ، وسنتحدث عنه لاحقًا.

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

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

يجب أن توفر الهندسة الجيدة ما يلي:

  1. مجموعة متنوعة من حالات الاستخدام والتشغيل الفعال للنظام.
  2. بساطة صيانة النظام.
  3. سهولة تصميم النظام.
  4. نشر النظام بسهولة.

الأساليب المعمارية


متآلف


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



مزايا:

  1. سهل التنفيذ. لا حاجة لإضاعة الوقت في التفكير في الاتصال بين العمليات.
  2. من السهل تطوير اختبارات شاملة.
  3. سهل النشر.
  4. يمكنك التوسع بسهولة باستخدام Loadbalancer عبر مثيلات متعددة من تطبيقك.
  5. سهل تنفيذه.



ولكن الآن لديه المزيد من أوجه القصور :

  1. يؤدي التماسك القوي إلى التشابك مع تطور التطبيق.
  2. يؤدي التحجيم المستقل للمكونات إلى تعقيد وإعادة اختبار الوظائف بشكل كامل.
  3. أكثر صعوبة في الفهم.
  4. مع زيادة التعقيد ، ينمو وقت التطوير.
  5. عدم عزل المكونات.

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

ما هي الخدمة؟


يعرف الجميع الآن ما هي الخدمة. يمكن تعريفه كمورد مرئي يقوم بمهمة متكررة ويتم وصفه بواسطة تعليمات خارجية.

الخدمات الحديثة لها الميزات التالية :

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

نتيجة للميزات المذكورة أعلاه ، نشأ مفهوم العمارة الموجهة نحو الخدمة (SOA).

العمارة الموجهة نحو الخدمة (SOA)


SOA هو نمط معماري لإنشاء بنية تكنولوجيا المعلومات للمؤسسات ، باستخدام مبادئ توجيه الخدمة لتحقيق علاقة وثيقة بين الأعمال وأنظمة المعلومات الداعمة لها.



الخدمية لها الخصائص التالية :

  1. يحسن العلاقة بين هندسة المشاريع والأعمال.
  2. يتيح لك إنشاء تطبيقات معقدة من مجموعات من الخدمات المتكاملة.
  3. يخلق عمليات تجارية مرنة.
  4. لا يعتمد على مجموعة من التقنيات.
  5. مستقل بمعنى التطور والنشر المستقل.

يتكون نموذج نشر SOA من ذكاء الأعمال والتطوير وذكاء تكنولوجيا المعلومات والتطوير. يتكون التجمع من خدمات البرمجة وبناء التطبيقات المعقدة. تتكون الاستضافة من تطبيقات الاستضافة وأدوات وقت التشغيل مثل حافلات خدمة المؤسسة (ESBs). أما الدليل فهو عبارة عن دعم بيئة التشغيل ومراقبة أداء الخدمات ومراقبة الالتزام بسياسات الخدمة.



هندسة الخدمات الصغيرة


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



مزايا:

  1. يدعم نمذجة النظام بأكمله.
  2. تعد الخدمات غير ذات الصلة أسهل في التعديل لخدمة التطبيقات المختلفة.
  3. قد تنتمي الخدمات المختلفة إلى فرق مختلفة.
  4. يمكن إعادة استخدام خدمات الخدمة في جميع أنحاء الشركة.
  5. أسهل للفهم والاختبار.
  6. غير مرتبط بالتكنولوجيا المستخدمة في الخدمات الأخرى.
  7. يؤدي عزل الخدمة إلى زيادة الموثوقية الإجمالية لجميع الوظائف.



سلبيات:

  1. صعوبات في تنفيذ الوظائف العامة (التسجيل ، حقوق الوصول ، إلخ).
  2. من الصعب إجراء اختبارات نظام شاملة.
  3. تشغيل ودعم أصعب.
  4. هناك حاجة إلى المزيد من المعدات من المتراصة.
  5. يؤدي دعم العديد من الفرق إلى تنسيق التفاعل بينهم.

من الجدير بالذكر أنه في هذه الهندسة المعمارية يصعب جدًا القيام بأي شيء بدون DevOps.

عمارة ذات طبقات


العمارة ذات الطبقات هي أكثر أنماط العمارة شيوعًا. يطلق عليه أيضًا بنية n-tier ، حيث n هو عدد المستويات.

ينقسم النظام إلى مستويات يتفاعل كل منها مع مستويين مجاورين فقط.

لا تتضمن العمارة أي عدد إلزامي من المستويات - يمكن أن يكون هناك ثلاثة أو أربعة أو خمسة أو أكثر. في أغلب الأحيان ، يتم استخدام أنظمة ثلاثية المستويات: مع مستوى العرض التقديمي (العميل) ، والمستوى المنطقي ، ومستوى البيانات. الطبقات
الأكثر شيوعًا هي :

  • طبقة العرض (للعمل مع المستخدمين) ؛
  • طبقة التطبيق (الخدمة - الأمن ، الوصول) ؛
  • طبقة منطق الأعمال (تنفيذ المجال) ؛
  • طبقة الوصول إلى البيانات (تمثيل الواجهة إلى قاعدة البيانات).

طبقات مغلقة


يفصل مفهوم عزل المستويات بشكل صارم مستوى واحد عن آخر: يمكنك الانتقال من مستوى إلى آخر فقط ولا يمكنك القفز على الفور من خلال عدة.



افتح الطبقات


يتيح لك النظام القفز فوق المستويات المفتوحة والوقوع على المستويات الموجودة أدناه.



MVC


تم وصف مفهوم MVC في عام 1978. تم نشر النسخة النهائية من مفهوم MVC فقط في عام 1988 في مجلة Technology Object.

الهدف الرئيسي هو فصل منطق (نموذج) الأعمال عن التصور (العرض ، العرض). ماذا يعطي:

  • زيادة إمكانية إعادة استخدام التعليمات البرمجية.
  • يمكن للمستخدم رؤية نفس البيانات في وقت واحد في سياقات مختلفة.



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



العمارة مدفوعة بالأحداث


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

يتكون من مكونات معالجة حدث مفردة متباينة تستقبل وتعالج الأحداث بشكل غير متزامن.

يتكون القالب من طبولوجيا رئيسيتين - وسيط وسيط.

طوبولوجيا الموزع


هناك عمليات تتطلب السيطرة على تسلسل الخطوات. نحن هنا وسيط مفيد.

الأنواع الرئيسية لمكونات العمارة:

  • قوائم انتظار الأحداث ؛
  • وسيط الأحداث ؛
  • قنوات الأحداث ؛
  • معالجات الأحداث.

الحدث

يمكن تعريف الحدث على أنه "تغيير كبير في الحالة". يمكن أن يتكون الحدث من جزأين:

  • العنوان (اسم الحدث والطابع الزمني للحدث ونوعه) ؛
  • الجسم (يصف ما حدث بالفعل).

طوبولوجيا الوسيط

يرسل العميل حدثًا إلى قائمة انتظار الأحداث ، والتي يتم استخدامها لإرسال الحدث إلى الوسيط.

يستقبل الوسيط الحدث الأولي ويرسل أحداث إضافية غير متزامنة إلى قنوات الحدث لكل خطوة من العملية.

تتلقى معالجات الأحداث ، التي تستمع إلى قنوات الأحداث ، حدثًا من وسيط وتقوم بتنفيذ منطق عمل معين عن طريق معالجة الحدث.



طوبولوجيا الوسيط

تختلف طوبولوجيا الوسيط عن طوبولوجيا الوسيط في عدم وجود وسيط حدث مركزي. يتم توزيع تدفق الرسائل بين مكونات معالج الأحداث في سلسلة من خلال وسيط رسائل خفيف الوزن (على سبيل المثال ، ActiveMQ ، HornetQ ، إلخ). هذا الهيكل مفيد عندما يكون هناك تدفق بسيط نسبيًا لمعالجة الأحداث ولا توجد حاجة إلى تنسيق حدث مركزي.

يتحمل كل مكون من مكونات معالج الأحداث مسؤولية معالجة الحدث ونشر حدث جديد يشير إلى الإجراء الذي اكتمل للتو.



إذا كان الموقف الأول غير متزامن "في مكان ما أدناه" ، فإن الموقف الثاني غير متزامن ، يمكن للمرء أن يقول ، تمامًا. حدث واحد يولد العديد من الأحداث ، ويمكن أن تزيد وتزيد.

مزايا العمارة مدفوعة بالحدث:

  • يتم عزل المكونات والسماح بإنجاز كل منها دون التأثير على بقية النظام ؛
  • سهولة الانتشار ؛
  • أداء عالي. يسمح بالعمليات غير المتزامنة المتوازية ؛
  • موازين جيدة.

سلبيات:

  • صعب الاختبار
  • يصعب تطويره بسبب التزامن الواضح.

هندسة بدون خادم


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

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

تتميز المصطلحات التالية:

  1. (Function-as-a-Service) — , .
  2. (Backend as a Service) — , - API, . , , , .

إذا أخذنا بعين الاعتبار بنية "Client-server" ، يتم تنفيذ معظم المنطق في النظام (المصادقة ، التنقل في الصفحة ، البحث ، المعاملات) بواسطة تطبيق الخادم.



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

العميل في طريقه بالفعل ليصبح تطبيقًا من صفحة واحدة. يمكن إجراء البحث من خلال خدمة البحث (FaaS - تعمل كخدمة). يتم أيضًا عزل وظيفة الشراء عن العميل كخدمة منفصلة (FaaS).



حسنًا ، هذا كل شيء ، إذا كنت مهتمًا بالتفاصيل ، شاهد الفيديو بأكمله. أما بالنسبة للدورة الجديدة ، يمكنك التعرف على برنامجها هنا.

All Articles