IT haqida oddiy

Oshxona va zal: sayt ichkaridan qanday tuzilgan (bekend va frontend)

Restoran oshxonasi va zali — bekend va frontend metaforasi

Siz dasturchi bilan saytni muhokama qilyapsiz va u: «Front tayyor, faqat bekni ulash qoldi», deydi. Bu nima degani va nega «ko'rinmas» qism smetaning yarmini egallaydi? Eng tushunarli o'xshatish — restoranda tahlil qilamiz.

Bu «IT haqida oddiy» turkumidagi maqola bo'lib, unda biz biznes egalariga asosiy tushunchalarni tushuntiramiz. Frontend va bekend farqini tushunganingizdan so'ng, vazifalarni aniqroq qo'yasiz va nima uchun to'layotganingizni yaxshiroq tushunasiz.

Restoran: zal va oshxona

Restoranni tasavvur qiling. Mehmon zalni ko'radi: interyer, menyu, ofitsiant. Bu frontend — «old» qism (front — old). Saytda bu siz ko'radigan va foydalanadigan hamma narsa: dizayn, matnlar, tugmalar, formalar, animatsiyalar.

Lekin taom mehmon ko'rmaydigan oshxonada tayyorlanadi. Bu bekend — «orqa» qism (back — orqa). Saytda bu serverdagi dasturlar: ular buyurtmani qabul qiladi, chegirma bilan narxni hisoblaydi, ombordagi mavjudlikni tekshiradi, to'lovni yechadi, xat yuboradi. Mehmon ularni ko'rmaydi, ammo oshxonasiz restoran shunchaki dekoratsiya.

Buyurtma — bu zal va oshxona o'rtasidagi muloqot: ofitsiant (frontend) mehmonning istaklarini qabul qilib, oshxonaga (bekend) uzatadi, oshxona tayyorlab taomni zalga qaytaradi. Saytda ham xuddi shunday: forma ma'lumotlarni serverga yuboradi, server ularni qayta ishlaydi va natijani qaytaradi — «buyurtma rasmiylashtirildi, yetkazib berishni kuting».

Restoran zali va oshxonasi o'rtasidagi buyurtma oynasi
Frontend — mehmonlar ko'radigan zal; bekend — hamma narsa tayyorlanadigan oshxona

Nega bekend ko'rinmaydi, lekin qimmatroq

Egalar ko'pincha smetadan hayron bo'lishadi: «Dizayn tayyor-ku — qolgan yarim summa nimaga?» Oshxonaga. Internet-do'konda «Buyurtma berish» tugmasi bosilgandan keyin nima bo'lishini hisoblang: tovar mavjudligini tekshirish, promokodni qo'llash, manzil bo'yicha yetkazib berishni hisoblash, bazada buyurtma yaratish, ma'lumotlarni to'lov tizimiga yuborish, to'lov tasdig'ini kutish, menedjerni xabardor qilish, mijozga chek yuborish. Bir soniyada sakkizta operatsiya — va ularning har biri «to'lov o'tmadi» va «mijoz o'ylaguncha tovar tugadi» kabi holatlarni ham o'z ichiga olgan holda xatosiz ishlashi kerak.

Bekendsiz frontend — chiroyli maket: tugmalar bor, lekin ularni bosish hech narsaga olib kelmaydi. Frontendsiz bekend — ishlaydigan, lekin odamlar uchun mavjud bo'lmagan mashina. Mahsulot faqat birgalikda hosil bo'ladi.

Shundan kelib chiqib dasturchilarning ixtisosliklari mavjud: frontend-dasturchi, bekend-dasturchi va fullstack (full stack) — ikkala qismni ham qiladigan mutaxassis. Kichik loyihalar uchun bitta fullstack-dasturchi ko'pincha jamoadan samaraliroq bo'ladi.

Bug' chiqib turgan murakkab professional restoran oshxonasi

Nima qayerda joylashgan: brauzerda va serverda

Ko'p narsani tushuntirib beradigan texnik tafsilot: frontend mijozning qurilmasida — uning brauzerida, telefonida bajariladi. Bekend — sizning serveringizda. Shuning uchun frontend hamma uchun biroz har xil ishlaydi (eski telefon, boshqa brauzer, sekin internet), bekend esa — hammaga bir xil.

Bundan amaliy xulosalar kelib chiqadi. Sayt ma'lum bir mijozda sekin ochilsa — gap uning qurilmasi yoki tarmog'ida bo'lishi mumkin. Hammada sekin bo'lsa — server va bekendni tekshiramiz. Tugma rangini o'zgartirish — frontend ishi, odatda tez. Chegirmalar mantiqini o'zgartirish — bekend ishi va u yerda «shunchaki raqamni o'zgartirish» mantiq tizimning boshqa qismlariga bog'liq bo'lsa, umuman oson bo'lmasligi mumkin.

Buyurtma oynasi orqali oshxonaga qaraydigan zalning bezatilgan stoli

Bu bilimni amaliyotda qanday ishlatish kerak

Pudratchiga vazifa qo'yayotganda, uning qaysi «yarmi»ga tegishli ekanligini tushunish foydali — muddatlar va narx shunga bog'liq. «Bosh sahifadagi matnni to'g'rilash» — frontend, daqiqalar. «Buyurtmalar bizning CRMga tushadigan qilish» — bekend-integratsiya, kunlar. «Buyurtmalar tarixi bilan shaxsiy kabinet qo'shish» — ikkala qism birdaniga, haftalar.

Va aksincha: agar pudratchi «tugma rangini o'zgartirish»ni bir haftalik ish deb baholasa — yoki loyihada kod bilan bog'liq muammolar bor, yoki u yerda aynan nima buncha vaqtni olayotganini so'rashingiz kerak. Sog'lom loyiha kichik tuzatishlarni tezda amalga oshirishga imkon beradi.

Restoran oshxonasi va zali o'rtasidagi buyurtmalar taxtasi
Bitta kadrda restoran zali va oshxonasining uyg'unligi

Ko'p beriladigan savollar

API nima? Dasturchilar bu so'zni doimiy ravishda ishlatishadi.

API — bu oshxona va zal o'rtasidagi «buyurtma oynasi»: frontend (yoki boshqa tizim) bekenddan so'rashi mumkin bo'lgan qat'iy buyruqlar ro'yxati: «tovarlar ro'yxatini ber», «buyurtma yarat». API orqali saytingiz tashqi xizmatlar bilan muloqot qiladi: to'lov tizimlari, SMS-shlyuzlar, CRM.

Fullstack-dasturchi — bu ikki mutaxassisga qaraganda yaxshimi yoki yomonmi?

Kichik va o'rta loyihalar uchun bitta fullstack ko'pincha yaxshiroq: muloqotga vaqt yo'qotilmaydi, bitta mas'ul shaxs bor. Katta yuklamali yirik mahsulotlarda ixtisoslashtirilgan jamoalar yutadi. Bu sifat emas, balki masshtab masalasi.

Nega «oddiy» takomillashtirish qimmatga tushishi mumkin?

Ko'rinadigan soddalik aldamchi: kichik tugma ortida bekendda katta mantiq turishi mumkin. Klassika — «bo'lib-bo'lib to'lashni qo'shing»: frontendda bu bitta tugma, bekendda esa — bank bilan integratsiya, to'lov jadvallari, muddati o'tgan to'lovlarni qayta ishlash.

Shuningdek o'qing