الفرق بين ال Front-End وال Back-End وال Full Stack

بسم الله الرحمن الرحيم

 

اللَّهُمَّ لك الحَمْدُ كُلُّهُ، وإلَيْك يَرْجِعُ الأمْرُ كُلُّهُ، عَلانِيَتُهُ وسِرُّهُ. فَحَقٌّ أنْتَ أنْ تُعْبَد، وحَقٌّ أنْتَ أنْ تُحْمَد، وأنْتَ على كُلِّ شَيْءٍ قَديْر.اللَّهُمَّ لك الحَمْدُ كالَّذِي تَقُولُ، وخَيْرًا مـِمَّا نَقُولُ.اللَّهُمَّ لك الحَمْدُ بِجَمِيْعِ المَحَامِد كُـلِّهَا.الحمد لله رب العالمين.

" الفرق بين ال Front-End وال Back-End وال Full Stack"

في عالم تصميم وتطوير المواقع الإلكترونية، يتم تقسيم عمل مطور المواقع الى 3 أقسام رئيسية، وهي ال Back-End وال Front End وال Full Stack، وكثيرا ما يتسائل أصدقائنا الجدد في عالم الويب، عن ماهية هذه التصنيفات، وماذا يعني أن أتقدم لوظفية تندرج تحت إحدى هذه المسميات، وما هو الأفضل أن أتعلم وأندرج تحت وأحدة من المجالات أم أن أكون ملما بال Front End وال Back End لأصبح Full Stack .. أيهما أفضل..وهنا سنحاول بإذن الله تعالى، شرح هذه المفاهيم وإيضاح بعض النقاط التي تتعلق بخلل في فهم الصورة بشكل صحيح لهذه المسميات، والآن لنبدأ على بركة الله تعالى..

أولا: Front End: يقصد بال Front End هو الجزء من الموقع الذي يتفاعل معه المستخدمين، أي شيء من مكونات الموقع التي يمكنك مشاهدتها، ويمكنك إحداث أي حدث عليها، مثل ال Buttons وال Dropdowns menu والخطوط والألوان ومعارض الصور وحركات ال Animation وغيرها ..الخ من الأمور التي يراها المستخدم ويتفاعل معها..

وبهذا يكون دور ال Front End هو تكويد التصميم الذي يأخذه من المصمم ( Designer) ويحوله الى شكل يمكن التفاعل معه من قبل المستخدمين، كما أن هذا المطور(الذي يعمل في هذا المجال) كلما ازداد مهارة زادت لديه القدرة على تحديد نقاط الضعف في التصميم والتي يمكن أن تسبب إزعاجا للمستخدمين، أو يمكنه وضع أفكار لاختصار بعض الخطوات الطويلة، لذلك يكون التنسيق بينه وبين ال System Analyst بشكل جيد للخروج بأفضل شكل ممكن..

وسيتبادر لأذهاننا الآن سؤال مهم، ما هي المهارات اللازمة لأكون مطور يعمل تحت مظلة ال Front End ؟!

والجواب يندرج تحت ثلاث مظلات رئيسية والزامية لمطور ال Front End وهي

الجافا سكربت وال CSS وال HTML، ولا يمكن تواجد مطور Front End لا يمكنه التلاعب بهذه العناصر ليشكل الموقع بشكله المتفاعل..

هل هذا كل شيء ؟! بكل تأكيد لا ..

فيجب عليك أيضا بعد إتقان هذه أن تتقن بعض بيئات العمل الموجودة مثل Bootstrap وال AngularJS وال Backbone وال Foundation ..الخ من بيئات العمل هذه ..(بكل تأكيد ليس جميعها ..لكن عليك أن تعرف واحدة على الأقل من نوعين مختلفين من كل بيئة العمل..)

كما أننا نتحدث عن Front End فيعني أنك يجب أن تعرف في ال HTML5 وال CSS3 وال jQuery وال jQuery UI وال SASS or LESS وبعض الخبرة في بعض المكاتب المهمة والمتعلقة مثلا في معارض الصور والقليل من الخبرة من الأجاكس ليست سيئة ...

هل يجب علي أن أتعلم هذا كله قبل أن أبدأ العمل؟!

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

" هذا العالم جميل ".. لكن عليك أن تستمر في البحث عن كل ما هو جديد في هذه التقنية، وعليك أن تكتب شيفرتك البرمجية بشكل سلسل يمكن ال Back End من العمل على ما كتبت بشكل سهل ..وهذا يقودنا الى سؤال ..ما هو ال BACK END...

ثانيا: Back End: يقصد بال Back End هو ذلك الجزء الذي يتم بنائه ليعمل على الربط بين مجموعة الصفحات والبيانات والتطبيقات المختلفة، وفي المعنى الآخر هو الجزء الذي يتم تنفيذه وقرائته من خلال ال Server ويهتم بالتحقق من استقبال البيانات وارسالها بشكل صحيح من والى المتصفح...وبكل تأكيد هذا الجزء من الشيفرة البرمجية لا يكون ظاهرا على المتصفح، وإنما تظهر نتائجه ..^^

إذن ما هي المهارات اللازمة لأن أعمل كمطور Back End ؟!

