اگر تازه وارد دنیای جذاب و بزرگ برنامه نویسی شده باشید احتمالاً کلمات فرانت اند و بک اند فول استک را شنیده‌اید و خیلی در مورد آن صحبت می‌کنند و انگاری طوری است که همه معنی و مفهوم آن را می‌دانند. اما شاید برای شما این کلمات هنوز کاملاً مشخص نباشد. شاید از خودتان سؤال کرده باشید که تفاوت فرانت اند و بک اند چیست و من باید کدام را انتخاب کنم؟ از کجا شروع کنم و چطوری پیش بروم.

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

فرانت اند (Frontend)چیست؟ بک اند (Backend) چیست؟ فوس استک (Fullstack) چیست؟

اجازه بدهید با یک مثال این سه کلمه را تعریف کنیم. فرض کنید که وارد یک رستوران شیک می‌شوید.

فرانت اند چیست؟

هر چیزی که شما به عنوان مشتری می‌بینید و با آن تعامل دارید فرانت اند به حساب می‌آید. همه ویترین و سالن رستوران و دکوراسیون داخلی رستوران(طراحی سایت) و منویی که لیست غذاها در آن درج شده است به عنوان فرانت اند رستوران محسوب می شوند. همچنین نحوه چیدمان میز و صندلی ها(Layout) و رفتار پیش خدمت‌ها و کارکنان رستوران نیز جزو فرانت اند رستوران به حساب می آیند.

وظیفه برنامه نویس فرانت اند این است که مطمئن شود که اجزای فرانت (ویترین) هم زیبا باشد و هم به بهترین شکل کار مشتری‌ها را راه بیندازد و مشتریان از آن تجربه خوبی داشته باشند.

بک اند چیست؟

بک اند در رستوران مثال آشپزخانه و انباری رستوران است. شما به عنوان مشتری هیچ وقت وارد آشپزخانه و انبار مواد اولیه نمی شوید. همچنین سیستمی که سفارش های شما را مدیریت می‌کند را نیز نمی بینید. اما اگر این بخش‌ها نباشند رستوران نمی‌تواند وظیفه خود را انجام بدهد. به طور کلی اجزای بک اند در رستوران عبارتند از: آشپزخانه که غذا را آماده می‌کند (سرور)، انبار مواد اولیه (دیتابیس)، سیستمی مدیریت سفارش‌ها و آماده سازی (منطق پیاده‌سازی شده در سرور) و سیستم امنیتی انبار (امنیت داده ها)

وظیفه برنامه نویس بک اند این است که مطمئن شود این اجزا به سریع‌ترین شکل امن و بدون نقص کار کند.

فول استک چیست؟

برنامه نویس فول استک مانند کسی است که هم با فرانت اند آشنا است و هم به بک اند اشراف دارد. کسی که می‌تواند هم توی طراحی منو و ویترین نظر بدهد(فرانت اند) و هم اگر لازم شد در آشپزخانه کار کند و غذا را آماده کند(بک اند). او تصویر کامل رستوران را می بیند. یعنی هم می‌تواند کار فرانت اند و هم کار بک اند را می‌تواند انجام دهد.

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

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

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

زبان HTML: این زبان به عنوان اسکلت همه سایت‌های امروزی است و ساختار اصلی صفحه را مشخص می‌کند. مثلاً عناصر و مواردی را که قرار است روی صفحه قرار بگیرند مثل (تیتر ها و دکمه ها و ..) را مشخص می کند.

زبان CSS: برای قالب بندی و استایل دادن به صفحه و آرایش وب سایت از CSS استفاده می‌شود. اینکه عناصری مثل دکمه ها و متن ها و چه رنگ و ابعادی داشته باشند و کجای صفحه قرار بگیرند و در موبایل به چه شکل نمایش داده شود همه با Css انجام می شود.

زبان Javascript(JS): جاوااسکریپت به عنوان روح و مغز وب سایت است. و رفتارهای وب سایت را مشخص می‌کند که مثلاً اگر روی منو یا دکمه ای کلیک شود چه اتفاقی خواهد افتاد.

