برنامه نویس فرانت یا بک اند؟

با دوستان خود به اشتراک بگذارید

اشتراک گذاری در facebook
اشتراک گذاری در linkedin
اشتراک گذاری در twitter
اشتراک گذاری در email

ممکن است برای علاقه‌مندانی که قصد انتخاب یک مسیر شغلی در زمینه برنامه‌نویسی و توسعه وب را دارند، این سئوال به وجود بیاید که توسعه‌دهنده فرانت‌اند (Front-End Developer)، توسعه‌دهنده بک‌اند (Back-End Developer) و توسعه‌دهنده فول‌استک (Full Stack Developer) که هستند، روزانه چه کارهایی انجام می‌دهند، چه مهارت‌ها و چه وظایفی دارند؟که در ادامه به این مطالب می پردازیم.

برنامه نویس فرانت اند ، بک اند و فول استک:

تصور کنید کاربر یک صفحه جدید در مرورگر را باز می‌کند، آدرس سایت مورد نظر خودش را در قسمت نوار آدرس وارد می‌کند، کلید اینتر را می‌زند؛ سایت به سرعت باز می‌شود و قالب و طراحی گرافیکی سایت توجه مخاطب را جلب می‌کند. صفحه باز شده معمولا ساختاری استاندارد و ویژگی‌های بصری قابل توجهی دارد. در واقع، این توسعه‌دهندگان وب هستند که مسئولیت تولید و ایجاد چنین محصول باکیفیت و با تجربه‌کاربری دلپذیری را برعهده دارند.

تا خرداد ماه ۱۴۰۰، بیش از ۱٫۵ میلیارد وب‌سایت در جهان ایجاد شده و همچنان این تعداد در حال افزایش است. بنابراین، امنیت شغلی قدرتمندی برای توسعه‌دهندگان وب و در واقع افراد فعال در زمینه کدنویسی، ساخت، آنالیز و نگهداری صفحات وب وجود دارد. در دنیای رقابتی امروز،‌ وب‌سایت‌ها یکی از حیاتی‌ترین اجزاء برای هر کسب‌و‌کاری محسوب می‌شوند. با توجه به این که روندها و الگوهای توسعه وب به طور مرتب و با سرعت بالایی در حال تغییر هستند، فعلا کمبودی در خصوص فرصت‌های شغلی برای توسعه‌دهندگان وجود ندارد.

سوال اصلی که در این وهله مطرح می‌شود این است که آموزش دیدن و آماده شدن برای چه نوع موقعیت شغلی در حوزه توسعه وب بهتر است؟ با مراجعه به سایت‌های کاریابی و یا بررسی دوره‌های آموزشی آنلاین موجود در اینترنت، مشخص می‌شود که نقش‌های شغلی حوزه توسعه وب به سه دسته اصلی تقسیم می‌شود: ‌فرانت‌اند (Front-End)، ‌بک‌اند (Back-End) و فول‌استک (Full Stack).

افراد با آغاز آموزش دیدن در زمینه اچ‌تی‌ام‌ال (HTML)، جاوا اسکریپت (JavaScript) و یا پایتون (Python)، ممکن است سردرگم شوند و مطمئن نباشند کدام مسیر را در پیش بگیرند. بنابراین، نیاز به تفکیک و موشکافی هر یک از این سه دسته‌ در حوزه توسعه وب وجود دارد که در ادامه سعی شده به این مسئله پرداخته شود.

توسعه دهنده فرانت اند (Front-End):

در این بخش از مطلب برنامه نویس فرانت اند ، بک اند و فول استک دولوپر به این پرسش پاسخ داده می‌شود که توسعه دهنده فرانت اند (Front-End) چه کسی است؟ ظاهر و بخش بیرونی یک وب‌سایت، قسمتی است که کاربران با آن به تعامل می‌پردازند. تمام آن‌چه که هنگام پیمایش در اینترنت دیده می‌شود، از فونت‌ها و رنگ‌ها گرفته تا منوهای کشویی و اسلایدرها (Slider)، ترکیبی از سی‌اس‌اس (CSS)، اچ‌تی‌ام‌ال و جاوا اسکریپت هستند. این مولفه‌های بصری که می‌توان آن‌ها را بخشی از «تجربه‌کاربری» (User Experience) دانست، در سیستم کاربر به وسیله «مرورگر وب» (Web Browser) کنترل می‌شوند.

ابزارها و مهارت‌های مورد نیاز توسعه دهنده فرانت اند:

