المقدمة
هناك علاقة قوية بين طريقة معمارية وبناء التطبيقات وكفاءة فريق التطوير في شركتك، وطريقة اختبار وفحص البرمجيات، وإدارة التطبيقات، ومدى سرعة وصول المنتجات إلى السوق، ومدى سرعة وصول المنتجات إلى السوق، ومدة سرعة تكيف التطبيقات مع متطلبات السوق. سأتحدث في هذه المقالة عن تطور معمارية البرمجيات ابتداءً من التطبيقات المنتجانسة إلى ان اصبحت التطبيقات تبنى بدون اجهزة ملحقة او 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. بهذه الطريقة يمكن بسهولة إلحاق أي نوع جهاز جديد.
لماذا يعتبر بناء التطبيقات بدون أجهزة ملحقة مهم؟
هناك الكثير من المنافع لبناء التطبيقات بدون اجهزة ملحقة منها:
يمكن بسهولة إلحاق أي نوع من الأجهزة مثل الطابعات، اجهزة الهاتف المحمولة، وغيرها على حسب الحاجة وبطريقة اسهل.
المرونة في التطوير وسرعة وصول المنتجات إلى السوق.
كلما زاد عدد المستخدمين، يكون من السهل زيادة خادمات الوظيفة المتزايد عليها الطلب.
يمكن تشخيص التطبيق على حسب نوع الجهاز الملحق وحاجة المستخدمين بسهولة
يمكن نشر وتوزيع التطبيقات بدون خادم Serverless والتي تساعد في سهولة التحجيم التلقائي على حسب عدد المستخدمين، سهولة الإعداد وبداية الشركات.
ولكن، هل الأحدث يعني الأفضل؟
إن الطرق الحديثة لبنية التطبيقات مثل طريقة الخدمات الحديثة وبدون الأجهزة الملحقة لها فوائد عديدة، ولكن هل هذه الفوائد دائماً تعني الأفضل؟ الإجابة هنا “لا” حيث أن للشركات الناشئة، الوقت والموارد والتكلفة المستخدمة لإعداد البنية الحديثة قد يكون أعلى في البداية مما يؤخر خروج الشركة الناشئة إلى السوق واستخدام معظم الموارد في مرحلة ما قبل البداية. من ناحية أخرى، فإن الطرق التقليدية قد تعطي فرق التطوير تحكم افضل في ما يريدون بناءه.
التالي…
في المقالات القادمة سنتحدث أكثر عن الطرق الحديثة لبناء التطبيقات الموجودة في السوق مثل Magento, WooCommerce, Shopify, and BigCommerce..