الفرق بين Frontend و Backend

21620

تطوير الواجهات الامامية (Frontend) وتطوير الواجهات الخلفية (Backend) هما المصطلحان الأكثر شيوعًا في مجال تطوير الويب (Web Development). هذه المصطلحات بالغة الأهمية لتطوير المواقع، ولكنها مختلفة تمامًا عن بعضها البعض. يحتاج كل جانب إلى التواصل والعمل بفعالية مع الآخر كجانب واحد لإنشاء وتحسين وظائف الموقع (Website). سنتعرف في هذا المقال على كلٍّ منهما، وكذلك الفرق بينهما.

تطوير الواجهة الأمامية (Frontend development)

هو ذلك الجزء من موقع الويب الذي يتفاعل معه المستخدم مباشرة، ويشار إليه أيضًا باسم جانب العميل (Client Side). يتضمن كل ما يختبر المستخدمون مباشرة: ألوان وأنماط النص، والصور، والرسوم البيانية والجداول، والأزرار، والألوان، قائمة التنقل.

 HTML و CSS و JavaScript هي اللغات المستخدمة لتطوير Frontend. يتم تنفيذ بهم الهيكل والتصميم والمحتوى وكل شيء يظهر على شاشات المتصفح عند فتح مواقع الويب أو تطبيقات الويب أو تطبيقات الهاتف المحمول من قبل مطوري الواجهات الأمامية (Frontend Developers). الإستجابة (Responsiveness) والأداء هدفان رئيسيان لمطور الواجهات الأمامية. يجب على المطور التأكد من أن الموقع سريع الاستجابة، أي أنه يظهر بشكل صحيح على الأجهزة من جميع الأحجام، ولا ينبغي لأي جزء من موقع الويب أن يتصرف بشكل غير طبيعي بغض النظر عن حجم الشاشة.

اللغات المستخدمة في تطوير الواجهات الأمامية (Frontend)

تستخدم لغة C في مجموعة منوعة من التطبيقات والمجالات ومن أبرز استخداماتها:

  • تطوير أنظمة التشغيل فنواة نظام التشغيل يونكس UNIX ولينكس Linux وويندوز Windows ونواة أنظمة Apple OS X كلها مكتوبة بلغة سي C.

  • برمجة التطبيقات المساعدة لنظام التشغيل فمعظم متصفحات الويب على سبيل المثال مبرمجة بلغة C كما أن معظم إضافات المتصفحات مكتوبة بها.

  • تطوير لغات البرمجة ومصرفاتها Compilers أو مفسراتها Interpreters وهي عبارة عن برامج تحول أو تترجم لغات البرمجة عالية المستوى إلى لغة الآلة، على سبيل المثال مفسر لغة بايثون Python Interpreter مطور باستخدام لغة C.

  • برمجة التطبيقات المضمنة وتطبيقات انترنت الأشياء IoT والأنظمة المدمجة وبرمجة المتحكمات الدقيقة المستخدمة في برمجة الأجهزة الذكية كالسيارات ذاتية القيادة أو الروبوتات الذكية لما توفره من تحكم مباشر بالعتاد.

  • بناء قواعد البيانات فالعديد من أنظمة إدارة قواعد البيانات المعروفة مثل أوراكل Oracle و MySQL و PostgreSQL تستخدم لغة C.

  • تعد لغة C كذلك لغة مثالية لبرمجة تطبيقات سطح المكتب فعالة وعالية الأداء، فهي تمكن المطور من الوصول بسهولة لموارد الحاسوب كالمعالج والذاكرة والتحكم في أداء التطبيق بمرونة كبيرة.

  • برمجة الألعاب الإلكترونية وتطوير محركات الألعاب Game Engines ومن أشهر الألعاب المطورة باستخدام لغة سي C لعبة Quake و Doom.

  • تطوير خوادم الويب الكبيرة التي تحتاج إلى التعامل مع عدد كبير من الطلبات في وقت واحد و معالجة البيانات بسرعة مثل خادم أباتشي Apache أو إنجن إكس Nginx

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

الأطر والمكتبات المستخدمة في تطوير الواجهات الأمامية (Frontend)

  • AngularJs: هو إطار عمل أمامي مفتوح المصدر يستخدم بشكل أساسي لتطوير تطبيقات الويب ذات الصفحة الواحدة (SPAs). وهو إطار مستمر النمو والتوسع يوفر طرقًا أفضل لتطوير تطبيقات الويب ويغير HTML الثابت إلى HTML الديناميكي.

    React.js :React هي مكتبة JavaScript فعالة ومرنة لبناء واجهات المستخدم. ReactJS هي مكتبة أمامية مفتوحة المصدر قائمة على المكونات (component-based) مسؤولة فقط عن العرض للتطبيق. يتم صيانتها بواسطة مؤسسة Meta. علاوة على ذلك، فإن React Js تجعل تطوير الواجهات الأمامية (Frontend) سهلاً للغاية. 

    Bootstrap: عبارة عن مجموعة أدوات مجانية ومفتوحة المصدر لإنشاء مواقع ويب وتطبيقات ويب سريعة الاستجابة. إنها إطار عمل HTML و CSS و JavaScript الأكثر شعبية لتطوير مواقع الويب المتجاوبة.

    SASS: إنها لغة امتداد (extension language) ل CSS وهي الأكثر موثوقية وقوة. يتم استخدامها لتحسين وظائف CSS الحالية للموقع بما في ذلك إضافة ميزات مفيدة جدًّا مثل المتغيرات (variables) والميراث (inheritance) والتعشيش (nesting) الغير متوفرة في الـ CSS.

    Flutter: هي مكتبة مفتوحة المصدر  SDK تديرها google. يتم تشغيلها بواسطة لغة برمجة دارت (Dart). إنها تبني تطبيقات جيدة الأداء لكل من الجوال (Ios و Android) والويب وسطح المكتب من قاعدة رمز واحدة (single code base).

