Content deleted Content added
→top: Fixed grammar Tags: Reverted canned edit summary Mobile edit Mobile app edit Android app edit |
m Annh07 moved page Front end and back end (software development) to Front end and back end without leaving a redirect: Requested by DigitalIceAge at WP:RM/TR: Unnecessary disambiguation. |
||
(48 intermediate revisions by 33 users not shown) | |||
Line 1:
{{
In [[software
== Introduction ==
In [[software architecture]], there
== Examples ==
In [[telecommunication]], the ''front'' can be considered a device or service, while the ''back'' is the infrastructure that supports provision of service.▼
'''E-commerce Website''': The front end is the user interface (e.g., product pages, search bar), while the back end processes payments and updates inventory.
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 (computing)|server]], often far removed physically from the user.▼
'''Banking App''': The front end displays account balances, while the back end handles secure transactions and updates records.
'''Social Media Platform''': The front end shows the news feed, while the back end stores posts and manages notifications.
▲In [[telecommunication]], the
▲A [[rule of thumb]] is that the
== Software definitions ==
{{prose|section|date=September 2020}}
* In [[speech synthesis]], the frontend refers to the part of the synthesis system that converts the input text into a [[symbol]]ic [[phonetics|phonetic]] representation, and the backend converts the symbolic phonetic representation into actual sounds.<ref>{{Cite web|url=http://research.cs.tamu.edu/prism/lectures/sp/l18.pdf|title=L18: Speech synthesis (backend)|last=Gutierrez--Osuna|first=Ricardo|website=tamu.edu|publisher=Texas A&M University|access-date=2016-12-29}}</ref>▼
* In [[compilers]], the [[Compilers#Frontend|frontend]] [[Translator (computing)|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 [[Program optimization|optimizes]] to produce code that runs faster. The front-end/back-end distinction can separate the [[Parsing|parser]] section that deals with source code and the backend that [[Code generation (compiler)|generates code and optimizes]]. Some designs, such as [[GNU Compiler Collection|GCC]], offer choices between multiple frontends (parsing different source [[Programming language|languages]]) or backends (generating code for different target [[Central processing unit|processors]]).<ref>{{Cite web|url=http://www.personal.kent.edu/~rmuhamma/Compilers/MyCompiler/phase.htm|title=Operating Systems Notes|last=Bin Muhammad|first=Rashid|website=www.personal.kent.edu|publisher=Kent State University|access-date=2016-12-30}}</ref>▼
▲
=== 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 [[Git]], [[Mercurial]], or [[Apache Subversion|Subversion]]▼
* [[File transfer]] tools and protocols such as [[FTP]] or [[rsync]]▼
Some [[graphical user interface]] (GUI) applications act as a thin front end for underlying [[command-line interface]] (CLI) programs, to save users from having to learn the CLI terminology and [[Command (computing)|commands]].
==== Front-end focused ====▼
* Markup and web languages such as [[HTML]], [[CSS]], [[JavaScript]], and ancillary libraries commonly used in those languages such as [[Sass (stylesheet language)|Sass]] or [[jQuery]]▼
▲=== Web development as an example ===
▲Another way to understand the
▲* Markup and web languages such as [[HTML]], [[CSS]], and [[JavaScript]],
* [[Asynchronous I/O|Asynchronous]] request handling and [[Ajax (programming)|AJAX]]
* [[Single-page application]]s
* [[Web performance]] (optimization of things like largest contentful paint, time to interactive,
* [[Responsive web design]]
* [[Cross-browser]] compatibility issues and workarounds
* [[Software testing|End-to-end testing]] with a [[headless browser]]
* [[Build automation]] to transform and bundle JavaScript files, reduce
* [[Search engine optimization]]
* [[Web accessibility|Accessibility]] concerns
*
* [[User
==== Back
* [[Scripting language]]s like [[PHP]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Perl]], and [[Node.js]]
* [[Compiled language]]s like [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], * [[Data access layer]]
* [[
* [[Database administrator|Database administration]]
* [[Scalability]]
* [[High availability]]
* Security concerns, such as [[authentication]] and [[authorization]]
* [[Software
* [[Data transformation]]
* [[Backup]] methods and software
=== API ===
The
== Hardware definitions ==
In [[computer network|computer networking]], ''front end'' can refer to [[Networking hardware|hardware]] that connects devices to the network, provides security such as a [[DMZ (computing)|DMZ]], or converts data into a [[Network Packet|transportable format]]. ''Back end'' refers to hardware that handles and transports data within the network.
In [[processor design]], ''
== See also ==
{{Columns-list|colwidth=30em|
* [[Client-side]], [[Server-side]]
* [[Front-end web development]]
* [[Client–server model]]
Line 77 ⟶ 87:
== References ==
{{Reflist|30em}}
{{Web interfaces}}
{{DEFAULTSORT:Front And Back Ends}}
|