back end - تطوير مواقع الويب

 ما هو الـ Back End؟

الـ Back End هو الجزء الخفي من تطوير المواقع والتطبيقات، وهو المسؤول عن إدارة البيانات وتشغيل العمليات الأساسية خلف الكواليس. بينما يشاهد المستخدمون واجهة الموقع أو التطبيق (الـ Front End)، يعمل الـ Back End على تنظيم تلك البيانات وتخزينها في قواعد البيانات، ومعالجة الطلبات التي يتلقاها من الواجهة، وإرسال المعلومات المطلوبة بشكل آمن وسريع. ببساطة، هو العقل المدبر الذي يحرك كل شيء دون أن تراه العين.

back end
back end - تطوير مواقع الويب

في مقال اليوم، ولأن غالباً ما يتم وضع مجال الـ front end ومجال الـ back end في مقارنة من قبل المتعلمين؛ سنتناول التالي ما الفرق بين الـ front end و الـ back end من الناحية التقنية (بشكل أكثر تفصيلاً)، هل مجال الـ front end أسهل أم الـ back end، هل الـ front end فرصه أكثر في سوق العمل أم الـ back end، وسنتحدث أيضاً عن الشخص الذي يجمع بين المجالين ( full stack developer). وفي نهاية المقال سيكون هناك مجموعة من أفضل الكورسات في مجال الـ back end ستساعدكم في رحلة تعلمكم بإذن الله، وسيكون هناك مسارات كاملة لتعلم المجال من الصفر (كلها مجانية). سعدت بوجودكم.

الفرق بين front end و backend

 يمكنك قراءة المقال السابق الذي فصلنا فيه عن مجال الـ front end، ولكن دعنا نوضح بعض الفروقات التي ستوضح ما يقوم به كل مجال بالضبط، وما التقنيات والأدوات المستخدمة، هيا بنا:

1. مجال الـ front end

الـ Front End هو كما قلنا الجانب المرئي للمستخدم، وهو كل ما يراه ويتفاعل معه عند زيارة موقع ويب أو استخدام تطبيق. بتفصيل أكثر يتضمن الـ Front End تصميم الواجهة، التخطيط (Layout)، الألوان، الخطوط، الصور، القوائم، والأزرار. يتم تطوير الـ Front End باستخدام ثلاث تقنيات أساسية:

1.1. HTML (Hypertext Markup Language)

  • وظيفة HTML: إنشاء الهيكل الأساسي لصفحات الويب. يعمل HTML كإطار عمل لكل صفحة ويب، حيث يحدد العناصر مثل العناوين (Headings)، الفقرات (Paragraphs)، الروابط (Links)، والصور (Images).
  • التقنيات المرتبطة: HTML5 هو الإصدار الأحدث، ويوفر ميزات إضافية مثل دعم الفيديو والصوت بدون الحاجة إلى إضافات خارجية (Plugins).
2.2. CSS (Cascading Style Sheets)
  • وظيفة CSS: تحديد تصميم الصفحة وشكلها الخارجي، بما في ذلك الألوان، الخطوط، تخطيط الصفحة (Layout)، وحجم العناصر. يمكن استخدام CSS لجعل المواقع متجاوبة (Responsive) لتعمل على مختلف الأجهزة بأحجام شاشات مختلفة.
  • أطر العمل (Frameworks) المرتبطة: Bootstrap و Foundation هما من أطر العمل الشائعة التي تسهل تطوير تصاميم متجاوبة.
3.3. JavaScript
  • وظيفة JavaScript: إضافة ديناميكية وتفاعل إلى صفحات الويب. JavaScript يسمح بتحديث المحتوى دون إعادة تحميل الصفحة، التحقق من صحة النماذج (Form Validation)، والتفاعل مع المستخدم من خلال الأحداث (Events) مثل النقرات والتمرير؛ فتظهر رسوم متحركة كنوع من الاستجابة للنقرة مثلاً، وبإختصار تضيف للموقع حيوية وحركة.
  • مكتبات وأطر العمل: مثل jQuery لتبسيط كتابة الأكواد و React و Vue.js و Angular لتطوير واجهات مستخدم تفاعلية ومتقدمة.
2. مجال الـ back end

الـ Back End هو كما قلنا الجزء الذي يكون في الخلفية الذي لا تراه بعينك، يدير الخوادم، قواعد البيانات، والمنطق البرمجي اللازم لتشغيل التطبيقات (المنطق البرمجي هو الأكواد التي تكتبها في الـ back end بمنطق معين أنت تقوم به وعلى أساس هذا المنطق تتفاعل الأكواد مع بعضها فتعطي نتائج معينة في الـ front end). فلنفصل أكثر:

2.1. الخوادم (Servers)
  • وظيفة الخادم: استقبال ومعالجة الطلبات من الـ Front End وإرجاع البيانات المطلوبة. يمكن أن يكون الخادم مخصصًا (Dedicated) أو افتراضيًا (Virtualized) أو سحابيًا (Cloud-based).
  • الخدمات المرتبطة: خوادم Apache و Nginx هما من أشهر الخوادم التي تُستخدم لاستضافة التطبيقات.

