مقدمه:
فرانت اند و بک اند دو مورد از پرکاربردترین اصطلاحات در صنعت کامپیوتر هستند. به نوعی تبدیل به واژه های رایج شدند. آنها نوع کار شما را به عنوان یک توسعه دهنده نرم افزار، فناوری هایی که استفاده می کنید و میزان دستمزد شما را دیکته می کنند.
بیایید در مورد تفاوت های بین این دو اصطلاح، چرایی وجود آنها در وهله اول و مسیرهای مختلفی که می توانید در حرفه توسعه نرم افزار خود طی کنید، صحبت کنیم. اگر شما جز مبتدیانی هستید که به دنبال حرفه توسعه وب هستند، توصیه میکنیم با ما همراه باشید.
رندر سایت چیست؟
برای شروع این سفر، باید مفهوم رندر سایت را درک کنیم. در اصطلاح ساده، رندر سایت به معنای تولید یا ارائه خروجی HTML است. HTML یک زبان نشانه گذاری است که توسعه دهندگان وب برای ایجاد صفحات وب از آن استفاده می کنند. گفته می شود که رندر سایت می تواند هم در سمت سرور و هم در سطح مشتری اتفاق بیفتد، پس این به چه معناست؟ شایان ذکر است که فرانت اند و client–side مترادف هستند. همین امر برای سرور نیز صادق است.
رندر سمت سرور (backend)
تا همین چند وقت پیش، رندر سمت سرور، یا توسعه وب پشتیبان، روشی واقعی برای ایجاد وب سایت ها و برنامه های کاربردی وب بود. شما از یک صفحه بازدید می کنید، درخواستی برای محتوا ارسال می کنید. سرور این درخواست را پردازش می کند و پاسخی ایجاد می کند که به مرورگر شما ارسال می شود.
هنگامی که یک سایت در سمت سرور رندر می شود، تمام فرآیندهای مربوط به ایجاد یک صفحه HTML که مرورگر وب شما می تواند آن را درک کند، روی یک سرور راه دور که میزبان وب سایت یا برنامه وب است انجام می شود. این شامل جستجو در پایگاه داده برای اطلاعات و پردازش هرگونه منطقی است که برنامه وب شما نیاز دارد.
در حالی که سرور راه دور مشغول کار است، مرورگر وب شما غیرفعال است و منتظر است تا سرور پردازش درخواست و ارسال پاسخ را به پایان برساند. هنگامی که پاسخ دریافت می شود، مرورگرهای وب آن را تفسیر می کنند و محتوا را روی صفحه نمایش می دهند.
رندر سمت مشتری (فرانت اند)
در روزهای مدرن تر، شکل جدیدی از رندر سایت به نام رندر سمت مشتری ظاهر شد.
با رندر سمت مشتری، رندر محتوا در رایانه شما به جای وب سرور راه دور با استفاده از زبان واقعی وب، جاوا اسکریپت، انجام می شود. در عمل به این معنی است که سرور فقط برای سرویس دهی به برنامه خام وب نیاز است و مرورگر وظیفه رندر کردن این برنامه را در فرم نهایی آن یعنی HTML بر عهده خواهد داشت. همچنین به این معنی است که برخی از منطق های درگیر در ایجاد صفحه وب، به ویژه کسی که مسئول نحوه ارائه آنها به کاربر بر روی صفحه نمایش است (به نام منطق ارائه) در سمت مشتری مدیریت می شود.
رندر سمت کلاینت با ظهور کتابخانه های جاوا اسکریپت مانند Angular، React و Vue رایج شد.
رندر ایزومورفیک
رندر ایزومورفیک که رندر جهانی نیز نامیده می شود، تکنیک جدیدی است که در توسعه وب مدرن استفاده می شود. ایده پشت رندر ایزومورفیک این است که یک برنامه وب توسعه یافته با چارچوب جاوا اسکریپت مانند Angular، React یا View را در سمت سرور اولین بار بارگذاری یک صفحه و سپس در سمت کلاینت ارائه دهیم.
برای پیچیده تر کردن همه چیز، شکل دیگری از رندر به نام پیش رندر وجود دارد که محتوا را در زمان کامپایل رندر می کند.
محل ارائه یک سایت تصمیمی است که اغلب بر اساس نوع برنامه و جمعیت شناسی برنامه است . از تیمی به تیم دیگر و کسب و کار دیگر متفاوت است.
توسعه فرانت اند چیست؟
اکنون که انواع مختلف روشهای رندر سایت را درک میکنیم، درک این نکته آسانتر است که توسعه فرانت اندهنر ایجاد سایتها و برنامههای کاربردی وب است که در سمت مشتری رندر میشوند.
فن آوری های مورد استفاده برای توسعه فرانت اند
در حالی که انواع مختلفی از فناوریها و پشتهها وجود دارد، اکثر توسعهدهندگان وب فرانت اند از HTML، CSS و جاوا اسکریپت، بلوکهای سازنده واقعی وب و چارچوبهای سمت مشتری مانند Angular، React، Stencil و Vue استفاده میکنند.
با این حال، همه چیز در ظاهر اتفاق نمی افتد. برنامههای رندر شده از سمت کلاینت همچنان به سرویسها و APIهایی وابسته هستند که روی سرورهای راه دور پشتیبان یا ابر اجرا میشوند.
برخی از مشاغل فرانت اند
طراح وب:
یک طراح وب، وب سایت ها را طراحی می کند. با این حال، عنوان شغلی طراح وب بسیار گسترده است. یک طراح وب فقط می تواند کسی باشد که سایت ها را در برنامه هایی مانند Photoshop یا Fireworks طراحی می کند و هرگز کد را لمس نمی کند. اما در مکانی دیگر، یک طراح وب میتواند تمام کامپوزیتهای طراحی را در فتوشاپ انجام دهد و سپس مسئولیت ایجاد تمام HTML و CSS (و گاهی اوقات حتی جاوا اسکریپت) را بر عهده بگیرد.
طراح رابط کاربری (UI):
این اساساً یک طراح بصری است و به طور کلی روی طراحی متمرکز است. آنها معمولاً در اجرای طرح دخالت ندارند، اما ممکن است HTML و CSS را بشناسند تا بتوانند ایده های خود را به طور مؤثرتری به توسعه دهندگان فرانت اند منتقل کنند.
طراحان تجربه کاربری (UX):
طراحان UX در فرانت اند کار می کنند و در مورد نحوه استفاده افراد از سایت ها مطالعه و تحقیق می کنند. سپس با آزمایش های زیاد تغییراتی را ایجاد می کنند.
توسعه دهنده فرانت اند:
توسعه دهنده فرانت اند که به آن طراح فرانت اند نیز گفته می شود، می تواند یک سایت بدون هیچ گونه توسعه بک اند ایجاد کند. سایتی که آنها بدون توسعه دهنده وب یا با استفاده از بک اند ایجاد می کنند، یک سایت ثابت است. سایت استاتیک چیزی شبیه به سایتی برای رستوران یا آرایشگاه است. این نیازی به هیچ اطلاعاتی برای ذخیره در پایگاه داده ندارد. صفحات تقریباً همیشه ثابت خواهند ماند، مگر اینکه زمان طراحی مجدد فرا رسیده باشد.
ممکن است به یک توسعهدهنده فرانتاند نیاز باشد که آزمایش را درک کند و همچنین به HTML، CSS و جاوا اسکریپت تسلط داشته باشد. این شخص ممکن است تجربه ایجاد طرح در یک برنامه طراحی را داشته باشد یا نداشته باشد. نسخه متفاوتی از این عنوان مهندس frontend است. افرادی که با زبان های فرانت اند خاص مانند برنامه نویس جاوا اسکریپت کار می کنند. نیز توسعه دهندگان فرانت اند محسوب می شوند.
توسعه بک اند چیست؟
در حالی که توسعه فرانت اندمربوط به رندر کردن سایت ها و برنامه های وب در سمت مشتری است. توسعه بک اند تماماً در مورد رندر کردن این برنامه ها در سمت سرور است. اما کمی بیشتر از این درگیر است. توسعه دهندگان بک اند نیز خدماتی را ایجاد می کنند که منطق تجاری را پردازش می کنند. و به منابع دیگری مانند پایگاه داده ها، سرورهای فایل، خدمات ابری و غیره دسترسی دارند. این خدمات ستون فقرات هر برنامه ای هستند و نه تنها توسط برنامه های رندر سمت سرور بلکه از برنامه های رندر سمت کلاینت نیز قابل دسترسی و استفاده هستند.
فن آوری های مورد استفاده برای توسعه بک اند
هنگامی که توسعه دهندگان بکاند برنامههایی را ایجاد میکنند که در سمت سرور رندر میشوند.از همان بلوکهای سازنده توسعهدهندگان فرانتاند استفاده میکنند: HTML، CSS و جاوا اسکریپت.
توسعه دهندگان بک اند همچنین با فناوری های نرم افزاری کار می کنند. که شامل سیستم عامل ها، سرورهای وب، فریمورک ها، زبان ها، API های برنامه نویسی و غیره می شود. چارچوبها، زبانها و APIهای برنامهنویسی در این فناوری ها برای ارائه سایتهای سمت سرور و برنامههای کاربردی وب و ایجاد خدماتی که سایر برنامهها میتوانند مصرف کنند، استفاده میشوند.
توسعه فول استک چیست؟
بهعنوان یک توسعهدهنده، لازم نیست فقط به فرانت اند یا باطن اکتفا کنید. شما می توانید هر دو را به عنوان یک توسعه دهنده فول استک انجام دهید. به تجربه من، اینجاست که سرگرمی شروع می شود. توسعه دهندگان فول استک می توانند سایت ها و برنامه های کاربردی وب را ایجاد کنند که هم در سمت کلاینت (فرانت اند) و هم در سمت سرور (بک اند) رندر شوند.
آنها همچنین خدمات، مؤلفهها و APIهایی ایجاد میکنند که منطق کسبوکار را در بر میگیرند. مشکلات تجاری خاص را حل میکنند. و به زیرساختهایی مانند پایگاههای داده، سرورهای فایل، خدمات ابری و غیره دسترسی دارند.
جمع بندی
در حال حاضر، تفاوت بین بک اند و فرانت اند و همچنین فعالیتهای متفاوتی که توسط توسعهدهندگانی که در هر دو فیلد کار میکنند، باید آشکارتر باشد. در عمل، frontend به معنای مرورگر و باطن، سرور یا اخیراً ابر است.
اگر رابط کاربری را دوست دارید، به طراحی صدا علاقه مند هستید و جنبه های بصری ایجاد برنامه ها را دوست دارید، شاید بیشتر علاقه مند باشید که یک توسعه دهنده نرم افزار فرانت اند شوید. فرانت اند نه تنها از نظر بصری، بلکه از نظر برنامه نویسی نیز هیجان انگیز است. شما ساعت های بی پایانی را صرف نوشتن منطق خواهید کرد که باعث می شود سایت شما به شکلی که طراحان در نظر گرفته اند به نظر برسد و رفتار کند.
اگر دوست دارید وقت خود را صرف حل مشکلات کسب و کار، نوشتن الگوریتم ها، کار در فضای ابری و ایجاد سرویس ها و API ها کنید. توسعه بک اند برای شما مناسب است.
اگر از هر دو لذت میبرید و با تمام جنبههای ایجاد برنامههای وب به یک اندازه هیجانزده و راحت هستید. پس شغلی بهعنوان یک توسعهدهنده فول استک همان چیزی است که میخواهید.
هر مسیری را که انتخاب کنید، هرگز زمان بهتری برای توسعهدهنده نرمافزار وجود نداشته است.اموزش ببینید و مهارت های خود را تقویت کنید.