فرانت اند و بک اند

از ویکی‌پدیا، دانشنامهٔ آزاد

در مهندسی نرم‌افزار، اصطلاحات front-end وback-end به تفکیک توجه‌ها بین لایه نمایش (قسمتی که نتیجه در آن نمایش داده می‌شود) و لایه دسترسی به داده (قسمت کار بر روی داده‌ها) در یک قطعه نرم‌افزار یا زیرساخت‌های فیزیکی یا سخت‌افزار اشاره دارد. در مدل client-server (مثل سایت‌ها که با سرور در ارتباط اند)، client یا سرویس گیرنده معمولاً به عنوان front end در نظر گرفته می‌شود و معمولاً سرور به عنوان back end در نظر گرفته می‌شود، حتی زمانی که برخی از کارهای ارائه شده (در لایه نمایش یا همان front end)در واقع بر روی سرور انجام می‌شود.

معرفی[ویرایش]

در معماری نرم‌افزار، ممکن است لایه‌های زیادی بین سخت‌افزار و کاربر نهایی وجود داشته باشد؛ که دربارهٔ داشتن یا نداشتن front end و back end برای هر لایه بحث کرد. front-end یک انتزاع (abstract) است، که لایه‌های زیرین (که تقریباً توسط کاربر غیرقابل فهم است) را ساده‌سازی می‌کند تا لایه نمایشی ای(front end)بسازد که کاربر بتواند به راحتی از آن استفاده کند، در حالی که back end معمولاً پردازش و ذخیره‌سازی داده‌ها را انجام می‌دهد.

در ارتباط‌های مخابراتی، front-endمی‌تواند یک دستگاه یا سرویس باشد، در حالی که پشت (back end)این زیرساخت است که از ارائه خدمات پشتیبانی می‌کند.

یک قاعده کلی این است که سمت سرویس گیرنده (یا "front-end") هر جزء است که کاربر آن را دستکاری می‌کند. کد سمت سرور (یا "back end") معمولاً روی سرور قرار می‌گیرد، که اغلب از طرف کاربر به صورت فیزیکی قابل دسترسی نیست.

تعاریف نرم‌افزاری[ویرایش]

  • در سیستم‌های مدیریت محتوا، اصطلاح‌ها front end وback end ممکن است به ترتیب به آنچه که کاربر نهایی از CMS می‌بیند و آنچه admin می‌بیند مربوط شود.[۱]
  • در TTS، قسمت جلویی (front end)اشاره به بخشی از سیستم سنتز است که متن ورودی را به نمایش نمادین آوایی تبدیل می‌کند، و بخش عقب(back end) نماد نمادین آوایی را به صداهای واقعی تبدیل می‌کند.[۲]
  • برای زیرسیستم‌های اصلی کامپیوتر یک نرم‌افزار مدیریت فایل که گرافیکی است یک front end برای سیستم فایل(file system) رایانه است و یکshellبا سیستم عامل پیاده‌سازی می‌شود. کاربر با front end رو به رو می‌شود وback [ نیازمند منبع ]end برنامه‌های سیستم عامل را در پاسخ می‌دهد و لانچ می‌کند. [نیازمند منبع] [ نیازمند منبع ]
  • در کامپایلرها front-end کد برنامه‌نویسی کامپیوتر را به یک نمایش واسطه تبدیل می‌کند و back end با نمایش واسطه ایجاد شده برای تولید کد به زبان خروجی کامپیوتر کار می‌کند. back end معمولاً برای تولید کد ای که سریعتر اجرا می‌شود، بهینه‌سازی می‌کند. تمایز جلویی / عقب پایان می‌تواند بخش تجزیه کننده را که مربوط به کد منبع و انتهای عقب است که کد را تولید می کند و بهینه‌سازی می کند، جدا می‌کند. بعضی از کامپایلرها، مانند GCC، اجازه انتخاب بین چند front end (تجزیه کد زبان‌های مختلف) یا back end را می‌دهند (تولید کد برای پردازنده‌های مختلف).[۳]
  • استفاده از رابط خط فرمان (CLI) نیاز به دستیابی به اصطلاحات خاص و حفظ دستورها دارد، بنابراین یک رابط کاربری گرافیکی (GUI) همانند دسکتاپ به عنوان front end عمل می کند.

به عنوان مثال توسعه وب[ویرایش]

راه دیگری برای درک تفاوت بین این دو دانستن آگاهی یا دانش مورد نیاز یک برنامه‌نویس front end و back end است. لیست زیر به عنوان مثال در توسعه وب تمرکز دارد.

هر دو[ویرایش]

front end متمرکز است بر[ویرایش]

back end متمرکز است بر[ویرایش]

توجه داشته باشید که هر دو موقعیت(front end و back end)، با وجود احتمالاً کار بر روی یک محصول، مجموعه ای از مهارت‌های بسیار متمایز را دارند.

تعاریف سخت‌افزاری[ویرایش]

در محاسبات شبکه، front end می‌تواند به هر سخت‌افزاری که ترافیک شبکه را بهینه‌سازی یا محافظت می‌کند اشاره کند.[۴] این نرم‌افزار به عنوان سخت افزار front end نامیده می‌شود ، زیرا در قسمت جلو یا مرز خارجی به سمت شبکه قرار می‌گیرد. ترافیک شبکه از طریق سخت‌افزار front end قبل از ورود به شبکه عبور می‌کند.

در طراحی پردازنده، طراحی front end، توصیف اولیه رفتار یک مدار در یک زبان توصیف سخت‌افزاری مانند Verilog خواهد بود، در حالی که طراحی back end، به روند پردازش این رفتار را به ترانزیستورهای فیزیکی روی یک die گفته می‌شود.[۵]

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. Thapliyal, Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. Archived from the original on 30 December 2016. Retrieved 2016-12-30.
  2. Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (back end)" (PDF). tamu.edu. Texas A&M University. Retrieved 2016-12-29.
  3. Bin Muhammad, Rashid. "Operating Systems Notes". www.personal.kent.edu. Kent State University. Retrieved 2016-12-30.
  4. O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org. Retrieved 2016-12-30.
  5. "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. Retrieved 2016-12-30.