Предњи и задњи крај
У софтверском инжењерству, термини front end (предњи крај) и back end (задњи крај) представљају разлике између слоја презентације (front end), и слоја приступа подацима (back end) једног софтвера, или физичког дела, тј. хардвера. У клијент-сервер моделу, клијент углавном представља front end, док се сервер углавном сматра као back end, чак и када се неки послови презентацијског слоја раде на самом серверу.
Увод
уредиУ софтверској архитектури, може постојати много нивоа између хардвера и крајњег корисника. О сваком се може говорити као о front end-u и back end-u. Реч front је абстракција, која поједностављује позадинске компоненте и тиме пружа интерфејс лак за коришћење, док back углавном брине о бизнис логици и складиштењу података.
У телекомуникацијама, front-om се могу сматрати уређај или сервиси, док је back инфраструктура која подржава пружање услуга.
Неко основно правило је да је клијентска страна (или front end) нека компонента коју корисник котролише. Код на страни сервера (или back end) се углавном налази на самом серверу, често физички далеко од корисника.
Дефиниција софтвера
уреди- У системима за управљање садржаја, термини front end и back end могу се односити на поглед крањег корисника према CMS-u и административи.[1]
- У синтези говора front end се односи на део система синтезе која претвара улазни текст у симболички фонетски приказ, а затим back end претвара симолички фонетски приказ у звук.[2]
- За главне компијутрске подсистеме, графички фајл менаџер је front end за датотеке на рачунару, и shell интерфејс са оперативним системом. Front end је задужен за корисника, а back end покреће програме оперативног система као одговор.
- У комплајлерима, фронт енд преводи компијутерски генерисан изворни код у међујезик, а back end затим ту верзију претвара у излазни код на рачунару. Back end се углавном оптимизује, да би произведени код радио брже. Разликовање front/back end-a može odvojiti sekciju parsera (koja se bavi izvornim kodom) od back end-a који оптимизује и генерише код. Неки дизајни, као што је GCC, пружају могућност бирања више front end-ova ( парсовање различитих изворних језика) или back end-ova ( генеришу код за различите врсте процесора).[3]
- Коришћење интерфејса командне линије (CLI) захтева стицање посебне терминологије и меморизације команди, тако да графички кориснкички интерфејс (GUI) представља front end десктоп окружења.
Развој веба кроз пример
уредиДруги начин да схватите разлику између ова два елемента је разумевање знања које је потребно за front end, насупрот девелоперу који ради на позадини (back end) софтвера. Листа испод се фокусира на развој веба и послужиће нам као пример.
Front и back end фокусирани
уреди- Алати за контролу као што су GitHub, SourceForge или Mercuiral
- Алати за пренос података и протокола као што су FTP или rsync.
Front-end фокусирани
уреди- Маркап и веб језици као што су HTML, CSS, JavaScript обично користе помоћне библиотеке као што су Sass или JQuery.
- Асихнрони позиви уз помоц AJAX-a.
- Једностраничне апликације ( уз помоц framework-ova, као што су React, AngularJS или Vue.js
- Веб перформансе ( први битан цртеж, време до интерактивности, анимација у 60 FPS-a и интерактивност, коришћење података, итд).
- Прилагодљив веб дизајн
- Проблеми са компатибилности претраживача и потрага за решењима.
- Енд-то-енд тестирање претраживачем без графичко корисничког интерфејса.
- Изградња аутоматизације за трансформацију и спајање JavaScript фајлова, смањивање величине слике... са алатима као што су Webpack и Gulp.js
- Оптимизација енџина за претрагу.
- Пажња о приступачности
- Једноставна употреба алата за едитовање слика као што су GIMP и Photoshop.
- Визуелни интерфејс
Back-end фокусирани
уреди- Скриптни језици као што су Node.js, PHP, Python, Ruby, Perl или компајлерски језици као што су C#, Јава или Go
- Аутоматизовано тестирање фрејмворкова за језик који се користи
- Приступ подацима о апликацији
- Бизнис логика апликације
- Администрација базе података
- Прилагодљивост
- Висока доступност
- Велика пажња о безбедности, аутентификацији и ауторизацији
- Софтверска архитектура
- Транфсормација података.
- Backup методе и софтвер
Имајте на уму да обе позиције, без обзира што се ради на једном производу, захтевају доста разлчит скуп вештина.
Дефиниција хардвера
уредиУ рачунарским мрежама, front end може да представља било који хардвер који оптимизује или штити мрежни саобраћај.[4] Назива се апликациони front-end хардвер зато што се налази на front end-u или на самој граници мреже. Мрежни саобраћај пролази кроз front-end хардвер пре уласка у мрежу
У производњи процесора, front end дизајн би био почетни опис понашања кола у језику за опис хардвера као што је Verilog, док би код back end-a дизајн био процес мапирања тог понашања на физичке транзисторе на тој матрици.[5]
Такође погледајте
уредиРеференце
уреди- ^ Тхаплиyал, Вимал. „Дифференце Бетwеен Фронтенд анд Бацкенд МВЦ – Јоомлатутс”. јоомлатутс.нет. Архивирано из оригинала 11. 03. 2018. г. Приступљено 2016-12-30.
- ^ Гутиеррез--Осуна, Рицардо. „Л18: Спеецх сyнтхесис (бацк енд)” (ПДФ). таму.еду. Теxас А&M Университy. Архивирано из оригинала (ПДФ) 14. 02. 2019. г. Приступљено 2016-12-29.
- ^ Бин Мухаммад, Расхид. „Оператинг Сyстемс Нотес”. www.персонал.кент.еду. Кент Стате Университy. Приступљено 2016-12-30.
- ^ О'Делл, Мике. „Нетwорк Фронт-Енд Процессорс, Yет Агаин | Јуне 2009 | Цоммуницатионс оф тхе АЦМ”. цацм.ацм.орг. Приступљено 2016-12-30.
- ^ „Фронт-Енд Десигн | Онлине Доцументатион фор Алтиум Продуцтс”. тецхдоцс.алтиум.цом. Приступљено 2016-12-30.