Kas ir pilna steka lietotne? Skaidrojums vienkāršā valodā
Pilna steka lietotne ir lietotne, kas ietver visus slāņus, kas tai vajadzīgi darbam: priekšējo daļu (frontend), ko cilvēki redz un klikšķina, backend, kas darbojas serverī un ievieš noteikumus, un datubāzi, kas glabā visu. Uzdevumu saraksts, kas saglabā jūsu uzdevumus, ļauj pieteikties no jebkuras ierīces un nerāda citiem jūsu sarakstu, ir pilna steka lietotne. Viena lapa, kas tikai rāda jūsu darba laiku, nav.
„Stack” vienkārši nozīmē tehnoloģiju slāņus, kas sakrauti viens virs otra. „Full” nozīmē, ka visi tie ir klāt.
Kāpēc tas ir svarīgi, veidojot ar AI
Kad aprakstāt lietotni AI veidotājam, izmantotie vārdi nosaka, kurus slāņus tas izveido. „Izveido lapu, kas rāda mūsu ēdienkarti” rada priekšējo daļu. „Ļauj klientiem pasūtīt no mūsu ēdienkartes un ļauj virtuvei redzēt jaunus pasūtījumus” prasa visus trīs slāņus, jo pasūtījumi jāsaglabā, jādalās starp divu veidu lietotājiem un jāglabā privāti.
Zināšanas par atšķirību palīdz trijos veidos:
- Jūs lūdzat pareizo lietu. Ja vēlaties saglabātus datus, sakiet to. Veidotājs, kas izveido tikai priekšējo daļu, izskatīsies pabeigts, bet visu aizmirsīs, pārlādējot lapu.
- Jūs pamanāt šķietamu pabeigtību. Demonstrācija ar paraugdatiem var izskatīties tieši kā strādājoša lietotne. Zinot slāņus, varat pārbaudīt, vai dati patiešām kaut kur nonāk.
- Jūs saprotat izmaksas. Tikai priekšējo daļu var piegādāt kā statiskus failus. Backend un datubāze ir programmas, kas darbojas serveros, un tieši tur rodas lielākā daļa hostinga izmaksu.
Ikdienas salīdzinājums: restorāns
Iedomājieties restorānu.
- Ēdamzāle ir priekšējā daļa. Ēdienkartes, galdi un viesmīļa piezīmju bloknots. Tā ir tā, ko redz viesi, un tai jābūt patīkamai un viegli lietojamai.
- Virtuve ir backend. Viesi tajā nekad neiet. Virtuve pieņem pasūtījumus, pārbauda, vai ēdiens ir pieejams, to pagatavo un noraida dīvainus lūgumus. Noteikumi dzīvo šeit.
- Pārtikas noliktava un pasūtījumu grāmata ir datubāze. Tajās glabājas, kas ir un kas ir pasūtīts, lai nekas netiktu aizmirsts, mainoties maiņai.
Restorāns, kurā ir tikai ēdamzāle, var parādīt jums skaistu ēdienkarti, bet jūs nevarat paēst. Tā ir lietotne tikai ar priekšējo daļu, kas izliekas par pilnu steku.
Trīs slāņi sīkāk
| Slānis | Kur darbojas | Tā uzdevums | Tipiska tehnoloģija |
|---|---|---|---|
| Priekšējā daļa | Apmeklētāja pārlūkprogrammā | Rādīt ekrānus, savākt ievadi, justies ātrai | HTML, CSS, JavaScript, bieži React |
| Backend | Serverī, ko jūs kontrolējat | Pārbaudīt atļaujas, piemērot biznesa noteikumus, izsaukt citus pakalpojumus ar slepenām atslēgām | Node.js, Python, C#, Java un citi |
| Datubāze | Serverī, blakus backend | Uzticami glabāt un atrast datus | Postgres, MySQL, SQLite |
Slāņi sazinās noteiktā secībā. Priekšējā daļa kaut ko pieprasa no backend caur API — noteiktu pieprasījumu kopu, ko backend pieņem. Backend pārbauda pieprasījumu, nolasa vai ieraksta datubāzē un nosūta atbildi. Priekšējā daļa nekad tieši nesazinās ar datubāzi.
Šī kārtība ir svarīgākā drošības ideja visā steka. Viss priekšējā daļā var tikt nolasīts un mainīts apmeklētāja, jo tas darbojas viņa ierīcē. Tāpēc noteikumi — „tikai īpašnieks var redzēt šo rēķinu”, „kupons var tikt izmantots vienreiz” — jāievieš backend. Vairāk par šo sadalījumu skatiet priekšējā un aizmugures daļa.
Praktisks piemērs: nodarbību rezervāciju lietotne
Pieņemsim, ka jūs vadāt jogas studiju un vēlaties, lai cilvēki rezervētu nodarbības tiešsaistē.
Ko dara apmeklētājs: atver vietni, redz šīs nedēļas nodarbības, pieskaras vienai, pierakstās un rezervē vietu.
Kas notiek zem tā:
- Priekšējā daļa rāda grafiku. Lai to aizpildītu, tā jautā backend: „Kādas nodarbības ir šajā nedēļā un cik vietu ir palicis?”
- Backend jautā datubāzei par nodarbībām un saskaita rezervācijas katrai, tad atbild.
- Apmeklētājs pieskaras Rezervēt. Priekšējā daļa nosūta: „rezervē nodarbību 42 šim pieteikušamies cilvēkam”.
- Backend pārbauda: vai šī persona patiešām ir pieteikusies? Vai nodarbība ir pilna? Vai viņi to jau nav rezervējuši? Tikai tad, ja viss kārtībā, tas ieraksta jaunu rezervācijas rindu datubāzē.
- Backend atbild „rezervēts”, un priekšējā daļa rāda apstiprinājumu.
- Vēlāk studijas īpašnieks pieslēdzas un redz nodarbību sarakstu. Backend pārbauda, vai viņa ir administrators, pirms rāda visu dalībnieku vārdus.
Tagad iedomājieties, ka tas būtu izveidots tikai priekšējā daļā. Grafiks varētu parādīties, un poga Rezervēt varētu rādīt skaistu ķeksīti, taču rezervācija pazustu pēc lapas pārlādēšanas, skaitītājs „palikušas vietas” būtu nepareizs visiem citiem, un īpašnieks to nekad neredzētu. 4. solis — pārbaudes — pilnībā trūktu. Tā ir praktiskā atšķirība.
Galvenie termini
- Priekšējā daļa (client side): daļa, kas darbojas pārlūkprogrammā.
- Backend (server side): daļa, kas darbojas serverī. To sauc arī par API serveri.
- Datubāze: vieta, kur dati glabājas sakārtoti. Skatiet kas ir datubāze.
- API: pieprasījumu saraksts, ko backend pieņem no priekšējās daļas vai citām programmām.
- Autentifikācija: pārbaude, kas ir persona (pieteikšanās). Autorizācija: pārbaude, ko tā drīkst darīt.
- Izvietošana (deployment): visu slāņu novietošana serveros, lai sabiedrība tos varētu lietot.
- Monolīts pret servisiem: viena programma, kas dara visu, pret vairākām mazākām (piemēram, vietne un atsevišķs API). Abas ir pilna steka.
Biežākās kļūdas un nepareizi priekšstati
- „Izskatās gatavs, tātad ir gatavs.” Paraugdati un strādājoši izskatīga poga nav tas pats, kas saglabāti dati. Pārlādējiet lapu, atveriet to privātajā logā un pārbaudiet, vai dati joprojām ir.
- Noteikumu ievietošana priekšējā daļā. Pogas paslēpšana nav drošība. Ja backend nepārbauda, ikviens, kas zina pieprasījumu, var to nosūtīt.
- Slepenu atslēgu ievietošana priekšējā daļā. Maksājumu vai AI pakalpojuma sniedzēja atslēga pārlūkprogrammas kodā ir salasāma katram apmeklētājam. Atslēgas pieder backend, vides mainīgajos — skatiet vides mainīgos un noslēpumus.
- Domāšana, ka pilns stack nozīmē sarežģītu. Maza pilna steka lietotne var būt dažus ekrāni, dažus backend maršrutus un trīs datubāzes tabulas. Tas ir slāņu apraksts, nevis izmērs.
- Domāšana, ka visas tehnoloģijas jāizvēlas pašam. Jebkurš saprātīgs, plaši lietots stack der pirmajai versijai. Svarīgāks ir skaidrs datu un noteikumu apraksts.
Ko prasīt no sava AI veidotāja
Apraksties lietotni trijos slāņos, pat ja tos nenosauc:
- Dati: „Saglabā nodarbības (nosaukums, laiks, ietilpība) un rezervācijas (nodarbība, persona, rezervēšanas laiks) datubāzē.”
- Noteikumi: „Nodarbību nevar rezervēt virs ietilpības. Persona var rezervēt nodarbību tikai vienreiz. Tikai administratori var redzēt, kas rezervēja.”
- Ekrāni: „Nedēļas grafiks, rezervācijas apstiprinājums, administratora lapa ar rezervācijām pa nodarbībām.”
- Pārbaudes: „Ievieso šos noteikumus serverī, ne tikai lapā. Glabā visas API atslēgas serverī.”
Pēc tam testējiet kā skeptiķis: pārlādējiet, pieslēdzieties kā divas dažādas personas, mēģiniet redzēt datus, ko nedrīkstat. Ceļvedis par lietotnes veidošanu ar AI izstāsta šo ciklu pa soļiem.
Pilna steka lietotnes Mythex
Mythex veido pilna steka tīmekļa lietotnes no apraksta tērzēšanā. Pēc noklusējuma jaunajai lietotnei ir React un TypeScript priekšējā daļa; kad lietotnei jāsaglabā dati, Mythex projektam pievieno īpašu Postgres datubāzi, un blakus vietnei varat pieprasīt atsevišķu API serveri (piemēram, Python, Node, C# vai Java). Viss darbojas kopā tiešraides priekšskatījumā un tiek publicēts publiskā URL. Dokumentācijas lapa par vairāku servisu lietotnēm parāda, kā vietne un API tiek priekšskatīti un publicēti kopā, un lapa pilna steka lietotņu veidotājs piedāvā sākumpunktus.
Jautājumi
Ko nozīmē pilns stack?
Pilns stack nozīmē, ka lietotnē ir visi slāņi, kas tai vajadzīgi, lai darbotos pašai: priekšējā daļa, ko cilvēki redz un klikšķina, backend, kas darbojas serverī un piemēro noteikumus, un datubāze, kas glabā datus. Pilna steka izstrādātājs ir tas, kurš var strādāt ar visiem šiem slāņiem.
Vai vietne ir pilna steka lietotne?
Ne vienmēr. Informatīva vietne ar fiksētām lapām ir tikai priekšējā daļa. Tā kļūst par pilna steka, kad vajag serveri un datubāzi, piemēram, lai cilvēki varētu reģistrēties, saglabāt pasūtījumus vai redzēt savus datus.
Vai man vajag pilna steka lietotni vai tikai priekšējo daļu?
Ja jūsu lietotnei starp apmeklējumiem jāatceras kaut kas, dati jāglabā privāti katram lietotājam, jāpieņem maksājumi vai jāsazinās ar citiem pakalpojumiem ar slepenām atslēgām, jums vajag backend un datubāzi, tātad tā ir pilna steka. Ja tā tikai rāda informāciju, pietiek ar priekšējo daļu.
Vai AI var izveidot pilna steka lietotni?
Jā. AI lietotņu veidotāji var uzrakstīt priekšējo daļu, backend un datubāzes tabulas no apraksta vienkāršā valodā un palaist tās kopā priekšskatījumā. Jums joprojām jāapraksta dati un tas, kas tos drīkst redzēt, kā arī jātestē rezultāts.