الواجهة الأمامية والخلفية
في هندسة البرمجيات ، يشير مصطلحا الواجهة الأمامية والخلفية (يُكتبان أحيانًا باسم الواجهة الخلفية أو الخلفية ) إلى الفصل بين الاهتمامات بين طبقة العرض ( الواجهة الأمامية ) وطبقة الوصول إلى البيانات ( الخلفية ) لقطعة من البرمجيات ، أو البنية التحتية المادية أو الأجهزة . في نموذج العميل والخادم ، يُعتبر العميل عادةً الواجهة الأمامية ويُعتبر الخادم عادةً الواجهة الخلفية، حتى عندما يتم تنفيذ بعض أعمال العرض فعليًا على الخادم نفسه.
مقدمة
في هندسة البرمجيات ، قد يكون هناك العديد من الطبقات بين الأجهزة والمستخدم النهائي . الواجهة عبارة عن تجريد، يبسط المكون الأساسي من خلال توفير واجهة سهلة الاستخدام ، بينما يتعامل الجزء الخلفي عادةً مع تخزين البيانات ومنطق الأعمال .
في مجال الاتصالات السلكية واللاسلكية ، يمكن اعتبار الجزء الأمامي جهازًا أو خدمة، بينما يمثل الجزء الخلفي البنية التحتية التي تدعم تقديم الخدمة.
القاعدة الأساسية هي أن جانب العميل (أو "الواجهة الأمامية") هو أي مكون يتم التعامل معه بواسطة المستخدم. عادةً ما يوجد كود جانب الخادم (أو "الواجهة الخلفية") على الخادم ، وغالبًا ما يكون بعيدًا جسديًا عن المستخدم.
تعريفات البرمجيات
This section is in list format but may read better as prose. (September 2020) |
في أنظمة إدارة المحتوى ، قد يشير مصطلحا الواجهة الأمامية والخلفية إلى وجهات نظر المستخدم النهائي لنظام إدارة المحتوى والوجهات الإدارية على التوالي. [1] [2]
في عملية تركيب الكلام ، يشير الواجهة الأمامية إلى جزء من نظام التركيب الذي يحول النص المدخل إلى تمثيل صوتي رمزي ، ويقوم الجزء الخلفي بتحويل التمثيل الصوتي الرمزي إلى أصوات فعلية. [3]
في المجمِّعات ، تترجم الواجهة الأمامية كود المصدر البرمجي للكمبيوتر إلى تمثيل وسيط ، وتعمل الواجهة الخلفية مع التمثيل الوسيط لإنتاج كود بلغة إخراج الكمبيوتر. عادةً ما تعمل الواجهة الخلفية على التحسين لإنتاج كود يعمل بشكل أسرع. يمكن للتمييز بين الواجهة الأمامية والخلفية فصل قسم المحلل الذي يتعامل مع كود المصدر والواجهة الخلفية التي تولد الكود وتحسنه . تقدم بعض التصميمات، مثل GCC ، خيارات بين واجهات أمامية متعددة (تحليل لغات مصدر مختلفة ) أو واجهات خلفية (توليد كود لمعالجات مستهدفة مختلفة ) . [4]
يتم تنفيذ بعض تطبيقات واجهة المستخدم الرسومية (GUI) التي تعمل في بيئة سطح المكتب كواجهة أمامية رقيقة لبرامج واجهة سطر الأوامر (CLI) الأساسية، لإنقاذ المستخدم من تعلم المصطلحات الخاصة وحفظ الأوامر .
تطوير الويب كمثال
هناك طريقة أخرى لفهم الفرق بين الاثنين وهي فهم المعرفة المطلوبة من مطور برامج الواجهة الأمامية مقابل مطور برامج الواجهة الخلفية . تركز القائمة أدناه على تطوير الويب كمثال.
كلاهما
- أدوات التحكم في الإصدار مثل Git أو Mercurial أو Subversion
- أدوات وبروتوكولات نقل الملفات مثل FTP أو rsync
التركيز على الواجهة الأمامية
- لغات الترميز والويب مثل HTML و CSS و JavaScript والمكتبات المساعدة المستخدمة بشكل شائع في تلك اللغات مثل Sass أو jQuery
- معالجة الطلبات غير المتزامنة و AJAX
- تطبيقات الصفحة الواحدة (مع أطر عمل مثل React أو Angular أو Vue.js )
- أداء الويب (أكبر حجم للرسم، والوقت المستغرق للتفاعل، والرسوم المتحركة بمعدل 60 إطارًا في الثانية والتفاعلات، واستخدام الذاكرة، وما إلى ذلك)
- تصميم ويب متجاوب
- مشكلات التوافق بين المتصفحات والحلول البديلة
- الاختبار الشامل باستخدام متصفح بدون واجهة مستخدم
- إنشاء أتمتة لتحويل وتجميع ملفات JavaScript، وتقليل أحجام الصور وغيرها من العمليات باستخدام أدوات مثل Webpack و Gulp.js
- تحسين محركات البحث
- مخاوف بشأن إمكانية الوصول
- الاستخدام الأساسي لأدوات تحرير الصور مثل GIMP أو Photoshop
- واجهة المستخدم
التركيز على الواجهة الخلفية
- لغات البرمجة النصية مثل PHP أو Python أو Ruby أو Perl أو Node.js أو اللغات المترجمة مثل C# أو Java أو Go
- طبقة الوصول إلى البيانات
- منطق الأعمال
- إدارة قواعد البيانات
- قابلية التوسع
- توفر عالي
- المخاوف الأمنية والمصادقة والترخيص
- هندسة البرمجيات
- تحويل البيانات
- طرق النسخ الاحتياطي والبرامج
لاحظ أن كلا المنصبين، على الرغم من إمكانية العمل على منتج واحد، لديهما مجموعة متميزة جدًا من المهارات.
واجهة برمجة التطبيقات
تتواصل الواجهة الأمامية مع الواجهة الخلفية من خلال واجهة برمجة التطبيقات . وفي حالة الواجهة الأمامية للويب والهواتف المحمولة، غالبًا ما تعتمد واجهة برمجة التطبيقات على طلب/استجابة HTTP . يتم تصميم واجهة برمجة التطبيقات أحيانًا باستخدام نمط "الواجهة الخلفية للواجهة الأمامية" (BFF)، الذي يخدم الاستجابات لتسهيل المعالجة على جانب الواجهة الأمامية. [5]
تعريفات الأجهزة
في الحوسبة الشبكية ، يمكن أن يشير مصطلح الواجهة الأمامية إلى أي جهاز يعمل على تحسين أو حماية حركة مرور الشبكة . [6] ويُطلق عليه اسم أجهزة الواجهة الأمامية للتطبيق لأنه يوضع على الواجهة الأمامية أو الحدود الخارجية للشبكة . تمر حركة مرور الشبكة عبر أجهزة الواجهة الأمامية قبل الدخول إلى الشبكة.
في تصميم المعالج ، يكون تصميم الواجهة الأمامية هو الوصف الأولي لسلوك الدائرة في لغة وصف الأجهزة مثل Verilog ، بينما يكون تصميم الواجهة الخلفية هو عملية تعيين هذا السلوك على الترانزستورات المادية الموجودة على الشريحة. [7]
انظر أيضا
مراجع
- ^ "الواجهة الأمامية والخلفية لموقعك على الويب: كل ما تحتاج إلى معرفته". DOJO Creative . 7 فبراير 2020. مؤرشف من الأصل في 1 سبتمبر 2022 . تم الاسترجاع 31 أغسطس 2022 .
- ^ Thapliyal, Vimal. "الفرق بين MVC للواجهة الأمامية والخلفية – Joomlatuts". joomlatuts.net . مؤرشف من الأصل في 30 ديسمبر 2016 . تم الاسترجاع في 30 ديسمبر 2016 .
- ^ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (backend)" (PDF) . tamu.edu . جامعة تكساس إيه آند إم. مؤرشف من الأصل (PDF) في 14 فبراير 2019 . تم الاسترجاع في 29 ديسمبر 2016 .
- ^ بن محمد، راشد. "ملاحظات حول أنظمة التشغيل". www.personal.kent.edu . جامعة ولاية كنت. مؤرشف من الأصل في 31 أغسطس 2018 . تم الاسترجاع 30 ديسمبر 2016 .
- ^ Wickramarachchi, Viduni (24 فبراير 2021). "نمط BFF (الواجهة الخلفية للواجهة الأمامية): مقدمة". قطع وأجزاء . مؤرشف من الأصل في 27 مارس 2024. تم الاسترجاع 13 نوفمبر 2021 .
- ^ O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org . مؤرشف من الأصل في 2016-12-30 . تم الاسترجاع في 2016-12-30 .
- ^ "تصميم الواجهة الأمامية | التوثيق عبر الإنترنت لمنتجات Altium". techdocs.altium.com . مؤرشف من الأصل في 2016-12-30 . تم الاسترجاع في 2016-12-30 .
