Frontend va backend

Dasturiy taʼminot muhandisligida frontend va backend yoki back-end deb ataladi. Ushbu atamalar dasturiy taʼminotning taqdimot qatlami (frontend) va maʼlumotlarga kirish qatlami (backend) oʻrtasidagi farqlarni ajratishni anglatadigan apparat. Server modelida tashqi koʻrinish odatda frontend hisoblanadi va frontendning oʻzida baʼzi taqdimot ishlari amalga oshirilgan boʻlsa ham, backend hisoblanadi.void main {
 int wik = 100;
 inr wik1 = 99;
 print("$wik+$wik1");
}

 Kirish

Dasturiy taʼminot tizimida apparat va foydalanuvchi oʻrtasida koʻplab maʼlumotlar boʻlishi mumkin. Old qismi mavhum boʻlib, foydalanuvchilarga qulay interfeysni taʼminlaydi. Orqa tomon esa odatda maʼlumotlarni saqlash va biznes mantigʻini boshqaradi.

Telekommunikatsiyada old tomonni qurilma yoki xizmat deb hisoblansa, orqa tomon esa xizmat koʻrsatadigan infratuzilmadir.

Asosiy qoida shundaki, old tomondagi (yoki „frontend“) kod foydalanuvchi tomonidan boshqariladigan har qanday komponentni oʻz ichiga oladi. Server tomonidagi (yoki „backend“) kod odatda serverda joylashgan boʻlib, koʻpincha foydalanuvchidan jismoniy jihatdan uzoqroq boʻladi.

 Dasturiy taʼminot taʼriflari 
thumb|250px

 Kontentni boshqarish sistemalarida frontend va backend atamalari mos ravishda CMS va maʼmuriy koʻrinishlarning foydalanuvchiga koʻringan qismlariga ishora qilishi mumkin. 
Nutq sintezida frontend qism sintez tizimining kiritilgan maʼlumotni ramziy fonetik tasvirga aylantiradigan qismi, orqa tomon yaʼni backend qism esa ramziy fonetik tasvirni haqiqiy tovushlarga aylantiradigan qismi hisoblanadi.

Asosiy kompyuterning quyi tizimlarida grafik fayl boshqaruvchisi kompyuterning fayl tizimining old tomoni hisoblanib, operatsion tizim bilan koʻrinib turgan qismi hisoblanadi. Frontend foydalanuvchiga yuzma-yuz koʻrinib turib, backend esa javoban operatsion tizim dasni ishga tushiradi.

Kompilyatorlarda frontend qism manba qismini oraliq koʻrinishgacha tarjima qiladi va backend qism kompyuter tilida kod ishlab chiqarish uchun oraliq qism bilan ishlaydi. Backend asosan tezroq ishlaydigan kod ishlab chiqarish uchun optimallashtiradi. Frontend va backendning farqi manba kodi bilan ishlaydigan tahlil qiluvchi boʻlimni va kodni yaratadigan va optimallashtiradigan backend qismni ajratishi mumkin. GCC kabi boshqa dizaynlar bir nechta frontendlar (turli manba tillarini tahlil qilish) yoki backendlar (turli maqsadli protsessorlar uchun kod yaratish) oʻrtasidagi xizmatlarni taklif qiladi.

 Misol sifatida veb-ishlab chiqish 
Ikkalasining oʻrtasidagi farqni tushunishning boshqa bir yoʻli frontend va backend dasturiy taʼminot ishlab chiqaruvchisiga kerak boʻlgan bilimlarni tushunishdir. Quyidagi roʻyxat misol sifatida veb-ishlab chiqishga qaratilgan:

 Ikkalasi ham 

 Git, Mercurial yoki Subversiya kabi versiyalarni boshqarish vositalari
 FTP yoki rsync kabi fayllarni uzatish vositalari va protokollari

 Frontend diqqat markazida quyidagilarni oʻz ichiga oladi: 

 HTML, CSS, JavaScript kabi veb dasturlash tillari hamda Sass yoki Query kabi tillarda koʻp ishlatiladigan yordamchi kutubxonalar
 Asinxron soʻrovlarni qaytadan ishlash va AJAX
 Bir sahifali ilovalar (React, Angular yoki Vue.js kabi ramkalar bilan)
 Veb ishlashi (eng katta mazmunli boʻyoq, interaktiv vaqt, 60 FPS animatsiyalar va oʻzaro taʼsirlar, xotiradan foydalanish va hokazo)
 Responsiv veb-dizayn
 Brauzerlar oʻrtasidagi muvofiqlikdagi muammolar va vaqtinchalik yechimlar
 Boshsiz brauzer bilan oxirigacha sinov
 Webpack va Gulp.js kabi vositalar yordamida JavaScript fayllarini o‘zgartirish va to‘plash, tasvir o‘lchamlarini va boshqa jarayonlarni oʻzgartirish uchun avtomatlashtirishni yaratish
 Qidiruv tizimini optimallashtirish
 Foydalanish imkoniyati bilan bogʻliq muammolar
 GIMP yoki Photoshop kabi tasvirlarni tahrirlash vositalaridan asosiy foydalanish
 Foydalanuvchi interfeysi

 Backend fokuslangan koʻrinishlari 

 PHP, Python, Ruby, Perl, Node.js kabi skript tillari yoki C#, Java yoki Go kabi kompilyatsiya tillari
 Foydalanilayotgan til uchun avtomatlashtirilgan sinov ramkalari
 Ilova maʼlumotlariga kirish
 Ilova biznes mantiq
 Maʼlumotlar bazasini boshqarish
 Masshtablilik
 Yuqori mavjudligi
 Xavfsizlik muammolari, autentifikatsiya va avtorizatsiya
 Dasturiy taʼminot arxitekturasi
 Maʼlumotlarni oʻzgartirish
 Zaxiralash usullari va dasturiy taʼminot

Ikkala pozitsiya ham bitta mahsulot ustida ishlashiga qaramay, juda aniq koʻnikmalarga ega hisoblanadi.

 API 
Frontend API orqali backend qism bilan bogʻlanadi. Veb va mobil frontendlarda API odatda HTTP soʻrovi javobiga asoslanadi. API baʼzan „Backend for Frontend“ (BFF) uslubidan foydalangan holda ishlab chiqilgan boʻlib, u frontend qismda oʻzgartirish kiritishni osonlashtirish uchun xizmat qiladi.

 Uskuna taʼriflari 
Tarmoqli hisoblashda frontend qism tarmoq trafigini optimallashtiradigan yoki himoya qiladigan har qanday uskunaga murojaat qilishi mumkin. U tarmoqning koʻrinib turgan old tomonida yoki chegarasida joylashgani uchun dasturning frontend apparati deb ataladi. Tarmoq trafigida tarmoqqa kirishdan oldin front-end apparat orqali oʻtadi.

Protsessor dizaynida frontend dizayni Verilog kabi apparat taʼrifi tilida kontaktlarning eskirishiga olib keladigan harakatlarining boshlangʻich tavsifi boʻlardi, backend dizayni esa bu xatti-harakatni matritsadagi jismoniy tranzistorlar bilan taqqoslash jarayoni hisoblanadi.

 Yana qarang