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-end'iks 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. 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. 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 rsync Front-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 probleemid Back-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. Vimal Thapliyal. "Difference Between Frontend and Backend MVC". Originaali arhiivikoopia seisuga 30. detsember 2016. Vaadatud 28.02.2020. "L18: Speech synthesis" (PDF). Originaali (PDF) arhiivikoopia seisuga 14. veebruar 2019.