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

برنامه نویسی

رندر سایت 

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

رندر طرف سرور –  برنامه نویسی بک اند 

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

 زمانی که سایت در حال رندر طرف سرور است، تمام پردازش های دخیل در تولید صفحه HTML توسط سرور از راه دور انجام می‌شود. این کار شامل کوئری پایگاه داده برای اطلاعات و پردازش لاجیک است.

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

بک اند

 رندر طرف کاربر- برنامه نویسی فرانت‌اند

 در دنیای مدرن نوع جدیدی از رندر سایت به نام رندر طرف کاربر و یا توسعه فرانت اند پدیدار شد. 

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

 رندر طرف کاربر با ظهور کتابخانه جاوا اسکریپت، Angular, REACT و VUE به شهرت رسید.

فرانت اند

رندر ایزو مورفیک

رندر ایزومورفیک یا رندر جهانی یک فناوری جدید در برنامه نویسی مدرن است. ایده پشت رندر ایزومورفیک رندر اپلیکیشن‌های اینترنتی در قالب های جاوا اسکریپت مانند Angular, REACT و یا VIEW در طرف سرور و برای حالتی است که صفحه برای اولین بار لود‌ شود و بعد از آن در طرف کاربر لود شود.

 علاوه بر روش های رندرگیری ذکر شده، انواع دیگری از رندر به نام رندر از قبل وجود دارد که رندر گیری را در زمان  Compile  انجام می‌دهد. 

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

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

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

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

با وجود انواع مختلف فناوری، توسعه دهندگان فرانت اند از زبان های جاوا اسکریپت HTML و CSS و همین طور قالب های طرف کاربر مانند Angular, React, Stencil و Vue استفاده می‌کنند. 

 ‌در این خصوص، اتفاقی در طرف فرانت‌اند نمی‌افتد. اپلیکیشنی که در طرف کاربر رندر شده است باز هم به خدمات و API طرف سرورهای ریموت بک‌اند و یا Cloud وابسته هستند.

فرانت اند

مشاغل برنامه نویسی فرانت اند چیست؟

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

 

  • طراح رابط کاربر: طراح رابطه کاربر در حقیقت طراح جلوه های بصری است که عموماً بر روی طراحی متمرکز است. آن‌ها در امر اجرای طراحی دخالت نمی‌کنند، اما ممکن است با اطلاعاتی که در زمینه برنامه نویسی HTML و CSS دارند بتوانند به طور موثر ایده‌های خود را با توسعه دهندگان فرانت اند در میان بگذارند. 

 

  • طراح تجربه کاربر: طراح تجربه کاربر در زمینه برنامه نویسی فرانت اند فعالیت می‌کند و به مطالعه و تحقیق در مورد نحوه استفاده مردم از سایت ها می‌پردازد. آن‌ها سپس از طریق آزمون و خطا تغییرات زیادی اعمال می‌کنند.

 

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

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

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

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

 توسعه‌دهندگان بک اند نه تنها به تولید اپلیکیشن هایی که بتواند در طرف سرور رندرگیری شود می‌پردازند، بلکه آن‌ها از برنامه‌نویسی فرانت‌اند مانند جاوا اسکریپت CSS و  HTML استفاده می‌کنند. 

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

 برنامه های دیگری مانند NET, MEAN, LAMP وجود دارد که هر کدام شامل زبان برنامه نویسی خاص خود مانند C#, JavaScript, Java, Go, Python و PHP هستند. 

برنامه نویسی بک اند

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

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

خلاصه

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

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

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

اگر قصد دارید وقت خود را بر روی حل مشکلات کسب و کار، نوشتن الگوریتم، کار با کلود و ایجاد خدمات و آی پی آی کنید، آنگاه به سراغ برنامه نویسی بک اند بروید.

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

 هر مسیری را که انتخاب کنید، هیچ زمانی بهتر از اکنون برای تبدیل شدن به توسعه دهنده نرم افزار وجود ندارد.

 

منبع: ?FRONTEND VS. BACKEND: WHAT’S THE DIFFERENCE