البته فرانت اند کارها برای اینکه کارشان به درستی پیش برود و پروژه ساختار درستی داشته باشد از کتابخانه‌ها و فریمورک های رایج مانند React, Angular, Vue, … استفاده می کنند.

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

  • اگر شما جزو افراد زیر هستید و شخصیت شما به افراد زیر می‌خورد پیشنهاد می‌کنم که به دنبال فرانت اند بروید و آن را یاد بگیرید.
  • اگر شخص بصری هستید و از سرو کله زدن با رنگ و چیدمان لذت می برید.
  • اگر شخصی هستید که دوست دارید که نتیجه کارتان را به صورت بصری همان لحظه ببینید.
  • اگر می‌توانید خودتان را جای کاربر نهایی بگذارید و با تجربه و نیاز آن‌ها آشنا هستید.

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

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

زبان‌های برنامه نویسی: زبان‌های بک اند عبارتند از Java, C#, PHP, Go, Python, Ruby, … که هرکدام فریمورک هایی دارد که در سمت سرور و بک اند اجرا می‌شود.

دیتابیس ها: دیتابیس ها مدیریت ذخیره و بازیابی داده‌ها را دارند که عباتند از MySql, Sql server, PostgreSql, MongoDB, …

APIها: همانطور که گفتیم رابط بین فرانت اند و بک اند هستند که در سمت بک اند طراحی و پیاده‌سازی می‌شوند که انواع مختلفی مانند Restful APIو GraphQL را دارند.

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

اگر شما به عنوان برنامه نویس ویژگی‌های زیر را دارید پس پیشنهاد می‌کنم که به سراغ بک اند بروید و آن را امتحان کنید.

اگر عاشق معما و حل چالش های منطقی هستید و بیشتر تفکر الگوریتمی دارید.

اگر به موضوعات انتزاعی علاقه دارید زیرا که بک اند بیشتر با موارد انتزاعی سروکار دارد.

اگر برای وب سایت‌ها دغدغه امنیت و سرعت و مقیاس پذیری دارید.

وظیفه یک برنامه نویس فول استک چیست؟

برنامه نویس فول استک می‌تواند هم یک سیستم را به صورت کامل پیاده‌سازی کند یعنی هم نقش فرانت اند و هم بک اند را اجرا می‌کند. برنامه نویسان فول استک تصویر بزرگ را می‌بینند و می‌توانند یک پروژه را ازصفر تا صد پیش ببرند.

چالش برنامه نویسان فول استک: اقیانوسی به عمق یک سانت

یک باور قدیمی و غلط وجود دارد که می‌گوید فول استک ها همه چیز را بلد هستند ولی در هیچ زمینه‌ای تخصص ندارند. اما این نادرست است. اما امروزه مفهومی رایج شده است به نام برنامه نویسان T شکل (T-shaped developer) به این معنی که درست است که فول استک همه زمینه‌ای را بلد است ولی در یک یا چند زمینه بسیار عمیق است ولی در بقیه زمینه‌ها دانش کافی برای انجام کار را دارید.

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

اگر ویژگی‌های شخصیتی زیر را دارید به سراغ فول استک شدن بروید:

اگر شخص کنجکاوی هستید و دوست دارید که از همه چیز سر در بیاورید.

اگر دوست دارید که در تیم های کوچک کار کنید و یا در استارتاپ ها کار کنید.

در جدول زیر این سه حوزه برنامه نویسی را با هم مقایسه کرده ایم.

ویژگی

فرانت‌اند (Frontend)

بک‌اند (Backend)

فول‌استک (Full-stack)

تمرکز اصلی

تجربه کاربری (UX/UI)

منطق سرور، داده، امنیت

همه‌جانبه (End-to-End)

بازخورد کار

فوری و بصری

انتزاعی و منطقی

متغیر (بستگی به تسک)

بازار کار

تقاضای بسیار بالا

تقاضای بسیار بالا (کمی تخصصی‌تر)

تقاضای بالا (مخصوصاً در استارتاپ‌ها)

متوسط درآمد

خوب

عالی (اغلب کمی بالاتر از فرانت)

عالی (اغلب بالاترین پتانسیل)

مسیر یادگیری

شروع نسبتاً ساده‌تر، اما رقابت زیاد

چالش‌برانگیزتر در شروع (مفاهیم انتزاعی)

طولانی‌ترین مسیر یادگیری

جمع‌بندی

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