الواجهة الأمامية والخلفية
في تطوير البرمجيات ، تشير الواجهة الأمامية إلى طبقة العرض التي يتفاعل معها المستخدمون، بينما تشير الواجهة الخلفية إلى إدارة البيانات ومعالجتها في الخلفية. ويشير مصطلح "المكدس الكامل" إلى كليهما معًا. في نموذج العميل والخادم ، يُعتبر العميل عادةً الواجهة الأمامية، حيث يتولى معظم المهام التي يواجهها المستخدم، بينما يُعتبر الخادم الواجهة الخلفية، حيث يدير البيانات والمنطق بشكل أساسي.
مقدمة
في هندسة البرمجيات ، قد توجد طبقات متعددة بين الأجهزة والمستخدم النهائي . تمثل الواجهة الأمامية طبقة تجريدية، تُبسط المكونات الأساسية من خلال توفير واجهة سهلة الاستخدام ، بينما تتولى الواجهة الخلفية تخزين البيانات ومنطق الأعمال .
أمثلة
موقع التجارة الإلكترونية : الواجهة الأمامية هي واجهة المستخدم (مثل صفحات المنتجات وشريط البحث)، بينما تقوم الواجهة الخلفية بمعالجة المدفوعات وتحديث المخزون.
تطبيق مصرفي : تعرض الواجهة الأمامية أرصدة الحسابات، بينما تتولى الواجهة الخلفية معالجة المعاملات الآمنة وتحديث السجلات.
منصة التواصل الاجتماعي : تعرض الواجهة الأمامية موجز الأخبار، بينما تقوم الواجهة الخلفية بتخزين المنشورات وإدارة الإشعارات.
في مجال الاتصالات ، يمكن اعتبار الواجهة الأمامية جهازًا أو خدمة، بينما الواجهة الخلفية هي البنية التحتية التي تدعم تقديم الخدمات.
كقاعدة عامة ، يشمل قسم الواجهة الأمامية، أو جانب العميل، أي مكونات يتفاعل معها المستخدم. أما قسم الواجهة الخلفية، أو جانب الخادم، فيوجد عادةً على الخادم ، وغالبًا ما يكون بعيدًا جغرافيًا عن المستخدم.
تعريفات البرمجيات
تتعدد تعريفات مصطلحي "الواجهة الأمامية" و"الواجهة الخلفية" في سياق البرمجيات. ففي أنظمة إدارة المحتوى ، على سبيل المثال، تشير الواجهة الأمامية إلى واجهات المستخدم النهائي، بينما تشير الواجهة الخلفية إلى واجهات المستخدم الإداري. [ 1 ] [ 2 ] وبالمثل، في مجال توليف الكلام ، تشير الواجهة الأمامية إلى الجزء من نظام التوليف الذي يحول النص المدخل إلى تمثيل صوتي رمزي ، بينما تحول الواجهة الخلفية هذا التمثيل الصوتي الرمزي إلى أصوات فعلية. [ 3 ] وفي مُجمِّعات لغات البرمجة ، تُترجم الواجهة الأمامية شفرة المصدر إلى تمثيل وسيط ، بينما تُنتج الواجهة الخلفية شفرة قابلة للتنفيذ من هذا التمثيل الوسيط. وعادةً ما تُحسِّن الواجهة الخلفية الشفرة لإنتاج شفرة أسرع. كما يُمكن التمييز بين الواجهة الأمامية والخلفية من خلال فصل المُحلِّل الذي يتعامل مع شفرة المصدر عن المُجمِّع الذي يُولِّد الشفرة القابلة للتنفيذ ويُحسِّنها . وتُتيح بعض التصميمات، مثل GCC ، خيارات متعددة للواجهة الأمامية (لتحليل لغات مصدر مختلفة ) وخيارات متعددة للواجهة الخلفية (لتوليد شفرة لمعالجات مُستهدفة مختلفة ). [ 4 ]
تعمل بعض تطبيقات واجهة المستخدم الرسومية (GUI) كواجهة أمامية بسيطة لبرامج واجهة سطر الأوامر (CLI) الأساسية، لتوفير عناء تعلم مصطلحات وأوامر واجهة سطر الأوامر للمستخدمين .
تطوير مواقع الويب كمثال
هناك طريقة أخرى لفهم الاختلافات بين واجهة المستخدم وواجهة الخادم، وهي النظر في المعرفة التي يتطلبها كل منهما من مطور البرامج . تركز الأمثلة المذكورة أدناه على تطوير مواقع الويب .
الواجهة الأمامية
- لغات الترميز ولغات الويب مثل HTML و CSS و JavaScript ، بالإضافة إلى المكتبات المساعدة الشائعة الاستخدام في تلك اللغات، مثل Sass أو jQuery
- معالجة الطلبات غير المتزامنة و AJAX
- تطبيقات الصفحة الواحدة التي تستخدم أطر عمل مثل React أو Angular أو Vue.js
- أداء الويب (تحسين أشياء مثل أكبر مساحة عرض للمحتوى، ووقت التفاعل، ومعدل الإطارات في الثانية للرسوم المتحركة ، واستخدام الذاكرة)
- تصميم مواقع الويب المتجاوب
- مشاكل التوافق بين المتصفحات وحلولها
- اختبار شامل باستخدام متصفح بدون واجهة رسومية
- قم بإنشاء نظام أتمتة لتحويل وتجميع ملفات جافا سكريبت، وتقليل أحجام الصور، ومعالجة العمليات الأخرى باستخدام أدوات مثل Webpack و Gulp.js
- تحسين محركات البحث
- مخاوف تتعلق بإمكانية الوصول
- أدوات تحرير الصور مثل GIMP أو Photoshop
- تصميم وإنشاء واجهة المستخدم
الواجهة الخلفية
- لغات البرمجة النصية مثل PHP و Python و Ruby و Perl و Node.js
- اللغات المترجمة مثل C# و Java و Go
- طبقة الوصول إلى البيانات
- منطق الأعمال
- إدارة قواعد البيانات
- قابلية التوسع
- توافر عالٍ
- المخاوف الأمنية، مثل المصادقة والتفويض
- هندسة البرمجيات
- تحويل البيانات
- طرق وبرامج النسخ الاحتياطي
الواجهة الأمامية والخلفية
- أدوات التحكم في الإصدارات مثل Git و Mercurial و Subversion
- أدوات وبروتوكولات نقل الملفات مثل FTP و rsync
واجهة برمجة التطبيقات (API)
يتواصل الواجهة الأمامية مع الواجهة الخلفية عبر واجهة برمجة التطبيقات (API) . في حالة واجهات الويب وتطبيقات الجوال، تعتمد واجهة برمجة التطبيقات غالبًا على طلبات واستجابات HTTP . كما يمكن لواجهة برمجة التطبيقات تقليل عبء معالجة الواجهة الأمامية باستخدام خدمات خلفية مختلفة لواجهات أمامية مختلفة، كما هو الحال في نمط "الواجهة الخلفية للواجهة الأمامية" (BFF). [ 5 ]
تعريفات الأجهزة
في مجال شبكات الحاسوب ، يشير مصطلح "الواجهة الأمامية" إلى الأجهزة التي تربط الأجهزة بالشبكة، أو توفر الحماية مثل منطقة DMZ ، أو تحول البيانات إلى تنسيق قابل للنقل . أما "الواجهة الخلفية" فتشير إلى الأجهزة التي تعالج البيانات وتنقلها داخل الشبكة.
في تصميم المعالج ، يمكن أن يشير تصميم الواجهة الأمامية إلى الوصف الأولي لسلوك الدائرة في لغة وصف الأجهزة مثل Verilog ، بينما يمكن أن يشير تصميم الواجهة الخلفية إلى عملية ربط هذا السلوك بالترانزستورات المادية على رقاقة.
انظر أيضاً
مراجع
- ↑ "واجهة المستخدم مقابل الواجهة الخلفية لموقعك الإلكتروني: كل ما تحتاج لمعرفته" . دوجو كرييتيف . 7 فبراير 2020. مؤرشف من الأصل في 1 سبتمبر 2022. تم الاطلاع عليه في 31 أغسطس 2022 .
- ↑ ثابليال، فيمال. "الفرق بين MVC للواجهة الأمامية والخلفية - جوملاتوتس" . joomlatuts.net . مؤرشف من الأصل في 30 ديسمبر 2016. تم الاطلاع عليه في 30 ديسمبر 2016 .
- ↑ غوتيريز-أوسونا، ريكاردو. "L18: توليف الكلام (الخلفية)" (ملف PDF) . tamu.edu . جامعة تكساس إيه آند إم. مؤرشف من الأصل (ملف PDF) بتاريخ 14 فبراير 2019. تم الاطلاع عليه بتاريخ 29 ديسمبر 2016 .
- ↑ بن محمد، رشيد. "ملاحظات حول أنظمة التشغيل" . www.personal.kent.edu . جامعة ولاية كينت. مؤرشف من الأصل في 31 أغسطس 2018. تم الاطلاع عليه في 30 ديسمبر 2016 .
- ↑ ويكراماراتشي، فيدوني (24 فبراير 2021). "نمط BFF (الواجهة الخلفية للواجهة الأمامية): مقدمة" . مقتطفات . مؤرشف من الأصل في 27 مارس 2024. تم الاطلاع عليه في 13 نوفمبر 2021 .
- هندسة البرمجيات
- مصطلحات هندسة البرمجيات
