Juhendid

Frontend ja backend: mis vahe neil on?

Frontend on rakenduse osa, mis töötab kasutaja brauseris: lehed, nupud, vormid ja animatsioonid, mida ta näeb ja millele klõpsab. Backend on osa, mis töötab serveris, mida kasutaja kunagi ei näe: see salvestab andmeid ja toob need välja, rakendab ärireegleid, kontrollib, kes mida tohib teha, ning suhtleb teiste teenustega, nagu maksed ja e-post. Need kaks suhtlevad API kaudu ning koos andmebaasiga moodustavad nad „full-stack” rakenduse.

Miks see tähtis on, kui ehitad AI-ga

Kui kirjeldad AI-ehitajale rakendust, kirjeldad sa korraga mõlemat poolt, olenemata sellest, kas sa seda tead või mitte. „Kliendid saavad broneerida aja” tähendab broneerimisvormi (frontend), reegleid, milline aeg on vaba (backend), ja kohta, kuhu broneeringud salvestada (andmebaas).

Selle jaotuse tundmine aitab kolmes praktilises asjas:

  1. Turvalisus. Kõik, mis on frontendis, on kasutaja nähtav ja muudetav. Reeglid ja salajased võtmed peavad asuma backendis.
  2. Silumine. „Nupp ei reageeri” ja „nupp reageerib, aga midagi ei salvestu” viitavad erinevatele pooltele. Kui ütled AI-le, mida näed, aitab see tal põhjuse kiiremini leida.
  3. Hosting ja kulud. Ainult frontendi leht on odav ja lihtne majutada. Backend peab kuskil töötama, mis mõjutab, mida maksad ja kuidas rakendus käitub, kui see on tühikäigul.

Igapäevane võrdlus

Mõtle restoranile.

Frontend on söögisaal: menüü, lauad, sisustus ja ettekandja, kes võtab tellimuse. See on kujundatud klientidele ning nad näevad ja puudutavad kõike seda.

Backend on köök ja kontor: kokad, laoruum, kassa ja juhataja reeglid, kes saab allahindlust. Kliendid sinna ei lähe ega peaks saama minna.

API on nende vahel olev ava: leti, kuhu tellimused sisse antakse ja valmistoidud välja tulevad, kokkulepitud vormingus. Andmebaas on laoruum ja tellimusraamat.

Klient võib oma tellimuslehte ümber kirjutada (frontend on tema kontrolli all), aga köök otsustab endiselt, mida ta valmistab ja mis maksab. Seepärast kuuluvad olulised kontrollid taha.

Mida iga pool teeb

FrontendBackend
TöötabKasutaja seadmes, brauserisServeris, mida sina (või su hostiteenus) kontrollid
PõhiülesanneNäitab asju, kogub sisendit, reageerib klõpsudeleSalvestab andmeid, rakendab reegleid, jõustab õigusi, kutsub teisi teenuseid
Kas kasutajad näevad ja muudavad koodi?Jah, see laaditakse alla nende brauserisseEi
Kas võib hoida salajasi API-võtmeid?EiJah, keskkonnamuutujates
Levinud tehnoloogiadHTML, CSS, JavaScript/TypeScript, React, Vue, Svelte, TailwindNode.js, Python (FastAPI, Django), C#, Java, Go, Ruby
Mis läheb valestiPaigutus laguneb mobiilis, nupp ei tee midagi, aeglane lehtAndmed ei salvestu, vale info kuvatakse, vead, turvaaugud

Mõned raamistikud hägustavad piiri. Näiteks Next.js lubab ühes projektis olla nii brauseris kui serveris töötavat koodi. Mõte jääb samaks: küsimus on alati, kus see tükk töötab?

Töötav näide: tunni broneerimine

Siin on see, mis juhtub, kui keegi broneerib joogatunni, samm-sammult.

SammKusMis juhtub
1FrontendAjakava leht laadib ja küsib backendilt selle nädala tunnid.
2BackendLoeb tunnid ja broneeringud andmebaasist, arvutab vabad kohad ning tagastab nimekirja JSON-ina.
3FrontendKuvab iga tunni koos ajaga, õpetaja ja vabade kohtadega.
4FrontendKasutaja valib tunni ja täidab nime ja e-posti. Vorm kontrollib, et e-post näib õige (see on teenus, mitte garantii).
5Frontend → BackendSaadab päringu POST /api/bookings läbi API.
6BackendKontrollib sisendi uuesti, veendub, et tund pole täis, salvestab broneeringu ja palub e-posti teenusel saata salajase võtme abil kinnituse.
7Backend → FrontendTagastab „broneeritud” või „vabandust, on täis”.
8FrontendKuvab kinnitusekraani.

Pane tähele samme 4 ja 6: sisendit kontrollitakse kaks korda. Frontendi kontroll annab kohese tagasiside; backendi kontroll on see, mis tegelikult loeb, sest otsustav kasutaja võib frontendi täielikult mööda minna.

Levinumad mõisted selgitatult