أهم المهارات المطلوبة هي قدرتك على الربط بين قواعد البيانات، والتطبيقات والتعامل معها ضمن ال Server..وهذا يعني أنه يلزمني تعلم لغة تهتم وتتعامل مع السيرفر وتقوم بهذه المهام ومن هذه اللغات أو المتطلبات الي يجب أن أتعلمها أو أن أعلمها هي

لغة سيرفر مثل ( PHP OR ASP.net OR Python ..الخ)

مجموعة من الأدوات مثل (Mysql OR Oracle OR SQL Server) وبكل تأكيد هذه تأتي بعد تعلمك أو معرفتك ل SQL(Structure Query Language) مثل جمل الإستعلام والتحديث والحذف والإضافة ..الخ

بيئة عمل مثل (Yii Framework أو Zend ..الخ)

أن تتعلم ال version control مثل ال Git أو ال SVN ..

من الأمور المهمة لدى هذا النوع من المطورين عملية التوثيق للشيفرة البرمجية...ونظام التشغيل الذي يستخدمه عادة مطوروا هذا النوع هو Linux.

هذا هو ال Back End وبكل تأكيد هناك حد أدنى من المتطلبات لتبدأ عالمك لكن تأكد أنه يجب أن تملك الحد الأدنى من المهارة الذي يؤهلك للبحث والبدء بالعمل، والجميل في هذا النوع أنك في تحد دائم مع المشاكل ووظفيتك هنا أكثر حساسية لتعاملها المباشرة مع البيانات والخوف من الإختراق أو اتلاف البيانات أو عدم تنفيذ الوظائف بشكل جميل ..عيش التحدي ^^.

والآن ماذا عن العمل ك Front End وك Back End أو من يمتلك القدرة على العمل بهاتين الوظيفنين ؟! هل هناك وظيفة لهذا النوع ؟ وماذا يسمى صاحبه ؟!

الجواب هو بكل تأكيد هناك وظيفة لأمثال هؤلاء أو مسمى وظيفي ليكون المعنى أدق وهو ال Full Stack ^^

ثالثا: ال Full Stack: في أثناء المرحلة الدراسية، كنا نتعلم أن الحاسوب دائما لا يفهم الا الصواب والخطأ لا يفهم الا لغة ال 0 وال 1 (يا أبيض يا أسود)، لكن هذا المفهوم لم يكن يلبي احتياجات المجال، وكنا نريد الوصول الى حالة وسطية، ولو كانت تحبك بشكل مغاير عن الحبكة الأصلية..وكان ذلك من خلال الذكاء الإصطناعي، وهذا المثال ينطبق على ال Full Stack، فهو لم يقبل بأن يكون Front-End لوحده ولم يقبل أن يكون Back-End لوحده، وهذه على فكرة حالة طبيعة مع المدة تأتي، فستجد نفسك ولو كنت في مجال ال Front End محتاجا للعمل على بعض الشيفرات البرمجية الخاصة بال Back End والعكس صحيح، وهذا هو ال Full Stack وبمعنى آخر وأدق هو إتقان العمل بشقيه وعلى وجهيه Back End (من جهة السيرفر) ووجهه ال Front End (التعامل من جهة ال Client) وهذا النوع من المهارة يلزم بأن تكون فعلا محارب في عالم الويب، وتحتاج الى جهد أكبر بكل تأكيد لتستطيع مواكبة كل جديد من كلا الجانبين وتطوير مهاراتك وإكتساب أكبر قدرة من الخبرة والقدرة على حل المشكلات …

وطبعا أهم المهارات المطلوبة هي المهارات الأساسية الخاصة بكل من

ال Back End وال Front End ..

 

نقاط مهمة:

1) بفضل الله تعالى جميع الأقسام مطلوبة في سوق العمل، وبكثرة لكن دائما يشترط الإبداع، الممارسة، القدرة على البحث وحل المشاكل.

2) مجال ال Full Stack جميل، لكن يلزمه عمل بجد، لأنه يجب أن يكون حصيلة عمل جاد لكل من ال BackEnd وال FrontEnd ..ولذلك تجد أنك تتعلم في بادئ الأمر المكونات الأساسية للجميع، ومع العمل ستكتسب خبرة في مجال ما، ومن خلالها ستستطيع تطوير مهاراتك المقابلة أو الأخرى من خلال خبرتك التي إكتسبتها من عملك في المجال الآخر.

3) لا أفضلية لمجال على مجال في هذه الأعمال من وجهة نظري، ولا أتحدث عن الرواتب بالضبط، لأني أراها متراوحة بنائا على الشركة وعدد سنوات الخبرة ..الخ، لكن يتميز بكل تأكيد ال Full Stack صاحب المهارة بكلا الشقين – ركز مهارة – وليس مجرد معرفة في كلا الشقين باختصار – لعبتو الصغيرة ال Back End وال Front End -

والله ولي التوفيق.

 

الحمد لله رب العالمين، الحمد لله الذي بحمده تتم النعم، الحمد لله.

اللهم اغفر لي ولوالدي وللمسلمين أحيائهم وأمواتهم إنك سميع عليم رحيم غفور كريم. اللهم إنك عفو تحب العفو فاعف عنا. اللهم آمين.