تطور معمارية البرمجيات

المقدمة

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

طرق تصميم البرامج المتجانسة أو المتراصة Monolithic

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

طريقة الكل في واحد All-in-one 

 هذه الطريقة هي ان تكون جميع الأكواد والتعليمات البرمجية في مكان واحد. فمثلاً في اكواد الجافا سكريبت JavaScript تكون كل الأكواد المختصة بمنطق الأعمال، والأكواد المختصة بقاعدة البيانات، والأكواد المختصة ببناء واجهة المستخدم في ملف الـ app.js على نفس الخادم server ونفس المنافذ للخادم server ports.

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

طريقة الطبقات Layering

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

طريقة التدريجات Tiering

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

الطرق الحديثة لبناء التطبيقات

في الوقت الحاضر، معظم التطبيقات المبنية من 3 درجات تكون مستهدفة للتحديث من خلال استعمال تقنيات الـ cloud مثل الـ containers  والخدمات الصغيرة microservices. سنتحدث في الفصول القادمة عن طريقة الخدمات الصغيرة وطريقة البناء بدون اجهزة ملحقة. 

طريقة الخدمات الصغيرة Microservices

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

بناء التطبيقات بدون الأجهزة الملحقة

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

لماذا يعتبر بناء التطبيقات بدون أجهزة ملحقة مهم؟

هناك الكثير من المنافع لبناء التطبيقات بدون اجهزة ملحقة منها: 

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

ولكن، هل الأحدث يعني الأفضل؟

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

التالي...

في المقالات القادمة سنتحدث أكثر عن الطرق الحديثة لبناء التطبيقات الموجودة في السوق مثل Magento, WooCommerce, Shopify, and BigCommerce..

يمكنك التعرف اكثر عن كيفية انشاء موقعك التجاري الالكتروني

أجدد الصفحات

تطور معمارية البرمجيات

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

كيف تبيع على Instagram؟ 3 أسرار تعمل بالفعل في عام 2021

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

كيفية نقل نشاط تجاري محلي عبر الإنترنت: الدليل لتسويق عملك محليًا عبر الإنترنت

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