请输入您要查询的百科知识:

 

词条 Front and back ends
释义

  1. Introduction

  2. Software definitions

      Web development as an example    Both    Front-end focused    Back-end focused  

  3. Hardware definitions

  4. See also

  5. References

In software engineering, the terms front end and back end refer 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. In the client–server model, the client is usually considered the front end and the server is usually considered the back end, even when some presentation work is actually done on the server itself.

Introduction

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 provision of service.

A rule of thumb is that the client-side (or "front end") 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

  • In content management systems, the terms front end and back end may refer to the end-user facing views of the CMS and the administrative views, respectively.[1]
  • In speech synthesis, the front end refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation, and the back end converts the symbolic phonetic representation into actual sounds.[2]
  • For major computer subsystems, a graphical file manager is a front end to the computer's file system, and a shell interfaces with the operating system. The front end faces the user, and the back end launches the programs of the operating system in response. {{Citation needed|date=December 2016}}
  • In compilers, the front end translates a computer programming source code into an intermediate representation, and the back end works with the intermediate representation to produce code in a computer output language. The back end usually optimizes to produce code that runs faster. The front-end/back-end distinction can separate the parser section that deals with source code and the back end that generates code and optimizes. Some designs, such as GCC, offer choices between multiple front ends (parsing different source languages) or back ends (generating code for different target processors). [3]
  • Using the command-line interface (CLI) requires the acquisition of special terminology and memorization of commands, so a graphical user interface (GUI) acts as a front end desktop environment instead.

Web development as an example

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.

Both

  • Version control tools such as GitHub, SourceForge, or Mercurial
  • File transfer tools and protocols such as FTP or rsync

Front-end focused

  • 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, AngularJS or Vue.js)
  • Web performance (first meaningful 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 images size... with tools like Webpack or Gulp.js
  • Search engine optimization
  • Accessibility concerns
  • Basic usage of image editing tools such as GIMP or Photoshop
  • Visual Interface

Back-end focused

  • Scripting languages like Node.js, PHP, Python, Ruby, or Perl 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 software

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

Hardware definitions

In network computing, front end can refer to any hardware that optimizes or protects network traffic.[4] 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.[5]

See also

{{Columns-list|colwidth=30em|
  • 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

}}

References

1. ^{{Cite web|url=http://joomlatuts.net/joomla-2-5/87-how-backend-model-view-controller-mvc-works-in-joomla/98-difference-between-frontend-and-backend-mvc|title=Difference Between Frontend and Backend MVC – Joomlatuts|last=Thapliyal|first=Vimal|website=joomlatuts.net|access-date=2016-12-30}}
2. ^{{Cite web|url=http://research.cs.tamu.edu/prism/lectures/sp/l18.pdf|title=L18: Speech synthesis (back end)|last=Gutierrez--Osuna|first=Ricardo|date=|website=tamu.edu|publisher=Texas A&M University|access-date=2016-12-29}}
3. ^{{Cite web|url=http://www.personal.kent.edu/~rmuhamma/Compilers/MyCompiler/phase.htm|title=Operating Systems Notes|last=Bin Muhammad|first=Rashid|date=|website=www.personal.kent.edu|publisher=Kent State University|access-date=2016-12-30}}
4. ^{{Cite web|url=http://cacm.acm.org/magazines/2009/6/28494-network-front-end-processors-yet-again/fulltext|title=Network Front-End Processors, Yet Again {{!}} June 2009 {{!}} Communications of the ACM|last=O'Dell|first=Mike|website=cacm.acm.org|access-date=2016-12-30}}
5. ^{{Cite web|url=http://techdocs.altium.com/display/ADOH/Front-End+Design|title=Front-End Design {{!}} Online Documentation for Altium Products|website=techdocs.altium.com|access-date=2016-12-30}}
{{DEFAULTSORT:Front And Back Ends}}Frontend

2 : Software architecture|Software engineering terminology

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/24 5:26:11