Front ja back end

Informaatikas mõistetakse terminit front-end kui (graafilist) vaadet, mida näeb lõppkasutaja ja terminit back-end kui seda, mis toimub telgitagustes (andmetabelites jm). Kliendi-serveri mudelis peetakse klienti (ehk lõppkasutajavaadet) tavaliselt front-endiks ja serverit back-end'iks, isegi kui mõningaid vaateid näidatakse kliendile serveris endas.

Tarkvaraarhitektuuris võib olla riistvara ja lõppkasutaja (kliendi) vahel mitu kihti. Front-end on kuvand (abstraktsioon), mis muudab sisimas oleva riistvara kasutajasõbralikuks, samal ajal back-end haldab kogu seda süsteemi, tegeleb loogika ja andmete salvestamisega.

Telekommunikatsioonis võib pidada front-endiks seadet või teenust, samal ajal back-end on infrastruktuur, mis toetab seda teenuse pakkumist.

Rusikareegel on see, et kliendi osa (front-end) on kasutaja poolt mõjutatav komponent. Serveri osa (back-end) asub tavaliselt serveris, mis asub kliendist eemal ning millega tegelevad tavaliselt programmeerijad.

Definitsioonid
 Veebikülje (e saidi) sisuhaldussüsteemides (Content Management System (CMS)) viitavad terminid front-end ja back-end vastavalt lõppkasutaja vaatele ja sisuhaldaja vaatele.
 Kõnesünteesis osutab front-end kõnesünteesi osale, mis teisendab sisendteksti foneetiliseks transkriptsiooniks ja back-end vastavalt konverdib foneetilise transkriptsiooni tegelikeks helideks.
 Suure arvutisüsteemi alamsüsteemide jaoks on graafiline failihaldur front-end see, mida sa ekraanil näed ja mille abil midagi teha saad. Back-end  on see, mis käivitab arvutis programmid ja operatsioonisüsteemi.
 Kompilaatorites tõlgib front-end arvutiprogrammeerimise lähtekoodi vaheesituseks (intermediate representation), back-end võtab selle vastu ning töötab sellega, et väljastada kood arvuti väljundkeeles. Back-end tavaliselt optimeeritakse töötama nii, et koodi oleks võimalik kiiremini kasutada.
 Käsurealiidese kasutamine nõuab spetsiifilise terminoloogia omandamist ja käskude meeldejätmist, seega graafiline kasutajaliides (GUI (Graphical User Interface)) töötab kui front-end.

Veebiarendamine kui näide
Veel üks võimalus, kuidas mõista nende kahe erinevust on aru saada, mis teadmisi nõutakse vastavalt front- ja back-end-i arendajalt. Allolev nimekiri keskendub näitena veebiarendusele.Mõlemad Versioonihalduse tööriistad nagu näiteks GitHub, SourceForge
 Failiedastus programmid nagu näiteks FTP või rsyncFront-end Märgistus- ja veebikeeled nagu näiteks HTML, CSS, JavaScript ja nendes keeltes kasutatavad abiteegid nagu Sass või JQuery.
 Asünkrooniliste päringute käsitlemine ja AJAX
 Kasutajaliides (GUI)
 Pilditöötlusprogrammid (GIMP või Photoshop)
 Otsingumootorija jaoks optimeerimine
 Ligipääsetavusega seotud probleemidBack-end'''''
 Programmeerimiskeeled nagu näiteks Node.js, PHP, Python
 Kompileeritud keeled nagu näiteks C#, Java
 Andmete teisendamine
 Tarkvaraarhitektuur
 Turvaprobleemid, autentimine ja autoriseerimine
 Andmebaaside haldamine

Isegi kui mõlema kihi tarkvaraarendajad võivad töötada ühe projekti kallal, siis oskused, mida neil vaja läheb, on väga erinevad.

Viited

Tarkvaraarendus