الفرق بين ال Front-End وال Back-End وال Full Stack
في عالم تصميم وتطوير مواقع الويب ، ينقسم عمل مطور الويب إلى 3 أقسام رئيسية ، وهي ال Back-End وال Front End وال Full Stack ، ويسأل أصدقاؤنا الجدد في عالم الويب غالبًا ما هي هذه الفئات ، وما يعنيه التقدم بطلب للحصول على وظيفة تندرج تحت أحد هذه الأسماء ، وما هو الأفضل للتعلم والوقوع تحت أحد المجالات أو التعرف على Front End وال Back End لأصبح Full Stack .. أيهما أفضل .. هنا سنحاول بإذن الله شرح هذه المفاهيم وتوضيح بعض النقاط التي تتعلق بخلل في الفهم الصحيح لتصوير هذه الأسماء.
أولا: Front End
Front End هي جزء من الموقع يتفاعل معه المستخدمون ، وأي شيء من مكونات الموقع يمكنك مشاهدته ، ويمكنك إنشاء أي حدث عليه ، مثل الأزرار ، القائمة المنسدلة ، الخطوط ، الألوان ، معارض الصور ، حركات الرسوم المتحركة ، الخ .. من الأشياء التي يراها المستخدم ويتفاعل معها ..
وبهذه الطريقة ، يتمثل دور الواجهة الأمامية في تدوين التصميم الذي يأخذه المصمم منه وتحويله إلى شكل يمكن للمستخدمين التفاعل معه ، وأن هذا المطور (الذي يعمل في هذا المجال) يزداد مهارة لديه قدر أكبر من القدرة على تحديد نقاط الضعف في التصميم التي يمكن أن تسبب إزعاجًا للمستخدمين ، أو يمكن أن تطور أفكارًا لتقصير بعض الخطوات الطويلة ، لذا فإن التنسيق بينها وبين System Analyst جيد للخروج بأفضل طريقة ممكنة ..
الآن سيأتي إلى أذهاننا سؤال مهم ، ما هي المهارات اللازمة لتكون مطورًا يعمل تحت مظلة الواجهة الأمامية ؟!
يقع الجواب تحت ثلاث مظلات رئيسية وإلزامية لمطور Front End ، وهي
جافا سكريبت و CSS و HTML. لا يستطيع مطور الواجهة الأمامية معالجة هذه العناصر لجعل الموقع في شكله التفاعلي.
هل هذا كل شيء ؟! بالتاكيد لا ..
بعد إتقان هذا ، يجب عليك أيضًا إتقان بعض بيئات العمل الحالية مثل Bootstrap و AngularJS و Backbone و Foundation ... إلخ من بيئات العمل هذه ... (بالتأكيد ليس كلها ... ولكن يجب عليك معرفة واحدة على الأقل من اثنتين أنواع مختلفة من كل بيئة عمل ..)
نحن نتحدث أيضًا عن الواجهة الأمامية ، مما يعني أنه يجب أن تعرف في HTML5 أو CSS3 أو jQuery أو jQuery UI أو SASS أو LESS ، وبعض الخبرة في بعض المكاتب المهمة وذات الصلة ، على سبيل المثال في معارض الصور وقليل من تجربة Ajax ليس سيئا
هل علي أن أتعلم كل هذا قبل أن أبدأ العمل ؟!
بالتأكيد لا ، يا صديقي ، هذه يجب أن تكون معروفة ومكتسبة أثناء عملك ، ولكن المكونات الرئيسية على الأقل هي التي يجب أن تكون موجودة ، بمهارة في طريقة التعامل معها بشكل مؤكد.
"هذا العالم جميل." ولكن عليك الاستمرار في البحث عن كل ما هو جديد في هذه التقنية ، وعليك كتابة رمز البرمجة الخاص بك بطريقة سلسة. يمكن أن تعمل النهاية الخلفية على ما كتبته بسهولة .. وهذا يقودنا إلى سؤال ..
ما هو ال BACK END
ثانيا: Back End
Back End يعني ذلك الجزء المصمم للعمل على ربط مجموعة الصفحات والبيانات والتطبيقات المختلفة ، بمعنى آخر هو الجزء الذي يتم تنفيذه وقراءته من خلال الخادم ويهتم بالتحقق من استلام البيانات وإرسالها بشكل صحيح من وإلى المتصفح ... وبالطبع هذا الجزء من الرمز غير مرئي في المتصفح.
إذن ما هي المهارات التي أحتاجها للعمل كمطور خلفية ؟!
أهم المهارات المطلوبة هي قدرتك على الربط بين قواعد البيانات والتطبيقات والتعامل معها داخل الخادم .. وهذا يعني أنني بحاجة إلى تعلم لغة تهتم بالخادم وتتعامل معها وتقوم بهذه المهام ومن بين هذه اللغات أو المتطلبات التي يجب أن أتعلمها أو أعرفها
لغة الخادم مثل (PHP OR ASP.net OR Python..etc)
مجموعة من الأدوات مثل (Mysql OR Oracle OR SQL Server) ويأتي هذا بالطبع بعد تعلمك أو معرفتك لـ SQL (لغة الاستعلام الهيكلية) مثل الاستعلام أو التحديث أو الحذف أو الإضافة ، إلخ.
بيئة العمل (Yii Framework ، Zend ، إلخ.)
لتعلم التحكم في الإصدار ، مثل Git أو SVN
هناك مشكلة مهمة لهذا النوع من المطورين هي عملية التوثيق ... ونظام التشغيل الذي يستخدمه مطورو هذا النوع بشكل شائع هو Linux.
هذه هي النهاية الخلفية وبالطبع هناك الحد الأدنى من المتطلبات لبدء عالمك ولكن تأكد من أنه يجب أن يكون لديك الحد الأدنى من المهارات التي تؤهلك للبحث وبدء العمل ، ومن الجيد في هذا النوع أنك في تحد دائم مع المشاكل وموظفيك هنا أكثر حساسية للتعامل المباشر مع البيانات والخوف من القرصنة أو إتلاف البيانات أو عدم الأداء بشكل جميل ... عش التحدي.
الآن ماذا عن العمل كواجهة أمامية أم خلفية أم من لديه القدرة على القيام بهاتين الوظيفتين ؟! هل هناك وظيفة لهذا النوع؟ ماذا يسمى صاحبها ؟!
الجواب ، بالطبع ، هناك وظيفة لأمثال هؤلاء أو المسمى الوظيفي ليكون لها معنى أكثر دقة وهو Full Stack
ثالثا: ال Full Stack
خلال مرحلة المدرسة ، كنا نتعلم أن الكمبيوتر دائمًا ما يفهم الصواب والخطأ فقط يفهم اللغة 0 و 1 (يا أبيض ، يا أسود) ، لكن هذا المفهوم لم يكن يلبي احتياجات المجال، وكنا نريد الوصول الى حالة وسطية ، وكان ذلك من خلال الذكاء الاصطناعي ، وهذا المثال ينطبق على ال Full Stack، فهو لم يقبل بأن يكون Front-End لوحده ولم يقبل أن يكون Back-End لوحده، وهذا على فكرة الحالة الطبيعية مع المدة القادمة ، ستجد نفسك ، وإذا كنت في مجال Front End ، فأنت بحاجة إلى العمل على بعض التعليمات البرمجية من Back End والعكس صحيح ، وهذا هو ال Full Stack ، وبعبارة أخرى ، فهو أكثر دقة. العمل ذو شقين وخلفية (من جانب الخادم) Front End (التعامل من جهة ال Client). يجب أن يكون هذا النوع من المهارات مقاتلًا حقيقيًا في عالم الويب ، وتحتاج بالتأكيد إلى جهد أكبر لتكون قادرًا على مواكبة كل شيء جديد من كلا الجانبين وتطوير مهاراتك واكتساب أكبر قدر من الخبرة والقدرة على حل المشكلات.
وبالطبع فإن أهم المهارات المطلوبة هي المهارات الأساسية لكل منها
ال Back End وال Front End