در این بخش از مطلب برنامه نویس فرانت اند ، بک اند و فول استک به پرسش «ابزارها و مهارت‌های مورد نیاز توسعه دهنده فرانت اند چیست؟» پاسخ داده شده است. توسعه‌دهندگان فرانت‌اند، مسئولیت تولید کدهای سمت کاربر و معماری تجربه‌کاربری همه‌جانبه آن را برعهده دارند. برای عملی کردن این اهداف، توسعه‌دهندگان فرانت‌اند باید در سه مهارت کلیدی اچ‌تی‌ام‌ال، سی‌اس‌اس و برنامه‌نویسی جاوا اسکریپت تسلط داشته باشند.

علاوه بر نیاز به تسلط بر این سه زبان، لازم است توسعه‌دهندگان با فریم‌ورک‌هایی چون بوت‌استرپ (Bootstrap)، فاندیشن (Foundation)، بک‌بون (Backbone)، انگولارجی‌اس (AngularJs) و امبرجی‌اس (EmberJS) آشنایی داشته ‌باشند. این فریم‌ورک‌ها مستقل از نوع دستگاه مورد استفاده، ارائه محتوا با ظاهری آراسته و زیبا را تضمین می‌کنند.

همچنین استفاده از کتابخانه‌هایی مثل جی‌کوئری (jQuery) و لِس (LESS) که کد را به شکلی کاربردی‌تر قالب‌بندی کرده و باعث صرفه‌جویی زمانی می‌شوند نیز ضروری به نظر می‌رسد. علاوه بر این، در بسیاری از آگهی‌های شغلی نیاز به آشنایی با ای‌جکس (Ajax) هم عنوان شده است که در سطح وسیعی در جاوا اسکریپت کاربرد دارد. Ajax با دانلود داده‌های سرور در پس‌زمینه، امکان بارگذاری صفحات را به صورت پویا (دینامیک | Dynamic) فراهم می‌کند. با استفاده از این ابزارها، توسعه‌دهندگان فرانت‌اند همکاری نزدیکی با یک تحلیل‌گر تجربه‌کاربری خواهند داشت تا نمونه‌های آزمایشی یا استخوان‌بندی لازم را از مرحله توسعه تا تحویل فراهم کنند.

به طور کلی اگر طراحی و توسعه وب را به ساخت یک خانه تشبیه کنیم، توسعه‌دهنده فرانت‌اند مسئول طراحی داخلی خانه‌ای محسوب می‌شود که توسط یک توسعه‌دهنده بک‌اند ساخته شده است. ظاهر دکور نیز توسط صاحب‌خانه تعیین می‌شود. چنانکه «گِرِگ ماترانگا» (Greg Matranga)،‌ مدیر بازاریابی در اپتیکس (Apptix)، به تیم‌های فرانت‌اند و بک‌اند تحت نظارت خود می‌گوید:

«توسعه‌دهندگانی که روی فرانت‌اند کار می‌کنند، ‌معمولا برای کارشان هیجان بیش‌تری دارند و قادر هستند از خلاقیت خود به عنوان یک اهرم برای جلب توجه مخاطب، استفاده کنند.»

کار توسعه دهنده فرانت اند:

در این بخش از مطلب برنامه نویس فرانت اند ، بک اند و فول استک دولوپر با ارائه یک مثال، کار توسعه دهنده فرانت اند به طور شفافی تشریح شده است. هر آنچه که مخاطب در این لحظه در این وب‌سایت مشاهده می‌کند نیز، همه و همه توسط یک توسعه‌دهنده فرانت‌اند ایجاد شده است. «طراح وب» (Web Designer)، لوگو و محیط گرافیکی وب‌سایت را خلق کرده است، عکس‌ها را یک عکاس گرفته و یک نویسنده، متن را نوشته است. اما، این یک توسعه‌دهنده فرانت‌اند است که تمام این قطعات را همچون قطعه‌های یک پازل در کنار هم می‌چیند، تمام این موارد را به زبان وب ترجمه و تبدیل می‌کند و در نتیجه، تجربه کاربر را در تعامل با سایت به وجود می‌آورد.

توسعه دهنده بک اند (Back-End):

چه چیزی زیرساخت‌ها و امکانات لازم برای اجرای فرانت‌اند در سمت کاربر را فراهم می‌کند؟ آن همه اطلاعات و داده‌هایی که در تعامل با کاربر تولید می‌شوند، کجا باید ذخیره ‌شوند؟ این‌جا است که بک‌اند (Back-End) وارد ماجرا می‌شود. بک‌اند یک وب‌سایت، شامل یک «سرویس‌دهنده» (سرور | Server)، یک «اپلیکیشن» (Application) و یک «پایگاه‌داده» (Database) است. بنابراین، توسعه‌دهنده بک‌اند اجزایی را می‌سازد و نگهداری می‌کند که موجودیت سمت کاربر به این اجزاء وابسته است.

