پرش به محتوا

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

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

دو اصطلاحفرانتاندوبکاند[۱](بهانگلیسی:frontend and backend) درمهندسی نرمافزاربهجداسازی نگرانیبینلایه نمایش(سر جلو) ولایه دسترسی داده(سر عقب) برای یک قطعهنرمافزاری، یا زیرساخت فیزیکی یاسختافزاراشاره دارد. درمدل کارساز-کارخواه،کارخواهرا معمولا فرانتاند درنظر میگیرند وکارسازرا بکاند در نظر میگیرند، حتی اگر قسمتی از کار نمایشی واقعاً در کارساز انجام شود.

معرفی

[ویرایش]

درمعماری نرمافزار، ممکن است چندینلایهبین سختافزار وکاربر نهاییوجود داشته باشد. «جلو» یک انتزاع است که مولفه زیرین را با ارائه یک واسطکاربر-پسندسادهسازی میکند؛ درحالیکه «عقب» معمولاً ذخیرهسازی داده ومنطق تجاریرا در دست دارد.

درمخابرات؛ «جلو» را میتوان یک دستگاه یا سرویس در نظر گرفت، درحالیکه «عقب» همان زیرساختی است که تدارک سرویس را پشتیبانی میکند.

یکقاعده سرانگشتیآن است که جهت-کارخواه (یا «فرانتاند») هر مولفهای است که توسط کاربر دستکاری میشود. کد جهت-کارساز (یا « بکاند») معمولاً در سمتکارسازقرار دارد، معمولاً از کاربر دور است.

تعاریف نرمافزاری

[ویرایش]

درسامانه مدیریت محتوا، دو اصطلاحفرانتاندوبکاندممکن است به دیدگاه کاربر نهایی از CMS و دیدگاه مدیریتی به ترتیب اشاره کند.[۲][۳]

درسامانه تبدیل متن به گفتار، فرانتاند به بخشی از سامانه اشاره دارد که متن ورودی را به نمایشآوایینمادینتبدیل میکند، و بکاند نمایش آوایی نمادین را به صدای واقعی تبدیل میکند.[۴]

درکامپایلرها،فرانتاندکد منبعیک زبان برنامهنویسی را به یکنمایش میانیترجمه میکند؛ و بکاند با نمایش میانی کار میکند تا کدی به زبان رایانه ایجاد کند. بکاند معمولاً برای ایجاد کدی که سریعتر هست، یک عملبهینهسازیانجام میدهد. تمایز فرانتاند/بکاند میتواند بخشی ازتجزیهگررا که با کد منبع سروکار دارد و بکاند کهکد را تولید میکند و بهینهسازی میکندرا جدا کند. بعضی از طراحیها، مثلGCC، گزینههایی بین چندین فرانتاند (تجزیهکردنزبانهایمنبع مختلف) یا بکاند (تولید کد برایپردازندههایهدف مختلف) پیشنهاد میدهند.[۵]

بعضی از برنامههایواسطهای کاربری گرافیکی(GUI) که درمحیط رومیزیاجرا میشوند به صورت یک فرانتاند نازک برای برنامههایواسط خط فرمان(CLI) پیادهسازی میشوند، این باعث میشود دیگر نیاز نباشد که کاربر اصطلاحات بهخصوص یافرمانهایخاص را یاد بگیرد و به خاطر بسپارد.

مثال توسعه وب

[ویرایش]

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

فرانتاند با بکاند از طریف یکAPIارتباط برقرار میکند. در حالت فرانتاندوبو موبایل، API معمولاً براساس درخواست/پاسخHTTPاست. گاهی API از طریق الگوی «بکاند برای فرانتاند» (BFF) طراحی میشود، که پاسخها را برای پردازش سادهتر در سمت فرانتاند در خدمت میگیرد.[۶]

تعاریف سختافزاری

[ویرایش]

دررایانش شبکهای، «فرانتاند» به هرسختافزاریکهترافیک شبکهرا بهینهسازی یا محافظت میکند، اشاره دارد.[۷]به اینسختافزار فرانتاند کاربردیگفته میشود زیرا درفرانتاند یا مرز بیرونی شبکهقرار دارد. ترافیک شبکه، قبل از ورود به شبکه، از سختافزار فرانتاندی عبور میکند.

درطراحی پردازنده، «طراحی فرانتاند» به توصیف اولیه رفتار یک مدار در یکزبان توصیف سختافزارمثلوریلاگاشاره دارد، درحالیکه «طراحی بکاند» همان فرایند نگاشت رفتار به ترانزیستورهای فیزیکی روی یکدایاست.

منابع

[ویرایش]

مشارکتکنندگان ویکیپدیا. «Frontend and backend». دردانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۸ ژوئن ۲۰۲۳.

پانویس

[ویرایش]
  1. «فرانت اند، بک اند یا هر دو؟».ماهنامه شبکه(۲۱۰):۸۸.۱۳۹۷.دریافتشده در۸ ژوئن ۲۰۲۳.
  2. "Front End vs Back End of Your Website: Everything You Need to Know".DOJO Creative.7 February 2020.Retrieved31 August2022.
  3. Thapliyal, Vimal."Difference Between Frontend and Backend MVC – Joomlatuts".joomlatuts.net.Archived fromthe originalon 30 December 2016.Retrieved30 December2016.
  4. Gutierrez--Osuna, Ricardo."L18: Speech synthesis (backend)"(PDF).tamu.edu.Texas A&M University. Archived fromthe original(PDF)on 14 February 2019.Retrieved29 December2016.
  5. Bin Muhammad, Rashid."Operating Systems Notes".personal.kent.edu.Kent State University.Retrieved30 December2016.
  6. Wickramarachchi, Viduni (24 February 2021)."The BFF Pattern (Backend for Frontend): An Introduction".Bits and pieces.Retrieved13 November2021.
  7. O'Dell, Mike."Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM".cacm.acm.org.Retrieved2016-12-30.