برنامهنویسی بک اند و فرانت اند چه هستند و چه تفاوتی دارند ؟
اگر به دنبال یادگیری برنامهنویسی بوده باشید حتما با عبارتهای فرانت اند( Front-end ) و بک اند ( Back-end ) مواجه شدهاید. در این نوشته به شرح این دو عبارت میپردازیم و با مثالهایی کاربرد و تفاوتهای آنها را بررسی میکنیم.

فرانت اند چیست ؟
در برنامهنویسی، به ویژه برنامهنویسی وب بخشیهایی که کاربر با آن در تماس مستقیم قرار داد، برنامهنویسی فرانت اند نامیده میشود. به طور خاص، برنامهنویسی جاوااسکریپت، HTML و CSS بخشهای اصلی فرانت اند را تشکیل میدهند.
وظایف بخش فرانت اند
وظایف کلی بخش فرانت اند، دریافت اطلاعات از کاربر و ارسال آن به بخشهای درونی سیستم است. همچنین وظیفه دارد تا اطلاعات و نتایج محاسبات را از بک اند دریافت کند و به شکل مناسب در معرض دید کاربر قرار دهد.
بک اند چیست ؟
بخشهایی از سیستم نرمافزاری که کاربر به طور غیرمستقیم با آن در ارتباط است، بک اند نامیده میشود. ارتباط کاربر با این بخشهای نرمافزار از طریق فرانت اند انجام میشود.
وظایف بخش بک اند
بک اند به طور غیرمستقیم، اطلاعاتی که کاربر درخواست کرده را دریافت میکند، پردازش میکند، ذخیرهسازی میکند و پس از به دست آمدن نتیجه، آن را برای فرانت اند ارسال میکند تا پس از تغییر شکل و بهبود ظاهر، به کاربر نمایش داده شود.
زبانهای سمت بک اند
زبانهای بک اند در کار طراحی سایت، بر خلاف محدودیت در سمت فرانت اند، بسیار متنوع هستند. ولی به طور معمول چند زبان زیر بیشتر از بقیه زبانها برای برنامهنویسی بک اند سایتها استفاده میشوند.
- php
- ASP.NET - زبانهای فریم ورک دات نت
- Python
- Ruby
- Java
- Rust
مثال اول - استودیو خبر
تصور کنید که اخبار تلویزیونی را مشاهده میکنید. مجری خبر، که در مقابل دوربین قرار دارد و با مخاطبان ارتباط برقرار میکند، نقش فرانتاند را ایفا میکند. مجری، اطلاعات را به شکلی جذاب و قابل درک برای مخاطب ارائه میدهد.
اما پشت صحنه، گروهی از خبرنگاران، تحریریه و تحلیلگران مشغول کار هستند که میتوانند به عنوان بکاند در نظر گرفته شوند. این افراد اطلاعات خام را جمعآوری، تحلیل و آمادهسازی میکنند تا در نهایت به مجری منتقل شود. بدون این فرآیند پشت صحنه، اطلاعات خام برای مخاطب قابل استفاده نخواهد بود.
مثال دوم - سیستم تولید و فروش
حال، فرض کنید محصولی را از یک فروشگاه خریداری میکنید. شما به عنوان مشتری، تنها با فروشنده (که نقش فرانتاند را دارد) تعامل میکنید. فروشنده، محصول را به شکلی آماده و جذاب در اختیار شما قرار میدهد و نیازهای شما را مدیریت میکند.
اما پشت این فرآیند، کارخانهای وجود دارد که محصول را طراحی، تولید و بستهبندی کرده است. این بخش، بکاند نامیده میشود. مشتری نیازی به دانستن جزئیات تولید ندارد و تنها انتظار دارد محصولی باکیفیت دریافت کند.
اگر محصول مشکلی داشته باشد، مشتری به فروشنده مراجعه میکند. فروشنده (فرانتاند) نیاز مشتری را به کارخانه (بکاند) ارجاع میدهد و پس از رفع مشکل، مجدداً با مشتری تماس میگیرد.
چرا فرانتاند و بکاند از هم جدا شدهاند؟
در تمامی فعالیتهایی که دامنه گستردهای دارند، تقسیم کار به بخشهای تخصصی میتواند کیفیت و کارایی را افزایش دهد. جدا کردن فرانتاند و بکاند از یکدیگر، مزایای متعددی دارد:
- استقلال بخشها
تغییر در ظاهر (فرانتاند) نیازی به دخل و تصرف در منطق کاری (بکاند) ندارد. این موضوع باعث میشود تغییرات ظاهری به سرعت و بدون اختلال در عملکرد سیستم انجام شود. - تخصصمحوری
هر بخش نیازمند مهارتها و دانشهای متفاوتی است. جدا کردن این دو بخش، امکان تمرکز بیشتر بر روی هر یک را فراهم میکند. - مدیریت و توسعه آسانتر
در پروژههای بزرگ، تیمهای مختلف میتوانند به طور همزمان بر روی فرانتاند و بکاند کار کنند و این موضوع سرعت توسعه را افزایش میدهد.
توسعه فولاستک (Full-stack Development)
اگر علاقهمند به یادگیری هر دو بخش باشید، میتوانید به یک توسعهدهنده فولاستک تبدیل شوید. توسعهدهندگان فولاستک، مهارتهای لازم برای کار در هر دو بخش فرانتاند و بکاند را دارند. این تخصص به آنها اجازه میدهد تا در پروژههای کوچک و متوسط، به تنهایی یا در تیمهای کوچک، نقش مؤثری ایفا کنند.
البته، تسلط بر هر دو بخش نیازمند زمان و تلاش بیشتری است. در پروژههای بزرگ، معمولاً کارها بین تیمهای تخصصی تقسیم میشود و حتی ممکن است تیمهای فرانتاند و بکاند به طور کاملاً مجزا فعالیت کنند.