U softverskom inženjerstvu, termini -{front end}- (prednji kraj) i -{back end}- (zadnji kraj) predstavljaju razlike između sloja prezentacije (-{front end}-), i sloja pristupa podacima (-{back end}-) jednog softvera, ili fizičkog dela, tj. hardvera. U klijent-server modelu, klijent uglavnom predstavlja -{front end}-, dok se server uglavnom smatra kao -{back end}-, čak i kada se neki poslovi prezentacijskog sloja rade na samom serveru.

Uvod U softverskoj arhitekturi, može postojati mnogo nivoa između hardvera i krajnjeg korisnika. O svakom se može govoriti kao o -{front end-u}- i -{back end-u}-. Reč -{front}- je abstrakcija, koja pojednostavljuje pozadinske komponente i time pruža interfejs lak za korišćenje, dok -{back}- uglavnom brine o biznis logici i skladištenju podataka.

U telekomunikacijama, -{front-om}- se mogu smatrati uređaj ili servisi, dok je -{back}- infrastruktura koja podržava pružanje usluga.

Neko osnovno pravilo je da je klijentska strana (ili -{front end}-) neka komponenta koju korisnik kotroliše. Kod na strani servera (ili -{back end}-) se uglavnom nalazi na samom serveru, često fizički daleko od korisnika.

Definicija softvera U sistemima za upravljanje sadržaja, termini -{front end}- i -{back end}- mogu se odnositi na pogled kranjeg korisnika prema -{CMS-u}- i administrativi. U sintezi govora -{front end}- se odnosi na deo sistema sinteze koja pretvara ulazni tekst u simbolički fonetski prikaz, a zatim -{back end}- pretvara simolički fonetski prikaz u zvuk. Za glavne kompijutrske podsisteme, grafički fajl menadžer je -{front end}- za datoteke na računaru, i -{shell}- interfejs sa operativnim sistemom. -{Front end}- je zadužen za korisnika, a -{back end}- pokreće programe operativnog sistema kao odgovor.

U komplajlerima, front end prevodi kompijuterski generisan izvorni kod u međujezik, a -{back end}- zatim tu verziju pretvara u izlazni kod na računaru. -{Back end}- se uglavnom optimizuje, da bi proizvedeni kod radio brže. Razlikovanje -{front/back end-a}- može odvojiti sekciju parsera (koja se bavi izvornim kodom) od -{back end-a}- koji optimizuje i generiše kod. Neki dizajni, kao što je -{GCC}-, pružaju mogućnost biranja više -{front end-ova}- ( parsovanje različitih izvornih jezika) ili -{back end-ova}- ( generišu kod za različite vrste procesora). Korišćenje interfejsa komandne linije (-{CLI}-) zahteva sticanje posebne terminologije i memorizacije komandi, tako da grafički korisnkički interfejs (-{GUI}-) predstavlja -{front end}- desktop okruženja.

Razvoj veba kroz primer Drugi način da shvatite razliku između ova dva elementa je razumevanje znanja koje je potrebno za -{front end}-, nasuprot developeru koji radi na pozadini (-{back end}-) softvera. Lista ispod se fokusira na razvoj veba i poslužiće nam kao primer.

-{Front}- i -{back end}- fokusirani

Alati za kontrolu kao što su -{GitHub}-, -{SourceForge}- ili -{Mercuiral}- Alati za prenos podataka i protokola kao što su -{FTP}- ili -{rsync}-.

-{Front-end}- fokusirani

Markap i veb jezici kao što su -{HTML}-, -{CSS}-, -{JavaScript}- obično koriste pomoćne biblioteke kao što su -{Sass}- ili -{JQuery}-. Asihnroni pozivi uz pomoc -{AJAX-a}-. Jednostranične aplikacije ( uz pomoc -{framework-ova}-, kao što su -{React}-, -{AngularJS}- ili -{Vue.js}- Veb performanse ( prvi bitan crtež, vreme do interaktivnosti, animacija u 60 -{FPS-a}- i interaktivnost, korišćenje podataka, itd). Prilagodljiv veb dizajn Problemi sa kompatibilnosti pretraživača i potraga za rešenjima. End-to-end testiranje pretraživačem bez grafičko korisničkog interfejsa. Izgradnja automatizacije za transformaciju i spajanje -{JavaScript}- fajlova, smanjivanje veličine slike... sa alatima kao što su -{Webpack}- i -{Gulp.js}- Optimizacija endžina za pretragu. Pažnja o pristupačnosti Jednostavna upotreba alata za editovanje slika kao što su -{GIMP}- i -{Photoshop}-. Vizuelni interfejs

-{Back-end}- fokusirani

Skriptni jezici kao što su -{Node.js}-, -{PHP}-, -{Python}-, -{Ruby}-, -{Perl}- ili kompajlerski jezici kao što su -{C#}-, Java ili -{Go}- Automatizovano testiranje frejmvorkova za jezik koji se koristi Pristup podacima o aplikaciji Biznis logika aplikacije Administracija baze podataka Prilagodljivost Visoka dostupnost Velika pažnja o bezbednosti, autentifikaciji i autorizaciji Softverska arhitektura Tranfsormacija podataka. -{Backup}- metode i softver

Imajte na umu da obe pozicije, bez obzira što se radi na jednom proizvodu, zahtevaju dosta razlčit skup veština.

Definicija hardvera U računarskim mrežama, -{front end}- može da predstavlja bilo koji hardver koji optimizuje ili štiti mrežni saobraćaj. Naziva se aplikacioni -{front-end}- hardver zato što se nalazi na -{front end-u}- ili na samoj granici mreže. Mrežni saobraćaj prolazi kroz -{front-end}- hardver pre ulaska u mrežu

U proizvodnji procesora, -{front end}- dizajn bi bio početni opis ponašanja kola u jeziku za opis hardvera kao što je -{Verilog}-, dok bi kod -{back end-a}- dizajn bio proces mapiranja tog ponašanja na fizičke tranzistore na toj matrici.

Takođe pogledajte

Reference

Категорија:Софтверска архитектура