2.2. قواعد البيانات (Databases)
  • وظيفة قواعد البيانات: تخزين واسترجاع البيانات بكفاءة. يمكن أن تكون قواعد البيانات علائقية أي تعتمد على العلاقات بين الجداول (Relational) مثل MySQL و PostgreSQL أو غير علائقية لا تعتمد على الجداول والعلاقات التقليدية بين البيانات (NoSQL) مثل MongoDB.
  • أدوات إدارة البيانات: مثل SQL لتقديم استعلامات معقدة، وORMs (Object-Relational Mappers) مثل Hibernate و SQLAlchemy لتسهيل التعامل مع قواعد البيانات.

2.3. منطق التطبيق (Application Logic)
  • وظيفة منطق التطبيق: إدارة وتنفيذ العمليات الرئيسية التي تتطلب معالجة البيانات، مثل تسجيل الدخول، معالجة الطلبات، وإنشاء الاستجابات الملائمة للـ Front End. يشمل ذلك تطبيق القواعد والشروط التي تتحكم في تدفق التطبيق.
  • لغات البرمجة والأطر المستخدمة: (Python (Django, Flask) ،Java (Spring) ،PHP (Laravel) ،C# (Asp.net  و Node.js
  • أدوات التأمين: مثل JWT (JSON Web Tokens) لإدارة التحقق من الهوية والتصاريح بشكل آمن.

2.4. واجهات برمجة التطبيقات (APIs)
  •  وظيفة API: تسهيل وتوحيد التواصل بين الـ Front End و الـ Back End. الـ RESTful APIs هي الأكثر شيوعًا وتستخدم بروتوكول HTTP لنقل البيانات بتنسيقات مثل JSON أو XML، وهناك أيضًا أنواع أخرى مثل GraphQL و SOAP.
  • الطبقات (Layers): الـ API تعمل كطبقة وسيطة بين منطق التطبيق (أي كما قلنا الأكواد التي يكتبها المبرمج في الـ Back End) وبين الـ Front End، مما يسمح بتجزئة الكود، وتقليل التعقيدات، وتحسين الأداء.

في نهاية هذه الجزئية التفصيلية نوعاً ما يظهر أن الـ Front End يتفاعل مع الـ Back End من خلال إرسال واستقبال البيانات عبر الـ API. يتم إرسال طلبات (Requests) من المستخدم عبر الواجهة، والتي تمر عبر الخادم إلى منطق التطبيق، ثم تعود الاستجابة (Response) من الـ Back End إلى الـ Front End ليتم عرضها بشكل مناسب للمستخدم. كل هذا يظهر التكامل بين المجالين ليخرج لنا أكبر موقع أو أكبر تطبيق ويب.

هل مجال front end أسهل أم back end

سأحاول ألا أطيل كثيراً في الجزئيات القادمة. من قرأ مقالي السابق عن الـ front end سيعرف إجابتي عن هذا السؤال وبالمناسبة هي ليست إجابتي أنا، ولكن للإختصار دعنا نقول أن الـ front end أسهل من الـ back end بشكل عام، ويمكنك الرجوع لمقالي السابق المشار إليه بالأعلى لتفهم أكثر عن هذه النقطة، كما يمكنك البحث أكثر عن المواضيع التي ستتعلمها وستتعامل معها فيما بعد في كلا المجالين، وأنت من سيحدد أيهما أسهل بالنسبة لك؛ فالموضوع نسبي إلى حد كبير.

هل مجال front end فرصه أكثر أم مجال back end

على الرغم من أن مجال الـ front end مطلوب وبه فرص، إلا أنه على حد ما سمعت (من أشخاص خبرة في مجال البرمجة) وعلى حد بحثي المتواضع على مواقع مثل indeed (من أشهر مواقع التوظيف العالمي) كان ما توصلت له أن مجال الـ backend فرصه أكثر من الـ front end سواء في الوطن العربي أو حتى في أوروبا وأمريكا، كما أن متوسط الرواتب في الـ back end أعلى مقارنةً بمتوسط الرواتب في الـ front end.

شخص واحد يجمع بين المجالين

في كثير من الأحيان تفضل الشركات من يجمع بين المجالين، شخص واحد يتعلم front end و back end معاً ويصنع الموقع كامل بنفسه، وحينها يسمى full stack developer. هذا الأمر يتطلب مجهود أكبر ومدة أطول في التعلم نعم، ولكن يجعل الفرص المتاحة أكبر والراتب يكون أكبر، كما أن الإستقرار سيكون أكبر نظراً لأنك تجمع بين مجالين. انتبه يصديقي أنا أتحدث عن نقطة معينة بشكل عام؛ فربما يكون شخص متخصص ومتقن back end أو front end فقط مرتبه أعلى من شخص fullstack بل وفرصه أكثر.

استمع إلى هذا الفيديو سيوضح لك بعض النقاط المهمة بخصوص الـ front end و back end  و full stack:



كيف أصبح back-end web developer

ربما من قرأ مقالاتي السابقة سيعلم أنني مقتنع بأهمية تعلم الأساسيات جيداً قبل التخصص في أي مجال، ومنعاً لكثرة التكرار يمكنك عمل بحث بسيط عن الأساسيات في البرمجة ستجد الكثير يتحدث عن هذه النقطة. سأفترض الآن أنك قد تعلمت الأساسيات وأخذت بها وقتك وتريد تعلم مجال back end. سأقدم لك بإذن الله عدة كورسات قوية ستساعدك في رحلة تعلمك للمجال، وفي نهاية المقال سيكون هناك أكثر من مسار لتعلم المجال من الصفر.

إليكم الكورسات 👇👇👇




6- Pro Code - Java Full Course يوتيوب

7-  (FreeCodeCamp - Building web applications in Java with Spring Boot (3 يوتيوب

8- Pro Code - MySQL Full Course يوتيوب


المسارات الكاملة (backend roadmap) 👇


ستتعلم في هذا المسار الـ Back End باستخدام PHP. المسار هو للبشمهندس أسامة الزيرو. ستتعلم HTML (ستحتاجها أيضاً كباك اند) و PHP و MySQL وأمور أخرى، كما أنك ستطبق بشكل عملي على أكثر من مشروع. أنا بصراحة لا أفضل هذا المسار أرى أن الثاني الذي سأقدمه بعد قليل أفضل لعدة أسباب؛ أعتقد أن المسار ينقصه كثير من المواضيع التي يحتاجها الـ back end developer وللأسف البشمهندس لم يحدثها؛ لذلك أرى إذا كنت جيد في الإنجليزي فالمسار الثاني أفضل بكثير يحتوى على المواضيع التي ستحتاجها وزيادةً، وإن كنت ترى الزيرو أنسب لك توكل على الله ويمكنك إكمال ما ينقصك من مصادر أخرى (ما أكثرها)، وفي كل الأحوال أنت لن تكتفي بمصدر واحد.


كما قلنا في هذا المسار ستجد تغطية شاملة ووافية لغالب المواضيع التي ستحتاجها كـ back end developer وزيادة حرفياً؛ فالمسار فضلاً عن إحتوائه على المواضيع الأساسية في المجال، إلا أنه يحتوي على مواضيع إضافية لتكون متميز أكثر في المجال، بالإضافة إلى توفير خيارات مختلفة يمكنك الإختيار منها مثل إختيار تكنولجي معينة مثلاً. لا تقلق يصديقي كل ذلك موضح في المسار، موضح أيها ضروري أخذه وأيها يفضل وهكذا.

 
👈 تنويهات

  • كل رأي طرحته في هذا المقال أنصحك بالبحث عنه بنفسك فربما خالفني الصواب فيه أو في بعضه؛ مثل بخصوص صعوبة المجال نسيباً أو في أن فرصه أكثر...إلخ.
  • ابحث عن التحديثات الجديدة أثناء تعلمك من كورس معين وأقصد بالتحديد الكورسات القديمة التي مر عليها سنوات، ربما يكون تم إضافة أشياء جديدة لم يتطرق لها هذا الكورس؛ فابحث عنها وتعلمها من مصادر أخرى، وإن كنت لا تريد ذلك تعلم من كورس لم يمر عليه وقت كبير.

الخاتمة

إلى هنا يصديقي، أعتقد أنك فهمت ما هو مجال الـ back end وما الفرق بين front end و back end، وعرفت هل مجال الـ back end أسهل أم أصعب، وهل فرصه ورواتبه أكثر أم أقل، كما تحدثنا عن الـ full stack. في النهاية عرفت كيف السبيل لتعلم المجال؛ وكان هناك بعض الكورسات القوية، ومسارين كاملين لتعلم المجال من الصفر. أرجو لي ولك التوفيق.

إذا وجدتم الفائدة، تابعوا مقالاتي  وانضموا لقناة التلجرام (نتحدث في مواضيع أخرى في المجال كما سينزل عليها كل جديد في الموقع). لا تترددوا في مشاركة آرائكم أو استفساراتكم حول مقال اليوم في قسم التعليقات أدناه. أقدر تفاعلكم جداً، فآراؤكم تساعدني على تحسين المحتوى وتقديم ما يلبي احتياجاتكم.


كان معكم علي وحيد.

"اللهم إن كان من توفيق فمنك وحدك وإن كان من خطأ أو نسيان فمني ومن الشيطان."

Ali Waheed

مرحبًا بكم، انا على وحيد طالب في كلية الذكاء الاصطناعي جامعة المنوفية. أتكلم عن مواضيع في الذكاء الاصطناعي والبرمجة. أشارك معكم تجارب شخصية في المجال، مراجعات كورسات... وإن شاء الله أكثر من ذلك. تشرفت بكم.

إرسال تعليق

أحدث أقدم

نموذج الاتصال