MõisteTähendus
Klient / serverKlient on brauser (või rakendus), mis teeb päringuid; server vastab neile.
UIKasutajaliides: ekraanid ja juhtelemendid.
APIKokkulepitud viis, kuidas frontend küsib backendilt andmeid või toiminguid.
EndpointÜks konkreetne URL API-s, näiteks /api/bookings.
Full stackFrontend + backend + andmebaas koos. Vaata mis on full-stack rakendus.
Staatiline saitFrontend ilma oma backendita; kõigile samad failid.
SPAÜheleheline rakendus: frontend, mis uuendab lehte brauseris, selle asemel et laadida uusi lehti.
Serveripoolne renderdamine (SSR)Server koostab lehe HTML-i enne saatmist, mis võib aidata kiirust ja SEO-d.
KeskkonnamuutujadSeaded ja salajased võtmed, mis antakse backendile töö ajal ja hoitakse koodist eemal.

Kas su rakendus vajab backendi?

Kui su rakendus…Kas vajab backendi?
Näitab infot, mis on kõigile samaEi
Sisaldab kontaktvormi, mis saadab sulle ainult e-kirjaTavaliselt väike backend või vormiteenus
Salvestab andmeid, mida teised näevadJah
Sisaldab sisselogimisi ja privaatseid andmeidJah
Võtab vastu makseidJah, vähemalt maksete loomiseks ja makse-webhook'ide vastuvõtmiseks
Kasutab tasulist AI- või muud API-d salajase võtmegaJah, et võti brauserist eemal hoida

Levinud vead ja arusaamatused

  • Salajaste võtmete panemine frontendi. Need on nähtavad igaühele, kes avab brauseri arendajatööriistad. See on AI-ga ehitatud rakenduste kõige levinum tõsine viga.
  • Reeglite jõustamine ainult frontendis. Kustutamisnupu peitmine mitteadministraatorite eest ei ole kaitse; backend peab päringu tagasi lükkama.
  • Arvamus, et backend on „lihtsalt andmebaas”. Andmebaas salvestab andmed. Backend otsustab, kes neid loeb ja muudab ning kuidas.
  • Arvamus, et JavaScript tähendab frontendi. JavaScript ja TypeScript töötavad ka serverites Node.js-iga.
  • Vale poole süüdistamine. Kui leht näeb õige välja, aga andmed on valed, asub probleem tavaliselt backendis või andmebaasis, mitte disainis.
  • Liigne ehitamine. Portfoolio ei vaja kohandatud backendit. Selle lisamine suurendab kulusid ja liikuvaid osi.

Mida küsida oma AI-ehitajalt

  • „Millised selle rakenduse osad töötavad brauseris ja millised serveris?”
  • „Vii kõik API-võtmed backendi ja loe need keskkonnamuutujatest.”
  • „Kontrolli iga vormi ka serveris, mitte ainult brauseris.”
  • „Jõusta backendis, et kustutada broneeringuid saavad ainult administraatorid.”
  • „Leht näeb korras välja, aga andmeid ei salvestata — vaata päringu logisid backendis.”
  • „See on lihtne turundusleht; hoia see ainult frontendina, kui meil pole tegelikult backendi vaja.”

Frontend ja backend Mythexis

Uus Mythexi projekt algab Vite, React, TypeScripti ja Tailwindi frontendist ning agent lisab backendi siis, kui su rakendus seda vajab. Võid ka paluda eraldi API-d Node.js-is, Python-is (FastAPI), C#-s või Javas, mis töötab koos frontendiga samas projektis. Eelvaates saad vahetada veebisaidi ja API-serveri vahel ning avaldamisel juurutatakse mõlemad, lisades vajadusel andmebaasi ja failisalvestuse. Dokumentatsioon selgitab mitme teenusega rakendusi, veebihostimise juhend näitab, kus iga pool elus töötab, ning rakenduste mallid on kiire viis full-stack näidete vaatamiseks.

Küsimused

Mis vahe on frontendil ja backendil?

Frontend on rakenduse osa, mis töötab kasutaja brauseris: lehed, nupud ja vormid, mida ta näeb ja millega suhtleb. Backend töötab serveris, mida kasutaja kunagi ei näe; see salvestab andmeid, rakendab ärireegleid, kontrollib õigusi ja suhtleb teiste teenustega.

Kas iga rakendus vajab backendi?

Ei. Turundusleht, portfoolio või lihtne maandumisleht võib olla ainult frontend. Kui rakendus peab salvestama jagatud andmeid, logima kasutajaid sisse, võtma vastu makseid või kasutama salajasi API-võtmeid, vajab see mingisugust backendi.

Kas HTML on frontend või backend?

Brauseris töötavad HTML, CSS ja JavaScript on frontend. JavaScript võib töötada ka serveris Node.js-i abil, siis on see backendi kood. Keel ei otsusta seda, vaid see, kus kood töötab.

Mida tähendab full stack?

Full stack tähendab nii frontendi kui ka backendi (ja tavaliselt ka andmebaasi) katmist. Full stack rakendus on see, millel on kõik kolm osa; full stack arendaja töötab kõigi nende kallal.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)