ابزارها و مهارت‌های مورد نیاز توسعه دهنده بک اند:

در ادامه مطلب برنامه نویس فرانت اند ، بک اند و فول استک به این پرسش پاسخ داده شده است که ابزارها و مهارت‌های مورد نیاز توسعه دهنده بک اند چیست؟ برای مرتبط کردن سرور، اپلیکیشن و پایگاه‌داده، توسعه‌دهندگان بک‌اند از ابزارهای متعددی استفاده می‌کنند. زبان‌های سمت سرور مانند پی‌اچ‌پی (PHP)، روبی (Ruby)، پایتون (Python)، جاوا (Java) و چارچوب وب دات‌نت (Net.)، برای ساخت اپلیکیشن استفاده می‌شوند ‌و ابزارهایی همچون MySQL، اوراکل (Oracle) و SQL Server‌ برای جستجو، ذخیره یا تغییر داده‌ها و بازگرداندن آن‌ها به کاربر در کدهای فرانت‌اند به کار گرفته می‌شوند.

در آگهی‌‌های استخدام مربوط به فرصت‌های شغلی توسعه‌دهندگان بک‌اند، نیاز به داشتن تجربه در کار با فریم‌ورک‌هایی مانند پی‌اچ‌پی زند (Zend)، سمفونی (Symfony | سیمفونی) و کیک‌پی‌اچ‌پی (CakePHP) عنوان شده است. همچنین، آشنایی با نرم‌افزارهای «کنترل نسخه» (Version Control) مثل اس‌وی‌ان (SVN)، سی‌اس‌وی (CSV) یا گیت (Git) و همین‌طور داشتن تجربه در کار با «لینوکس» (Linux)، به عنوان یک سیستم توسعه و استقرار، معمولا لازم است.توسعه‌دهندگان بک‌اند، این ابزارها را در خلق و ایجاد وب اپلیکیشن‌هایی (Web Application | Web App) با کدنویسی شفاف و ساختارمند، قابلیت جابجایی بالا (Portability) و به خوبی مستند شده (Well-Documented) به کار می‌گیرند. اما برای نوشتن چنین کدهایی، توسعه‌دهندگان بک‌اند باید با ذی‌نفعان آن کسب‌وکار در تعامل باشند تا نیازهای به خصوص آن‌ها را دریافت کرده، آن نیازها را به ملزومات فنی ترجمه کرده و در نهایت مؤثرترین و بهینه‌ترین راه‌کارها برای طراحی و توسعه آن خواسته‌ها و نیازها را به کار بگیرند. توسعه‌دهنده با سابقه،‌ جی‌پی توتو (Jp Toto)، که در حال حاضر توسعه‌دهنده نرم‌افزار در شرکت وایلد‌بیت (Wildbit) است، در این رابطه چنین می‌گوید:

«من همیشه توسعه بک‌اند را ترجیح داده‌ام؛ چرا که، من عاشق دست‌کاری داده‌ها هستم. اخیرا، رابط‌های برنامه‌نویسی کاربردی (Application Programming Interface | API) به جزء حیاتی تبادل داده میان دستگاه‌های موبایل، وب‌سایت‌ها و سایر سیستم‌های ارتباطی مبدل شده‌اند. ساختن API‌هایی که برای مردم مفید و گره‌گشا باشد، برایم بسیار رضایت‌بخش است.»

توسعه دهنده فول استک (Full Stack):

هیچ‌گاه یک تفکیک صفر و یک بین توسعه‌دهندگی فرانت‌اند و بک‌اند وجود ندارد. توسعه‌دهندگان فرانت‌اند اغلب نیاز پیدا می‌کنند علاوه بر مهارت‌های خود، برخی از مهارت‌های مورد نیاز بک‌اند دولوپر را نیز یاد بگیرند و برعکس. ماترانگا ر این رابطه، چنین می‌گوید:

«به خصوص در شرایط اقتصادی کنونی که بخش بازاریابی در کسب‌وکارها منابع و بودچه چندانی ندارند، توسعه‌دهنده‌ها تا حدودی به این نظم متقابل نیاز دارند و اکثر اوقات، یک توسعه دهنده باید همه‌چیزدان باشد.»

