Prednji i zadnji kraj
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.[1]
- 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.[2]
- 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).[3]
- 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.[4] 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.[5]
Takođe pogledajte
[уреди | уреди извор]Reference
[уреди | уреди извор]- ^ Thapliyal, Vimal. „Difference Between Frontend and Backend MVC – Joomlatuts”. joomlatuts.net. Архивирано из оригинала 11. 03. 2018. г. Приступљено 2016-12-30.
- ^ Gutierrez--Osuna, Ricardo. „L18: Speech synthesis (back end)” (PDF). tamu.edu. Texas A&M University. Архивирано из оригинала (PDF) 14. 02. 2019. г. Приступљено 2016-12-29.
- ^ Bin Muhammad, Rashid. „Operating Systems Notes”. www.personal.kent.edu. Kent State University. Приступљено 2016-12-30.
- ^ O'Dell, Mike. „Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM”. cacm.acm.org. Приступљено 2016-12-30.
- ^ „Front-End Design | Online Documentation for Altium Products”. techdocs.altium.com. Приступљено 2016-12-30.