لنكن صريحين، تصميم أنظمة الواجهة الخلفية مهمل. الرأي السائد هو أنها وظيفية وستُستخدم بشكل أساسي من قِبل الفرق الداخلية. فلماذا نُرهق أنفسنا بالتصميم؟ دعونا نضمن وجود جميع العناصر الوظيفية. يُضاف إلى ذلك أن أنظمة الواجهة الخلفية الأولية كانت تعتمد على أجهزة سطح المكتب (مثل نماذج Oracle/PowerBuilder)، وبالتالي كان نطاق التصاميم المبتكرة محدودًا بوظائف مُنشئ النماذج.
وهذا يعني تصميماتٍ تُكدّس فيها أزرار الإجراءات في كل مساحةٍ ممكنة، ليتمكن المستخدم من القيام بكل شيء من مكانٍ واحد. مما ينتج عنه تصميمٌ يبدو كخليطٍ فوضويّ تماماً.
الحقيقة هي أن مستخدميك الداخليين قد تطوروا بشكل كبير أيضاً. فمع انتشار وسائل التواصل الاجتماعي، وتطبيقات التجارة السريعة، والتغيرات في الخدمات المصرفية للأفراد، والعديد من التطبيقات الأخرى، فضلاً عن تقنيات الذكاء الاصطناعي، يطالب مستخدموك الداخليون بنفس الميزات التي يتعرضون لها حالياً، مثل نتائج البحث الأسرع، والنماذج البديهية التي تُملأ تلقائياً، والتوصيات والتحليلات على الشاشة دون الحاجة إلى إنشاء تقرير، وواجهة الويب والهواتف المحمولة، وهذه مجرد أمثلة قليلة.
ليس هذا فحسب، بل حتى نماذج قواعد البيانات الخاصة بك تتطور. يدعم كل من Oracle وPowerBuilder الآن واجهات المستخدم على الويب، مما يسهل الاطلاع على تصميمات الويب القوية.
التحديات
لطالما ركز التصميم التقليدي للمواقع على التدفقات البسيطة والبديهية مع تصاميم غنية/بسيطة أو التكيف مع الاتجاهات الحالية. ومع ذلك، يتطلب تصميم أنظمة الواجهة الخلفية مراعاة اعتبارات متعددة:
- إطار التصميمكما سبق شرحه، من الضروري فهم إطار التصميم. هل يتم استخدام أداة إنشاء نماذج، أم أنه تطبيق ويب؟ هذان العاملان يحددان الاستراتيجيات.
- إطار عمل البيانات وواجهة برمجة التطبيقاتتركز مواقع البيع بالتجزئة/الاستهلاكية على سرعة البيانات وتوافرها الفوري، وغالبًا ما تستخدم التخزين المؤقت في واجهة المستخدم. أما بالنسبة لأنظمة الواجهة الخلفية، فتُؤخذ في الاعتبار اعتبارات الأمان، وأحمال الخادم، وعرض النطاق الترددي الداخلي. وهذا يعني أن ترقيم الصفحات قد يتطلب استدعاءً من جانب الخادم بدلًا من الواجهة الأمامية. وقد تتطلب البيانات تحديثًا فعليًا بدلًا من التحديث التلقائي. في حال عدم استخدام بروتوكولات WebSockets/أحداث جانب الخادم، فقد لا تكون الإشعارات أو تحديثات الحالة فورية، وقد تتطلب زرًا إضافيًا. كل هذا يعني أن التصميم يجب أن يتكيف مع بعض أو أكثر من هذه التحديات التقنية.
- أذونات المستخدم أو التحكم في الوصول المستند إلى الأدواريُعدّ التحكم في الوصول القائم على الأدوار شائعًا في معظم أنظمة الواجهة الخلفية، مما يعني تقييد الوصول إلى بعض الوحدات. ويؤدي ذلك إلى اعتبارات إضافية حول: ما البيانات التي يمكن عرضها لهذا المستخدم تحديدًا؟ وهل يمكن للمستخدم البحث عن بيانات مستخدم آخر؟ كل هذه العوامل تُسهم في تصميم واجهة مستخدم سهلة الاستخدام.
- اعتبارات سير العملتتميز العديد من أنظمة الواجهة الخلفية بسير عمل معقد يتضمن مصفوفة موافقة وحدودًا محددة. لذا، يجب أن يراعي تصميم أي واجهة مستخدم عرض سير العمل هذا، بالإضافة إلى أوقات الاستجابة والاستعلامات والإجراءات ذات الصلة.
- فهم المجاليُعدّ الفهم العميق للعملية الشاملة أمرًا بالغ الأهمية للعديد من أنظمة الواجهة الخلفية. سيؤدي ذلك إلى تقليل أوقات دورة العمل من خلال شرح العمليات المعقدة.
- عامل المقياسعند تصميم منصة خلفية، نتحدث عن مئات أو آلاف الشاشات ذات حالات متعددة. كانت أنظمة التصميم التقليدية تُنفذ في نهاية المشروع، بعد اكتمال التصاميم، وتُستخدم في الغالب كمرجع لدليل الأسلوب. هنا، يجب عكس العملية. أنشئ نظام تصميم مع مكتبة مكونات مناسبة وتقنية تجزئة الرموز، مما يُسرّع عملية إنشاء نسخ متعددة بشكل كبير.
كيفية تصميم أنظمة الواجهة الخلفية
يتضمن النهج النموذجي لتصميم تطبيقات المستهلكين التحدث مع المستخدمين، وإنشاء بنية المعلومات، ووضع المخططات الأولية، والتصميم. وبينما يجب اتباع هذه العمليات، فمن الأهمية بمكان تحديد الجوانب التالية منذ البداية:
- مكتبة المكوناتهل سيتم بناء مكون مخصص أم سيتم استخدام مكتبة مفتوحة المصدر مثل Mantine أو Shadcn؟
- تمكين الذكاء الاصطناعيما هي مبادئ حوكمة الذكاء الاصطناعي الواجب اتباعها؟ مؤشر توليد الذكاء الاصطناعي، توثيق المصدر، التحقق من المصدر الأصلي، مقارنة القيم المستخرجة بالمصدر.
- القدرات التقنيةما هي الاعتبارات التقنية المحددة التي يجب مراعاتها؟
- الوصول القائم على الأدوار: كيف ستختلف طرق العرض بناءً على التخصيص؟
- سير العمل: هل سيكون هناك سير عمل أحادي المستوى أم متعدد المستويات؟
- وظائف الاستطلاع/مقبس الويب مقابل استدعاءات واجهة برمجة التطبيقات (أمر بالغ الأهمية إذا لزم الأمر لعرض التحديثات في الوقت الفعلي)
- تحميل الصفحة (للتمرير اللانهائي مقابل ترقيم الصفحات)
- ميزات الجدول (خاصة عند التمرير الأفقي وعرض الأعمدة الأطول)
- أين ستتم عمليات التحقق من صحة البيانات في الواجهة الخلفية مقابل عمليات التحقق من صحة البيانات في الواجهة الأمامية؟
- عرض الجداول من جانب الخادم أو عرض الواجهة الأمامية
هذه ليست قائمة شاملة، ولكن بمجرد فهمك لهذه الجوانب، سيكون تصميمك أكثر انسجامًا مع القدرات التقنية، وستقل الحاجة إلى المناقشة ذهابًا وإيابًا بشكل كبير.