توسعهدهنده فرانتاند، بکاند و فولاستک چه افرادی هستند؟
فرض کنید کاربر زبانه جدیدی در مرورگر خود باز میکند، آدرس وبسایت مدنظر را در نوار آدرس مرورگر وارد میکند و کلید اینتر را فشار میدهد. سایت با گذشت کسری از ثانیه باز میشود و اولین چیزی که کاربر با آن روبرو میشود قالب و طراحی گرافیکی وبسایت است. در حالت کلی، صفحه باز شده ساختار بصری استاندارد و مشخصی دارد که برخی عناصر آن جذاب هستند. حتا زمانی که از سامانههای مدیریت محتوا برای ساخت وبسایتها استفاده میشود، چینش عناصر جذابیت خاص خود را دارند. در هر دو حالت، این توسعهدهندگان وب هستند که مسئولیت طراحی و پیادهسازی سایتی با کیفیت را عهدهدار هستند که تجربه کاربری دلپذیری را القا کند. آمارها نشان میدهند تا دسامبر 2020 میلادی، بیش از 1.5 میلیارد وبسایت در فضای مجازی ایجاد شدهاند و این رقم همچنان روند صعودی دارد. بنابراین، امنیت شغلی توسعهدهندگان وب تضمین شده است و افرادی که حوزه کاری آنها به نوعی با دنیای وب در ارتباط هست دغدغهای از بابت بیکاری ندارند. این افراد میتوانند توسعهدهندگان وب، طراحان گرافیکی یا افرادی باشند که مسئولیت پشتیبانی از سایتها به آنها محول شده است. در دنیای به شدت رقابتی امروز، وبسایتها یک از کلیدیترین مولفههای هر کسبوکاری هستند. با توجه به اینکه روندها و الگوهای توسعه وب به سرعت تغییر میکنند، انتظار نمیرود در آینده نزدیک مشکلی از بابت کمبود فرصتهای شغلی برای توسعهدهندگان وب به وجود آید. مهمترین پرسشی که علاقهمندان به توسعه وب مطرح میکنند این است که چه نوع موقعیت شغلی آینده بهتری دارد؟ اگر به وبسایتهای کاریابی و فعال در زمینه آموزشهای آنلاین مراجعه کنید سه حوزه اصلی در توسعه وب را پیدا میکنیم که آگهیهای شغلی مرتبط با آنها روزانه منتشر میشوند. فرانتاند، بکاند و فولاستک سه حوزه اصلی در زمینه توسعه وب هستند که بازار کار خوبی دارند. با اینحال، زمانیکه یادگیری فناوریهایی نظیر زبان نشانهگذاری ابرمتن (HTML)، جاوااسکریپت و پایتون را آغاز میکنیم سردرگم میشویم که اکنون باید چه مسیر شغلی را انتخاب کنیم و کدامیک از این موقعیتهای شغلی آینده بهتری دارند. برای آنکه با اطمینان خاطر در مسیر شغلی درستی گام بردارید در ادامه توضیح مختصری در ارتباط با هر یک از این عناوین شغلی ارائه میکنیم.
توسعهدهنده فرانتاند چه کسی است؟
ظاهر و نمای خارجی وبسایتها، بخشی است که کاربران با آن در ارتباط هستند. به بیان سادهتر، عناصری که در هنگام گشتوگذار در وبسایتها دیده میشوند و شامل فونتها، رنگها، منوهای کشویی، اسلایدرها و موارد این چنینی هستند ترکیبی از اچتیامال، سیاساس و جاوااسکریپت هستند که فرانتاند نامیده میشوند. این مولفههای بصری که بخشی از تجربه کاربری هستند در سامانههای کاربران توسط موتور پردازشی مرورگرهای وب کنترل میشود. چه کسی این عناصر را آماده و مرتب میکند؟ پاسخ توسعهدهنده فرانتاند است. توسعهدهنده فرانتاند، فردی است که بخش ظاهری وبسایت که کاربران با آن به تعامل میپردازند را طراحی میکند. وظیفه توسعهدهنده فرانتاند این است که تضمین دهد عناصر نمای خارجی وبسایت در مکان درستی قرار دارند. بهطور خلاصه، چگونگی نمایش یک آرم، موقعیت نوار پیمایش، خدمات ارائه شده توسط مالکان وبسایت، لینکهای شبکههای اجتماعی و موارد این چنینی توسط توسعهدهنده فرانتاند انجام میشود.
شرح وظایف توسعهدهنده فرانتاند چیست؟
یک توسعهدهنده فرانتاند باید تمامی مولفههای ظاهری را شبیه به یک پازل کنار هم قرار دهد و این مولفهها را به زبان وب ترجمه و تبدیل کند تا مخاطب بتواند در قالب مفهومی بهنام تجربه کاربری با سایت تعامل داشته باشد. بهطور مثال، زمانی که سایتی را باز میکنید و نشانهگر ماوس را روی آیکنهایی نگه میدارید و جلوهای گرافیکی و رنگ زمینه تغییر میکند یا زمانی که جلوههای بصری خاصی پس از انجام عملی در یک سایت نشان داده میشوند، در تمامی این حالت، یک توسعهدهنده فرانتاند کدهای مربوطه را نوشته است. بهطور کلی، وظیفه اصلی توسعهدهندگان فرانتاند ارائه یک تجربه جذاب و تأثیرگذار برای بازدیدکنندگانی است که به سایت شرکتی مراجعه میکنند. توسعهدهندگان فرانتاند تعامل نزدیکی با طراحان گرافیکی دارند تا ایدهها به بهترین شکل به سرانجام برسد. با اینحال، توسعهدهندگان فرانتاند برای آنکه در کار خود موفق شوند باید تجربه کار با برخی فناوریهای کاربردی را داشته باشند.
مهارتهای موردنیاز توسعهدهنده فرانتاند چیست؟
توسعهدهندگان فرانتاند مسئولیت تولید کدهای سمت کاربر و معماری تجربه کاربری همه جانبه را بر عهده دارند. برای انجام اینکار، توسعهدهندگان فرانتاند باید بهطور کامل بر اچتیامال، سیاساس و برنامهنویسی جاوااسکریپت مسلط باشند. علاوه بر این، آشنایی با چهارچوبها و کتابخانههایی نظیر بوتاسترپ، فاندیشن، بکبن (Backbone)، آنگولار جیاس، امبرجیاس، ریاکت و Vue.js ضروری است. برای آنکه بتوانید کدهایی بنویسید که به شکل کاربردیتری قالببندی شده باشند و زمان زیادی را صرف کدنویسی نکنید، نباید از کتابخانههایی نظیر جیکوئری و لس (LESS) غافل شوید. اگر آگهیهای منتشر شده در سایتهای کاریابی را مطالعه کرده باشید، تقریبا بیشتر آنها به فناوری ایجکس که به شکل گستردهای در جاوااسکریپت کاربرد دارد اشاره دارند. ایجکس مجموعهای متشکل از فناوریهای طراحی وب یکپارچه است که در سمت کاربر برای ایجاد سریعتر، بهتر و ارتباط متقابل برنامههای وب غیرهمزمان از XML،HTML وCSS استفاده میکنند. این موتور ایجکس است که توانایی اداره کردن درخواستها را دارد. علاوه بر این، توانایی نگهداری حجم زیادی از اطلاعات را دارد که در نتیجه به برنامهها و کاربران اجازه دسترسی غیرهمزمان و مستقل و دریافت هر واکنشی از سرور را میدهد. ایجکس با دانلود دادههای سرور در پسزمینه، امکان بارگذاری صفحات به شکل پویا را فراهم میکند. توسعهدهندگان فرانتاند با این مجموعه ابزارها میتوانند با سهولت بهتری با متخصصان تجربه کاربری در تعامل باشند تا نمونههای آزمایشی اولیه را از مرحله توسعه تا تحویل آماده کنند. بهطور کلی، اگر طراحی و توسعه وب را شبیه به ساختمانسازی تصور کنیم، توسعهدهنده فرانتاند مسئولیت طراحی نمای ظاهری ساختمان را برعهده دارد، در حالی که توسعهدهنده بکاند مسئولیت پیادهسازی شالوده ساختمان را عهدهدار است. گرگ ماترانگا (Greg Matranga) مدیر بازاریابی اپتیکس میگوید: «توسعهدهندگان فرانتاند در کار خود هیجان بیشتری دارند، زیرا از خلاقیت خود به عنوان اهرمی برای جذب مخاطب استفاده میکنند.»
توسعهدهنده بکاند کیست؟
چه مفهومی زیرساختها و امکانات لازم برای اجرای ملزومات مربوط به فرانتاند در سمت کاربر را آماده میکند؟ اطلاعات و دادههایی که در تعامل با کاربر تولید میشوند در چه مکانی باید ذخیرهسازی شوند؟ این همان مکانی است که بکاند به میدان وارد میشود. بکاند یک وبسایت، شامل یک سرویسدهنده سرور، برنامه کاربردی و بانکاطلاعاتی است. بنابراین، توسعهدهنده بکاند مولفههایی را ایجاد و نگهداری میکند تا کاربر بتواند از طریق این مولفهها که عناصر فرانتاند روی آنها قرار میگیرند با سایت در تعامل باشد.
شرح وظایف توسعهدهنده بکاند چیست؟
زمانی که شخصی به وبسایتی مراجعه میکند، سرورهای سایت، اطلاعاتی را برای کامپیوتر کاربر ارسال میکنند. در ادامه اطلاعات دریافتی توسط موتور پردازشی مرورگر رندر شده و به صفحهای تبدیل میشوند که برای کاربر قابل مشاهده است. این وظیفه توسعهدهندگان بکاند است که مولفههای داخلی را به گونهای با یکدیگر ترکیب کنند که خروجی برای مرورگرهای وب قابل فهم باشد. توسعهدهندگان بکاند، افرادی هستند که با ابزارها، فناوریها و زبانهای برنامهنویسی که سمت سرور اجرا میشوند در تعامل هستند. برای روشنتر شدن مطلب بهتر است نحوه عملکرد یک برنامه واقعی را بررسی کنیم. کاربر برنامهای شبیه به یک مرورگر اینترنتی را اجرا میکند. مرورگر به اینترنت متصل میشود و یک درخواست HTTP GET را در قالب یک آدرس اینترنتی برای سرور ارسال میکند. درخواست فوق از میان گیتویها و مسیرهای مختلف عبور میکند تا به سرور برسد. زمانیکه درخواست به سرور رسید، درخواست را پردازش و نتیجه را برای کاربر ارسال میکند. کاری که سرور انجام میدهد این است که دستوراتی که توسط توسعهدهنده بکاند نوشته شدهاند را اجرا میکند، بانکهای اطلاعاتی را برای پردازش محاوره به خدمت میگیرد و پاسخ را باز میگرداند.
توسعهدهنده بکاند به چه مهارتها و ابزارهایی نیاز دارد؟
توسعهدهندگان بکاند برای انجام وظایف خود و مرتبط کردن سرور، برنامه کاربردی و بانکاطلاعاتی به یکدیگر به ابزارهای مختلفی نیاز دارند. با اینحال، برخی از این ابزارها جنبه عمومی دارند و توسعهدهندگان بکاند مجبور هستند تسلط کاملی بر آنها داشته باشند. زبانهای سمت سرور نظیر پیاچپی، روبی، پایتون، جاوا و چارچوب داتنت برای ساخت برنامههای کاربردی استفاده میشوند. ابزارهایی نظیر MySQL، اوراکل و SQL Server برای جستوجو، ذخیرهسازی یا تغییر دادهها و بازگرداندن اطلاعات به سمت کاربر در کدهای فرانتاند استفاده میشوند. با اینحال، دقت کنید در برخی آگهیهای مربوطه به استخدام توسعهدهندگان بکاند تسلط بر چهارچوبهایی نظیر پیاچپی زند (Zend)، سیمفونی (Symfony) و کیکپیاچپی (CakePHP) درج شده است. علاوه بر این، آشنایی با نرمافزارهای کنترل نسخه نظیر SVN، CSV یا گیت آشنایی با سیستمعامل لینوکس به عنوان سامانه توسعه و استقرار ضروری است. توسعهدهندگان بکاند، از ابزارهای مذکور برای ساخت برنامههای وبی که نیازمند ساختار و کد شفافی هستند، به قابلیت جابهجایی (Portability) زیادی نیاز دارند و به خوبی مستندسازی (Well-Documented) شدهاند استفاده میکنند. البته برای نوشتن چنین کدهایی، توسعهدهندگان بکاند باید با مدیران شرکت در تعامل باشند تا الزامات کسبوکار را به درستی درک کنند و آن نیازها را به الزامات فنی ترجمه کنند و در نهایت بهینهترین راهحلها برای طراحی و توسعه آن نیازها را به کار گیرند.
توسعهدهنده فولاستک کیست؟
گاهی اوقات مهارتهای موردنیاز توسعهدهندگان فرانتاند و بکاند تفاوت جزیی دارند، بهطوری که توسعهدهندگان فرانتاند مجبور هستند علاوه بر مهارتهای موردنیاز کاری خود، برخی از مهارتهای توسعهدهندگان بکاند را یاد بگیرند. همین موضوع در ارتباط با توسعهدهندگان بکاند نیز صدق میکند. گرگ ماترانگا، مدیر بازاریابی اپتیکس میگوید: «در شرایط اقتصادی فعلی که کسبوکارها بودجه زیادی ندارند، توسعهدهندگان فرانتاند و بکاند تا حدودی مجبور هستند مهارتهای یکدیگر را یاد بگیرند تا بتوانند به الزامات کسبوکار پاسخ دهند. به بیان دقیقتر، یک توسعهدهنده باید همه چیزدان باشد.» توسعهدهنده فولاستک، فردی است که در زمینه فناوریهای طراحی وب و در حوزه فناوریها و ابزارهای توسعه فرانتاند و بکاند مهارت دارد. یک توسعهدهنده فولاستک باید شناخت دقیقی در ارتباط با ابزارها و چهارچوبهایی داشته باشید که توسعهدهندگان فرانتاند و بکاند از آنها استفاده میکنند. این فرد باید بتواند یک نرمافزار را از ابتدا تا انتها طراحی و پیادهسازی کند. بهطور معمول، کسبوکارهای نوپا اولین مقاصد توسعهدهندگان فولاستک هستند. کسبوکارهای نوپا به دلیل اینکه یک طراح واقعی فولاستک با مباحثی نظیر مدیریت پروژه و متدولوژیهای چابک آشنا است علاقهمند به جذب آنها هستند. فدریکو اولفو توسعهدهنده فولاستک در شرکت Grovo میگوید: «کار کردن به شکل حرفهای در هر دو سمت کلاینت و سرور، فرصتهای شغلی بیشتری در اختیار افراد قرار میدهد، با اینحال، توسعهدهنده فولاستک با چالشهای زیادی روبرو است. شما ممکن است در پختن غذا یا در پختن نان مهارت داشته باشید، اما زمانی که تصمیم دارید هر دو کار را همزمان انجام دهید به زمان و تجربه بیشتری نیاز دارید. من در مورد دنبال کردن دستورالعمل خاصی صحبت نمیکنم، زیرا هر فردی میتواند مطابق با یک دستورالعمل از پیش تعیین شده گام بردارد.»
وظایف شغلی توسعهدهنده فولاستک چیست؟
یک توسعهدهنده فولاستک بهطور کامل بر روند اتفاقات درون یک سایت نظارت دارد. با توجه به اینکه یک توسعهدهنده فولاستک طیف گستردهای از مهارتها را میداند و این توانایی را دارد تا به تنهایی یک پروژه را مدیریت کند، کسبوکارها از این فرد انتظار دارند مشکلات وبسایتها را شناسایی و برطرف کند، بانکهای اطلاعاتی را مدیریت کند، بر روند کار توسعهدهندگان فرانتاند و بکاند نظارت کند و اگر سایت به لحاظ سرعت دسترسی با مشکلی روبرو شد، آنرا برطرف کند. بنابراین، یک توسعهدهنده فولاستک با اتکا بر مجموعهای از فناوریها میتواند در زمان کوتاهی طرحی اولیه برای یک محصول آماده و ارائه کند. این متخصصان میتوانند دورنمای موفقیت یا شکست یک محصول را مشاهده کنند و راهحلهایی برای بهبود عملکرد یک وبسایت ارائه کنند.
توسعهدهندگان فولاستک به چه ابزارها و مهارتهایی نیاز دارند؟
توسعهدهندگان فولاستک نقش هر دو گروه توسعهدهندگان بکاند و فرانتاند را دارند. به بیان سادهتر، گاهی اوقات باید برنامهنویسی سمت سرور سایت را انجام دهند و گاهی اوقات باید رابط گرافیکی سایت را مدیریت کنند و تغییراتی در کدهای فرانتاند اعمال کنند. به همین دلیل، توسعهدهندگان فولاستک در حوزه کاری خود همه چیزدان هستند و حقوق بیشتری نسبت به دو گروه قبلی دریافت میکنند، اما وظیفه سنگینی دارند. شرح وظایف توسعهدهندگان فولاستک در گذر زمان پیچیدهتر شده، زیرا توسعهدهندگان فرانتاند و بکاند مجبور شدهاند همسو با تحولات حاکم بر دنیای فناوری با مهارتهای دیگری آشنا شوند. مهارتهایی که یک توسعهدهنده فولاستک باید در سال 2021 بر آنها مسلط باشد در شکل زیر نشان داده شده است. بیشتر این مهارتها نام آشنا هستند، اما چند مورد جدید و مهم هستند. همانگونه که مشاهده میکنید توسعهدهندگان فرانتاند در سال 2021 باید LESS ، SAAS و GULP تسلط داشته باشند، در حالی که توسعهدهندگان بکاند در زمینه طراحی میانافزار کش باید اطلاعات کافی داشته باشند. iOS و اندروید دومین کلیدواژههای مهم این شکل هستند که نشان میدهد همگرایی طراحیهای وبمحور و موبایلمحور بازهم بیشتر شده است. بنابراین، به عنوان یک مهندس فولاستک باید اطلاعات کافی در ارتباط با ساخت برنامههای بومی موبایل داشته باشید. مانگو دیبی و اسکالا (در این تصویر ذکر نشده) از مهارتهای اصلی موردنیاز توسعهدهندگان بکاند هستند و بنابراین توسعهدهنده فولاستک باید در مورد آنها نیز اطلاع داشته باشد. تسلط بر دوآپس که شامل تحویل و ادغام مستمر میشود از مفاهیم مهم دیگری است که باید در مورد آن اطلاع کسب کنید. صرفنظر از ابزارهای خاص که بسته به پروژه یا مشتری نیاز هستند، توسعهدهندگان فولاستک باید درباره نحوه عملکرد وب و سایتها اطلاعات کافی داشته باشند. به عبارت دیگر در راهاندازی سرورهای لینوکسی، نوشتن واسطهای برنامهنویسی کاربردی سمت سرور، کار با جاوااسکریپت در سمت کاربر برای راهاندازی یک برنامه کاربردی و کار با CSS برای طراحی ظاهری دانش فنی را داشته باشند. با استفاده از ابزارهای یاد شده، توسعهدهندگان فولاستک باید در کوتاهترین زمان نیازهای سمت کاربر و سرور را شناسایی کنند و نقاط مثبت و منفی راهحلهای مختلف برای پاسخگویی به نیازها را شرح دهند.
مقایسه میزان درآمد توسعهدهندگان فرانتاند، بکاند و فولاستک
قبل از آنکه اطلاعات کلی در ارتباط با میزان حقوق پرداختی به توسعهدهندگان هر گروه ارائه کنیم، باید به این نکته اشاره کنیم که توسعهدهندگان هر گروه به سه سطح تازهوارد (Entry-level)، مبتدی (Junior-Level) و ارشد (Senior-Level) تقسیم میشوند. هر یک از سطوح یاد شده بر مبنای تجربه و مهارتی که دارند حقوق مختلفی دریافت میکنند. همانگونه که اطلاع دارید، شرکتهای ایرانی به دلایل مختلف از ذکر حقوقی که قرار است به توسعهدهندگان بدهند طفره میروند. بنابراین اطلاعات دقیق و روشنی در این زمینه در دست نیست. با اینحال، بهطور متوسط حقوقی که یک توسعهدهنده ارشد فرانتاند دریافت میکند در بازه 8 تا 12 میلیون تومان است. توسعهدهندگان جونیور بهطور میانگین 4 تا 6 میلیون تومان دریافتی دارند. شرکتهای ایرانی کمی وجود دارند که توسعهدهنده فرانتاند تازهوارد را جذب کنند، با اینحال، متوسط حقوق این افراد حداکثر تا سقف 4 میلیون تومان است. میزان حقوق دریافتی توسعهدهنده بکاند نیز مانند فرانتاند است. البته گاهی اوقات با یک اختلاف جزیی این گروه دستمزد بیشتری دریافت میکنند. متاسفانه در مورد میزان دستمزد توسعهدهندگان فولاستک هیچگونه اطلاعات دقیقی در دست نیست و در بیشتر موارد شرکتها حقوق یکسانی را به توسعهدهندگان بکاند و فولاستک پرداخت میکنند. تجربه نشان داده که افراد بسیار کمی در ایران وجود دارند که به معنای واقعی کلمه توسعهدهنده فولاستک هستند، زیرا این افراد دستکم باید 12 تا 15 سال تجربه مفید در حوزههای مختلف داشته باشند و زیر و بم فناوریهایی که در زمینه توسعه وب موردنیاز است را بشناسند. با توجه به اینکه تعداد این افراد بسیار کم است و بیشتر افرادی که خود را به عنوان توسعهدهنده فولاستک معرفی میکنند در اصل توسعهدهنده بکاند هستند، در نتیجه شرکتها حقوقی یکسان با توسعهدهنده بکاند را پرداخت میکنند. با اینحال، یک توسعهدهنده فولاستک مجرب در خارج از ایران بهطور میانگین سالانه 110 هزار دلار در سال دستمزد دریافت میکند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