تطوير الواجهات الخلفية (Backend development)

  • الواجهة الخلفية (Backend) هي جانب الخادم (Server Side) للموقع. تقوم بتخزين البيانات وترتيبها، وتتأكد أيضًا من أن كل شيء على جانب العميل (Client Side) من موقع الويب يعمل بشكل جيد. إنها جزء من موقع الويب لا يمكنك رؤيته والتفاعل معه. هذا هو الجزء من البرمجيات الذي لا يكون على اتصال مباشر مع المستخدمين. يتم الوصول إلى الأجزاء والخصائص التي طورها المصممون الخلفيون بشكل غير مباشر من قبل المستخدمين من خلال تطبيق الواجهة الأمامية. والأنشطة، مثل كتابة واجهات برمجة التطبيقات (API)، وإنشاء المكتبات، والعمل مع مكونات النظام دون واجهات المستخدم أو حتى أنظمة البرمجة العلمية، يتم تضمينها أيضًا في الواجهة الخلفية (Backend).

اللغات المستخدمة في تطوير الواجهات الخلفية (Backend)

 HTML: ترمز HTML إلى Hypertext Markup Language. يتم استخدامها لتصميم الجزء الأمامي من صفحات الويب باستخدام لغة الترميز. HTML هي مزيج من نص تشعبي (Hypertext) ولغة ترميز (Markup language). النص التشعبي يحدد الرابط بين صفحات الويب. تُستخدم لغة الترميز لتعريف وثائق النص (text documentation) ضمن العلامة التي تحدد بنية (structure) صفحات الويب.

 Cascading Style Sheets: تهدف إلى تبسيط عملية جعل صفحات الويب قابلة للعرض (presentable). تسمح لك CSS بتطبيق الأنماط (styles) على صفحات الويب. الأهم من ذلك، أن CSS تمكنك من القيام بذلك بشكل مستقل عن HTML التي تشكل كل صفحة ويب.

 

الأطر والمكتبات المستخدمة في تطوير الواجهات الخلفية (Backend )

Express: هو إطار عمل Nodejs يستخدم لتطوير الجانب الخلفي/الخادم. يتم استخدامه لبناء تطبيقات ويب من صفحة واحدة (SPA) ومتعددة الصفحات وهجينه (hybrid). بمساعدته، يمكنك التعامل مع العديد من طلبات HTTP المختلفة.

Django: هو إطار عمل قائم على شبكة Python، يتبع نمط عرض النموذج (model-template-views). يتم استخدامه لبناء تطبيقات ويب كبيرة ومعقدة.

Ruby on Rails: هو إطار عمل الواجهات الخلفية يتبع نمط بنية وحدة التحكم في عرض النموذج (model-view-controller). يوفر هياكل افتراضية مثل خدمة الويب، وصفحات الويب، وقواعد البيانات.

Laravel: هو إطار تطبيق ويب قوي لـ PHP . الميزة التي تجعله مثاليًا هي إعادة استخدام مكونات الأط ر(reusing components) المختلفة لإنشاء تطبيق ويب.

Spring: يوفر إطار عمل جانب الخادم (Server-side) هذا دعمًا للبنية التحتية (infrastructure) لتطبيقات Java. يعمل على دعم أطر مختلفة مثل Hibernate و Struts و EJB. كما أن لديه امتدادات (extensions) تساعد في تطوير تطبيقات Java بسرعة وسهولة.

الفرق بين الواجهات الأمامية (Frontend) والخلفية (Backend)

تطوير الواجهة الأمامية والخلفية مختلفان تمامًا عن بعضهما البعض، لكنهما لا يزالان جانبين معتمدان كل منهما على الآخر. الواجهة الأمامية هي ما يراه المستخدمون ويتفاعلون معه، والواجهة الخلفية هي كيفية عمل كل شيء.

الواجهة الأمامية (Frontend) هي الجزء الذي يمكن لمستخدمي موقع الويب رؤيته والتفاعل معه مثل واجهة المستخدم الرسومية (GUI) بما في ذلك التصميم والتنقل في القوائم والنصوص والصور ومقاطع الفيديو وما إلى ذلك. على العكس من ذلك، فإن الواجهة الخلفية (Backend) هي الجزء الذي لا يستطيع مستخدمو الموقع رؤيته والتفاعل معه.

والآن، هل تعرف أي طريق ستسلك؟ طريق الواجهات الأمامية (Frontend)، أم الوجهات الخلفية (Backend)، أم ستصبح Full stack developer؟ كل ما عليك فعله هو أن تبدأ في التعلم الآن. فقط ابدأ.

يُمكنك قراءة المزيد عن Full stack developer من هنا.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *