Front and back ends

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In software engineering, the terms front end and back end refers to the separation of concerns between the presentation layer (front end), and the data access layer (back end) of a piece of software, or the physical infrastructure or hardware

Introduction[edit]

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

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

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

Software definitions[edit]

Web development as an example[edit]

Another way to understand the difference between the two is to understand the knowledge required of a front end vs a back end software developer. The list below focuses on Web development as an example.[4][5]

Both[edit]

Front-end focused[edit]

Back-end focused[edit]

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

Hardware definitions[edit]

In network computing, front end 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 front end or boundary. Network traffic passes through the front-end hardware before entering the network.

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

See also[edit]

References[edit]

  1. ^ a b Thapliyal, Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. 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. ^ "Front-End Web Developer Job Description Template". www.toptal.com. Retrieved 2016-12-30. 
  5. ^ "Back-End Web Developer Job Description Template". www.toptal.com. Retrieved 2016-12-30. 
  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.