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

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

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

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

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

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

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

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

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

راه دیگری برای درک تفاوت بین این دو دانستن آگاهی یا دانش مورد نیاز یک برنامه‌نویس فرانت-اِند و بَک-اِند است. لیست زیر به عنوان مثال در توسعه وب تمرکز دارد.

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

فرانت-اِند متمرکز است بر[ویرایش]

بَک-اِند متمرکز است بر[ویرایش]

توجه داشته باشید که هر دو موقعیت (فرانت-اِند و بَک-اِند)، با وجود احتمالاً کار بر روی یک محصول، مجموعه‌ای از مهارت‌های بسیار متمایز را دارند.

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

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

در طراحی پردازنده، طراحی فرانت-اِند، توصیف اولیه رفتار یک مدار در یک زبان توصیف سخت‌افزاری مانند وری‌لاگ (به انگلیسی: Verilog) خواهد بود، در حالی که طراحی بَک-اِند، به روند پردازش این رفتار را به ترانزیستورهای فیزیکی روی یک دای گفته می‌شود.[۵]

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

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

  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. Archived from the original (PDF) on 14 February 2019. 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.