عنوان موقعیت شغلی توسعه‌دهنده فول‌استک (Full Stack Developer)، هفت سال پیش توسط واحد مهندسی فیس‌بوک (Facebook) رایج شد. ایده اصطلاح «توسعه‌دهنده فول‌استک» از آنجا نشأت می‌گیرد که توسعه‌دهنده فول‌استک هم در زمینه تکنولوژی‌های طراحی وب و هم در حوزه فناوری‌ها و ابزارهای توسعه‌وب و بک‌اند مهارت دارد و به فعالیت می‌پردازد. فدریکو اولفو (Federico Ulfo) توسعه‌دهنده فول‌استک در Grovo می‌گوید:

«کار کردن به صورت حرفه‌ای روی هر دو سمت کاربر و سرویس‌دهنده، فرصت‌های بیش‌تری را فراهم می‌کند؛ اما قطعا توسعه فول‌استک بدون چالش هم نیست. به عنوان مثال، ممکن است فردی یا در پختن غذا ماهر باشد یا در پختن نان؛ ولی برای داشتن هر دو مهارت به صورت هم‌زمان، نیاز به زمان و تجربه بیشتری است. البته من در مورد دنبال کردن یک دستورالعمل صحبت نمی‌کنم، چون هر کسی می‌تواند طبق یک دستورالعمل از پیش تعیین شده جلو برود. بلکه دارم راجع به داشتن مواد اولیه‌ای صحبت می‌کنم که برای درست کردن چیزی واقعا باکیفیت استفاده می‌شوند.»

ابزارها و مهارت‌های مورد نیاز توسعه دهنده فول استک:

در این بخش از مطلب برنامه‌نویس فرانت اند ، بک اند و فول استک به این پرسش پاسخ داده است که ابزارها و مهارت‌های مورد نیاز توسعه دهنده فول استک چیست؟ توسعه‌دهندگان فول‌استک، همانند توسعه‌دهندگان بک‌اند روی برنامه‌نویسی سمت سرور سایت کار می‌کنند ولی علاوه بر آن، باید در سطح بالایی روی زبان‌های Front-End که نحوه مدیریت ظاهر محتوا و سمت کاربر را بر عهده دارند نیز تسلط داشته‌باشند.

توسعه‌دهندگان فول‌استک در واقع در حوزه کاری خود افرادی همه‌فن‌حریف هستند. برای نمایش پیچیده‌تر شدن هر چه بیش‌تر برنامه‌نویسی فول‌استک در طول زمان، مهارت‌های مورد نیاز آن در گذشته با مهارت‌هایی که در حال حاضر برای این موقعیت شغلی مورد نیاز است، در قالب تصاویر زیر مقایسه شده است.

صرف نظر از ابزارهای خاص، و بسته به پروژه یا مشتری فعلی، توسعه‌دهندگان فول‌استک باید در تمام سطوح، نحوه کارکرد وب را بدانند. یعنی در راه‌اندازی و تنظیمات سرورهای لینوکس، نوشتن APIهای سمت سرور، کار با جاوا اسکریپت در سمت کاربر برای راه‌اندازی یک اپلیکیشن و کار با CSS برای طراحی ظاهری، تسلط داشته باشد. با استفاده از این ابزارها، توسعه‌دهندگان فول‌استک باید بتوانند بلافاصله نیازمندی‌های سمت کاربر و سمت سرور را شناسایی کنند و نقاط مثبت و منفی راه‌کارهای مختلف برای رفع این نیازها را شرح بدهند.

یک توسعه‌دهنده فول‌استک به طورکامل مسئولیت آن‌چه در یک وب‌سایت جریان دارد و تجربه می‌شود را از زمان بارگذاری و طراحی قالب آن گرفته تا قابلیت‌های تعاملی و بنیان ساختاری آن بر عهده دارد.


ایمیل خود را وارد کنید

نظر خود را با ما به اشتراک بگذارید

مطالب بیشتر

Python

زبان برنامه نویسی پایتون

«زبان برنامه نویسی پایتون» (Python Programming Language)، زبانی با یادگیری آسان محسوب می‌شود و از همین رو بسیاری از برنامه‌نویس‌های تازه‌کار آن را به عنوان

GoLang

زبان برنامه نویسی GOLange

گو (Go) یک زبان برنامه‌نویسی ترجمه‌شده و دارای زباله جمع‌کن و همروند است که در شرکت گوگل و توسط رابرت گریسیمر، راب پایک و کن

Code dev

برنامه‌نویسی این امکان رو به شما می‌دهد تا در مورد خودِ «فکر کردن» فکر کنید و وقتی‌ هم که دیباگ می‌کنید، در مورد خودِ «یادگیری» یاد می‌گیرید.

Created by AmirHossein Torabi