fbpx
Wikipedia

Frontend and backend

In software engineering, the terms frontend and backend (sometimes written as back end or back-end) refer to the separation of concerns between the presentation layer (frontend), and the data access layer (backend) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the frontend and the server is usually considered the backend, even when some presentation work is actually done on the server itself.

Introduction edit

In software architecture, there may be many layers between the hardware and end user. The front is an abstraction, simplifying the underlying component by providing a user-friendly interface, while the back usually handles data storage and business logic.

In telecommunication, the front can be considered a device or service, while the back is the infrastructure that supports provision of service.

A rule of thumb is that the client-side (or "frontend") is any component manipulated by the user. The server-side (or "backend") code usually resides on the server, often far removed physically from the user.

Software definitions edit

In content management systems, the terms frontend and backend may refer to the end-user facing views of the CMS and the administrative views, respectively.[1][2]

In speech synthesis, the frontend refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation, and the backend converts the symbolic phonetic representation into actual sounds.[3]

In compilers, the frontend translates a computer programming source code into an intermediate representation, and the backend works with the intermediate representation to produce code in a computer output language. The backend usually optimizes to produce code that runs faster. The frontend/backend distinction can separate the parser section that deals with source code and the backend that generates code and optimizes. Some designs, such as GCC, offer choices between multiple frontends (parsing different source languages) or backends (generating code for different target processors).[4]

Some graphical user interface (GUI) applications running in a desktop environment are implemented as a thin frontend for underlying command-line interface (CLI) programs, to save the user from learning the special terminology and memorizing the commands.

Web development as an example edit

Another way to understand the difference between the two is to understand the knowledge required of a frontend vs. a backend software developer. The list below focuses on web development as an example.

Both edit

Frontend focused edit

Backend focused edit

Note that both positions, despite possibly working on one product, have a very distinct set of skills.

API edit

The frontend communicates with backend through an API. In the case of web and mobile frontends, the API is often based on HTTP request/response. The API is sometimes designed using the "Backend for Frontend" (BFF) pattern, that serves responses to ease the processing on frontend side.[5]

Hardware definitions edit

In network computing, frontend can refer to any hardware that optimizes or protects network traffic.[6] It is called application front-end hardware because it is placed on the network's outward-facing frontend or boundary. Network traffic passes through the front-end hardware before entering the network.

In processor design, frontend design would be the initial description of the behavior of a circuit in a hardware description language such as Verilog, while backend design would be the process of mapping that behavior to physical transistors on a die.[7]

See also edit

References edit

  1. ^ "Front End vs Back End of Your Website: Everything You Need to Know". DOJO Creative. 7 February 2020. Retrieved 31 August 2022.
  2. ^ Thapliyal, Vimal. . joomlatuts.net. Archived from the original on 30 December 2016. Retrieved 30 December 2016.
  3. ^ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (backend)" (PDF). tamu.edu. Texas A&M University. Retrieved 29 December 2016.
  4. ^ Bin Muhammad, Rashid. "Operating Systems Notes". www.personal.kent.edu. Kent State University. Retrieved 30 December 2016.
  5. ^ Wickramarachchi, Viduni (24 February 2021). "The BFF Pattern (Backend for Frontend): An Introduction". Bits and pieces. Retrieved 13 November 2021.
  6. ^ O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org. Retrieved 2016-12-30.
  7. ^ "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. Retrieved 2016-12-30.

