فرانتاند و بکاند دو اصطلاح مهمی هستند که در رابطه با توسعه وب مورد استفاده قرار میگیرند. هر وبسایتی از دو بخش فرانتاند و بکاند تشکیل شده است. فرانتاند یا Front-end (به آن «سمت کاربر» هم میگویند)، بخشی از یک وبسایت است که کاربران میتوانند محتوای آن را مشاهده کرده و با عناصر آن تعامل داشته باشند. اصطلاح بکاند یا Back-end (به آن «سمت سرور» هم میگویند) نیز اشاره به قسمتی از وبسایت دارد که در سمت سرور قرار داشته و کاربران نمیتوانند کدهای آن را مشاهده کنند و بدون وجود بکاند عملا امکان ارائه محتوای وبسایتها و اپلیکیشنها به کاربران و بازدیدکنندگان وجود ندارد.
برای درک بهتر تفاوت این دو به این مثال توجه کنید. فرض کنید برای دیدن یک فیلم سینمایی جذاب و پرفروش به سینما رفتهاید. شما در هنگام مشاهده فیلم سینمایی تنها میتوانید بازیگران و کارهایی که در طول فیلم انجام میشوند را ببینید و مواردی مانند موسیقی متن، جلوههای ویژه و دکور صحنه باعث جذب هر چه بیشتر شما به فیلم میشوند اما شما به عنوان یک بیننده افرادی مانند کارگردان، منشی صحنه، صدابردار و فیلمبردار و همچنین اتفاقاتی که در پشت صحنه رخ میدهند (نوشتن و تمرین فیلمنامه، پرداخت دستمزدها، گریم بازیگران، حملونقل وسایل، تدوین فیلم و …) را نمیتوانید ببینید. در این مثال فرانتاند همان فیلمی است که شما مشاهده میکنید و بکاند نیز همان افراد و اتفاقاتی است که در پشت صحنه فیلم رخ میدهد.
توسعه فرانتاند چیست؟
توسعه فرانتاند به فرآیند ایجاد و طراحی عناصری از وبسایتها گفته میشود که کاربران به صورت مستقیم با آنها تعامل دارند که این عناصر شامل المانهای بصری و تعاملی مانند دکمهها، تصاویر، متنها، فرمها، ویدئوها، انمیشینها، هدر، فوتر و بدنه اصلی وبسایت میشوند. توسعهدهنگان فرانتاند برای ایجاد چنین عناصری از زبانها، فریمورکها، و فناوریهای مختلفی استفاده میکنند و زبانهای ، و JavaScript نیز سه عنصر اصلی توسعه فرانتاند هستند. شما تنها با استفاده HTML نیز میتوانید یک وبسایت ساده متنی که حاوی تعدادی عکس است را برای خود طراحی کنید اما برای طراحی یک وبسایت مدرن و پویا حداقل نیاز به استفاده از هر سه زبان اشاره شده دارید.
توسعه بکاند چیست؟
توسعه بکاند نیز به مجموعه فعالیتهایی گفته میشود که در پشت صحنه یک وبسایت یا اپلیکیشن انجام شده و شامل کدنویسی سمت سرور، ایجاد و مدیریت پایگاهداده، نوشتن ، پیادهسازی سازوکارها امنیتی، پیکربندی سرور و وبسرور، کشینگ و ادغام فناوریهای مرتبط با سمت سرور میشود. توسعه بکاند این امکان را فراهم میکند تا ، وبسایتها، برنامهها و اپلیکیشنها با پایگاهدادههای داده ارتباط برقرار کنند و PHP ، Node.js ، ، Laravel و Django نیز از مهمترین زبانها و فریمورکهای سمت بکاند هستند.
مقایسه فرانتاند و بکاند
فرانتاند | بکاند | |
تعریف | اشاره به قسمتی از یک وبسایت و یا اپلیکیشن دارد که کاربران میتوانند کدها و المانهای آن را مشاهده و با آن تعامل کنند. | بکاند به قسمتی از یک وبسایت یا اپلیکیشن گفته میشود که کاربران نمیتوانند کدهای آن را مشاهده و یا با آن تعامل کنند. |
زبانها | JavaScript ،CSS ،HTML و … | PHP، C++ ،GO، جاوا، پایتون، Net.، جاوا اسکریپت و … |
فریمورک و کتابخانهها | Next.js، ریاکت، Vue ،Bootstrap، آنگولار و … | Node.js ،Laravel ،Next.js، سمفونی، Django و … |
کاربردها | ایجاد رابطهای کاربری و صفحات وب متشکل از عناصر تعاملی و بصری، ریسپانسیو کردن صفحات وب، بهبود تجربه کاربری | ساختAPI، ایجاد و مدیریت پایگاههای داده، پردازش و دستکاری دادهها و درخواستهای سمت فرانتاند، پیادهسازی سیستمهای امنیتی، مدیریت سرور |
میزان درآمد | درآمد توسعهدهندگان فرانتاند معمولا کمی پائینتر از توسعهدهندگان بکاند است. | درآمد توسعهدهندگان بکاند معمولا کمی بالاتر از توسعهدهندگان فرانتاند است. |
دشواری یادگیری | بر خلاف باور عموم تسلط به توسعه فرانتاند دشوارتر از توسعه بکاند است. | تسلط به توسعه بکاند معمولا آسانتر از توسعه فرانتاند است. |
زبانها، فریمورکها و فناوریهای فرانتاند
امروزه زبانها، فریمورکها، فناوریها و کتابخانههای فرانتاند مختلفی وجود دارد که با استفاده از ترکیب آنها میتوانید صفحات وب جذاب، امروزی و تعاملی ایجاد کنید. فریمورکها پلتفرمهایی هستند که برای توسعه برنامهها و نرمافزارها مورد استفاده قرار میگیرند و کتابخانهها نیز مجموعهای از منابع و کدهای از پیش نوشتهشده هستند که توسعهدهندگان میتوانند از آنها برای سرعت بخشیدن به فرآیند توسعه برنامهها و اپلیکیشنها استفاده کنند.
زبانهای فرانتاند
- HTML
- CSS
- JavaScript
فریمورکهای و کتابخانههای فرانتاند
- React
- Flutter
- Foundation
- Next.js
- Backbone.js
- Bootstrap
- JQuery
- Svelt
- Vue.js
- Angular.js
سایر فناوریهای مرتبط با فرانتاند
تصویر شماره ۲
زبانها، فریمورکها و فناوریهای بکاند
توسعه بکاند نیز دارای زبانها، فریمورکها و فناوریهای مخصوصبهخود هستند که مهمترین آنها عبارتند از:
زبانهای بکاند
- PHP
- ++C
- Net.
- JavaScript
توجه: برخی از زبانها هم در توسعه فرانتاند و هم در توسعه بکاند کاربرد دارند. به عنوان مثال میتوان از زبانهای برنامهنویسی پایتون، جاوا اسکریپت و فلاتر در توسعه فرانتاند و بکاند استفاده کرد. اما با این حال زبانی مانند پایتون بیشتر مناسب سمت بکاند است.
فریمورکهای بکاند
- Next.js
- Node.js
- Laravel
- Flask
- Symfony
- Ruby on Rails
- Express.js
- Django
- Backbone.js
- Flutter
وظایف شغلی و مهارتها
توسعهدهندگان فرانتاند و بکاند دارای وظایف و مهارتهای مخصوصبهخود هستند اما با این حال در برخی موارد نیز اشتراکاتی باهم دارند و علاوهبراین برخی از این وظایف و مهارتها اختیاری هستند و تنها به جذب شما در شرکت مورد نظرتان کمک میکنند. به عنوان مثال یک توسعهدهنده فرانتاند ممکن است نیاز چندانی به آشنایی با داکر، کوبرنتیز و دستورات لینوکس، یادگیری مهارتهای نرم و استفاده از پیشپردازندههای CSS نداشته باشد.
وظایف و مهارتهای شغلی توسعهدهنده فرانتاند
- اطمینان از سازگاری وبسایتها با مرورگرهای مختلف
- آشنایی با یکی از پیشپردازندههای CSS مانند SASS
- تعامل با توسعهدهندگان بکاند و طراحان وب
- یادگیری مداوم و آشنایی با فناوریهای مدرن
- تسلط به یکی از فریمورکهای فرانتاند مانند React
- آشنایی حداقلی با مهارتهای سمت بکاند
- ایجاد عناصر بصری و تعاملی
- تسلط به CSS، HTML و JavaScript
- آشنایی مقدماتی با دستورات لینوکس
- بهینهسازی کدها و خطاها
- آشنایی با UI و UX
- آشنایی با نحوه کارکرد اینترنت
- آشنایی با گیت و
- ایجاد صفحات ریسپانسیو و دوستدار موبایل
- آشنایی با داکر و کوبرنتیز
- آنالیز عملکرد صفحات وب
- آشنایی با مهارتهای نرم
- تست
تصویر شماره ۳
وظایف شغلی توسعهدهنده بکاند
- پیادهسازی فناوریهایی مانند لود بالانسینگ و
- توانایی ادغام فناوریهای مرتبط با توسعه بکاند
- پیادهسازی و مدیریت سازوکارهای امنیتی مانند WAF
- تست و دیباگینگ کدها
- تسلط به یکی از فریمورکهای بکاند مانند Django
- آشنایی مقدماتی با دستورات لینوکس
- راهاندازی سیستمهای کشینگ مانند ممکشد و وارنیش
- ایجاد و مدیریت APIها
- مدیریت سرور، پایگاهداده و DBMS
- تسلط به یکی از زبانهای سمت بکاند مانند PHP
- آشنایی با گیت و گیتهاب
- آشنایی با داکر و کوبرنتیز
- آشنایی با مهارتهای نرم
سؤالات متداول
توسعهدهنده فرانتاند یا بکاند، کدام درآمد بیشتری دارد؟
جواب این سؤال بستگی به سابقه و میزان تسلط شما به مهارتهای مرتبط با توسعه وب دارد اما معمولا بهطورمیانگین توسعهدهندگان بکاند کمی درآمد بیشتری نسبت به توسعهدهندگان فرانتاند دارند. توسعهدهندگان از لحاظ مهارت و تجربه به ۳ دسته
، و دستهبندی میشوند که معمولا توسعهدهندگان جونیور کمترین درآمد و توسعهدهندگان سینیور نیز بیشترین درآمد را دارند.توسعهدهنده فول استک کیست؟
توسعهدهنده فولاستک (Full-stack) به فردی میگویند که به مهارتهای توسعه بکاند و فرانتاند مسلط باشد. توسعهدهندگان فولاستک معمولا درآمد بیشتری نسبت به توسعهدهندگان فرانتاند و بکاند دارند.
فرانتاند یا بکاند، کدام مناسب من است؟
اگر علاقهمند به طراحی صفحات وب و عناصر تعاملی و جذاب هستید، در این صورت بهتر است، مسیر توسعه فرانتاند را پیش بگیرید. اگر هم به فناوریهایی مانند پایگاهداده، ایجاد API، وبسرور و در کل کار با کدهای سمت سرور علاقه دارید، بهتر است به سراغ توسعه بکاند بروید. اگر هم نمیدانید به کدامیک علاقه دارید، در این صورت بهتر است کمی شروع به یادگیری آنها کنید و پس از آن تصمیم بگیرید که کدام مسیر را میخواهید انتخاب کنید.
آیا یادگیری توسعه فرانتاند آسان است؟
بر خلاف باور عموم، یادگیری توسعه فرانتاند نیز به مانند سایر حوزههای توسعه میتواند چالشبرانگیز باشد. تغییر و تحول مداوم فریمورکها و کتابخانهها، سازگارسازی کدها با مرورگرها، ایجاد صفحات وب ۱۰۰٪ ریسپانسیو، دیباگینگ کدها، پیچیدگیهای مرتبط با مفاهیم پیشرفته CSS و JavaScript و تعامل حرفهای با توسعهدهندگان بکاند از مهمترین چالشهای توسعه فرانتاند هستند.
چگونه مهارتهای توسعه فرانتاند و بکاند را یاد بگیریم؟
شما میتوانید به صورت خودآموز و از طریق ویدئوهای یوتوب و وبسایتهایی مانند Freecodecamp و W3schools شروع به یادگیری چنین مهارتهایی کنید. گزینه دیگر شرکت در دورههای آنلاین و حضوری توسعه وب است که البته قبل از ثبتنام در چنین دورههایی حتما راجع به محتوای دوره و سابقه مدرس تحقیق کنید. برخی شرکتها نیز اقدام به استخدام کارآموز فرانتاند و بکاند میکنند که میتوانید با حضور در چنین شرکتهایی مهارتهای خود را به شکل جدیتری توسعه دهید.
منابع: Interviewbit، Cbtnuggets، Simplilearn