frontend, backend, software, engineering, terms, frontend, backend, sometimes, written, back, back, refer, separation, concerns, between, presentation, layer, frontend, data, access, layer, backend, piece, software, physical, infrastructure, hardware, client, . In software engineering the terms frontend and backend sometimes written as back end or back end refer to the separation of concerns between the presentation layer frontend and the data access layer backend of a piece of software or the physical infrastructure or hardware In the client server model the client is usually considered the frontend and the server is usually considered the backend even when some presentation work is actually done on the server itself Contents 1 Introduction 2 Software definitions 2 1 Web development as an example 2 1 1 Both 2 1 2 Frontend focused 2 1 3 Backend focused 2 2 API 3 Hardware definitions 4 See also 5 ReferencesIntroduction editIn software architecture there may be many layers between the hardware and end user The front is an abstraction simplifying the underlying component by providing a user friendly interface while the back usually handles data storage and business logic In telecommunication the front can be considered a device or service while the back is the infrastructure that supports provision of service A rule of thumb is that the client side or frontend is any component manipulated by the user The server side or backend code usually resides on the server often far removed physically from the user Software definitions editThis section is in list format but may read better as prose You can help by converting this section if appropriate Editing help is available September 2020 In content management systems the terms frontend and backend may refer to the end user facing views of the CMS and the administrative views respectively 1 2 In speech synthesis the frontend refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation and the backend converts the symbolic phonetic representation into actual sounds 3 In compilers the frontend translates a computer programming source code into an intermediate representation and the backend works with the intermediate representation to produce code in a computer output language The backend usually optimizes to produce code that runs faster The frontend backend distinction can separate the parser section that deals with source code and the backend that generates code and optimizes Some designs such as GCC offer choices between multiple frontends parsing different source languages or backends generating code for different target processors 4 Some graphical user interface GUI applications running in a desktop environment are implemented as a thin frontend for underlying command line interface CLI programs to save the user from learning the special terminology and memorizing the commands Web development as an example edit Another way to understand the difference between the two is to understand the knowledge required of a frontend vs a backend software developer The list below focuses on web development as an example Both edit Version control tools such as Git Mercurial or Subversion File transfer tools and protocols such as FTP or rsyncFrontend focused edit Markup and web languages such as HTML CSS JavaScript and ancillary libraries commonly used in those languages such as Sass or jQuery Asynchronous request handling and AJAX Single page applications with frameworks like React Angular or Vue js Web performance largest contentful paint time to interactive 60 FPS animations and interactions memory usage etc Responsive web design Cross browser compatibility issues and workarounds End to end testing with a headless browser Build automation to transform and bundle JavaScript files reduce image sizes and other processes using tools such as Webpack and Gulp js Search engine optimization Accessibility concerns Basic usage of image editing tools such as GIMP or Photoshop User InterfaceBackend focused edit Scripting languages like PHP Python Ruby Perl Node js or Compiled languages like C Java or Go Automated testing frameworks for the language being used Application Data Access Application Business Logic Database administration Scalability High availability Security concerns authentication and authorization Software Architecture Data transformation Backup methods and softwareNote that both positions despite possibly working on one product have a very distinct set of skills API edit The frontend communicates with backend through an API In the case of web and mobile frontends the API is often based on HTTP request response The API is sometimes designed using the Backend for Frontend BFF pattern that serves responses to ease the processing on frontend side 5 Hardware definitions editIn network computing frontend can refer to any hardware that optimizes or protects network traffic 6 It is called application front end hardware because it is placed on the network s outward facing frontend or boundary Network traffic passes through the front end hardware before entering the network In processor design frontend design would be the initial description of the behavior of a circuit in a hardware description language such as Verilog while backend design would be the process of mapping that behavior to physical transistors on a die 7 See also editClient side Server side Front end web development Client server model Out of box experience Modular programming Observer pattern Publish subscribe pattern Pull technology Push technology Remote procedure call Application program interface API References edit Front End vs Back End of Your Website Everything You Need to Know DOJO Creative 7 February 2020 Retrieved 31 August 2022 Thapliyal Vimal Difference Between Frontend and Backend MVC Joomlatuts joomlatuts net Archived from the original on 30 December 2016 Retrieved 30 December 2016 Gutierrez Osuna Ricardo L18 Speech synthesis backend PDF tamu edu Texas A amp M University Retrieved 29 December 2016 Bin Muhammad Rashid Operating Systems Notes www personal kent edu Kent State University Retrieved 30 December 2016 Wickramarachchi Viduni 24 February 2021 The BFF Pattern Backend for Frontend An Introduction Bits and pieces Retrieved 13 November 2021 O Dell Mike Network Front End Processors Yet Again June 2009 Communications of the ACM cacm acm org Retrieved 2016 12 30 Front End Design Online Documentation for Altium Products techdocs altium com Retrieved 2016 12 30 Retrieved from https en wikipedia org w index php title Frontend and backend amp oldid 1175879825, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.