Hvað er full-stack app? Einföld útskýring
Full-stack app er app sem inniheldur öll lögin sem það þarf til að virka: framendann sem fólk sér og smellir á, bakendann sem keyrir á netþjóni og framfylgir reglunum, og gagnagrunninn sem man allt. Verkefnalisti sem vistar verkefnin þín, leyfir þér að skrá þig inn úr hvaða tæki sem er og sýnir engum öðrum listann þinn er full-stack. Ein síða sem sýnir aðeins opnunartímana þína er það ekki.
„Stack“ þýðir einfaldlega lögin af tækni sem eru lögð hvert ofan á annað. „Full“ þýðir að þau eru öll til staðar.
Af hverju þetta skiptir máli þegar smíðað er með gervigreind
Þegar þú lýsir appi fyrir smíðatóli fyrir gervigreind ákvarða orðin sem þú notar hvaða lög það smíðar. „Gerðu síðu sem sýnir matseðilinn okkar“ skilar framenda. „Leyfðu viðskiptavinum að panta af matseðlinum og leyfðu eldhúsinu að sjá nýjar pantanir“ þarf öll þrjú lögin, því pantanir þurfa að vistast, deilast á milli tveggja tegunda notenda og haldast einkareknar.
Það hjálpar þér á þrjá vegu að vita muninn:
- Þú biður um rétta hlutinn. Ef þú vilt að gögn séu vistuð skaltu segja það. Smíðatól sem gerir aðeins framendann lítur út fyrir að vera tilbúið en gleymir öllu við endurhleðslu.
- Þú sérð gervi-tilbúið útlit. Kynning með sýnigögnum getur litið alveg eins út og virkt app. Ef þú þekkir lögin geturðu athugað að gögnin fari raunverulega eitthvert.
- Þú skilur rekstrarkostnaðinn. Framendi einn og sér má bjóða sem kyrrstæðar skrár. Bakendi og gagnagrunnur eru forrit sem keyra á netþjónum, og þar kemur mestur hluti hýsingarkostnaðar.
Hliðstæða úr daglegu lífi: veitingastaður
Hugsaðu þér veitingastað.
- Salurinn er framendinn. Matseðlar, borð og þjónsblaðið. Hann er það sem gestir sjá og á að vera þægilegur og auðveldur í notkun.
- Eldhúsið er bakendinn. Gestir fara aldrei þangað inn. Þar eru pantanir teknar, athugað hvort rétturinn sé til, eldað og hafnað undarlegum beiðnum. Reglurnar búa hér.
- Búrið og pöntunarbókin eru gagnagrunnurinn. Þau geyma það sem er til og það sem hefur verið pantað, svo ekkert gleymist þegar vaktaskipti verða.
Veitingastaður með aðeins sal getur sýnt þér fínan matseðil, en þú fengið engan mat. Það er framendi-eingöngu app sem þykist vera full-stack.
Lögin þrjú nánar
| Lag | Keyrir hvar | Hlutverk | Dæmigerð tækni |
|---|---|---|---|
| Framendi | Í vafra gestsins | Sýna skjái, taka við innslætti, líða hratt | HTML, CSS, JavaScript, oft React |
| Bakendi | Á netþjóni sem þú stjórnar | Athuga heimildir, beita viðskiptareglum, kalla á aðra þjónustu með leynilyklum | Node.js, Python, C#, Java og fleiri |
| Gagnagrunnur | Á netþjóni, við hlið bakendans | Geyma og finna gögn á áreiðanlegan hátt | Postgres, MySQL, SQLite |
Lögin tala saman í föstri röð. Framendinn biður bakendann um eitthvað í gegnum API, sem er skilgreint safn beiðna sem bakendinn tekur við. Bakendinn athugar beiðnina, les eða skrifar í gagnagrunninn og sendir svar til baka. Framendinn talar aldrei beint við gagnagrunninn.
Þessi röð er mikilvægasta öryggishugmyndin í öllum staflanum. Allt í framendanum getur gesturinn lesið og breytt, því það keyrir í tækinu hans. Þess vegna verða reglurnar, eins og „aðeins eigandinn má sjá þennan reikning“ eða „afsláttarkóða má nota einu sinni“, að vera framfylgdar í bakendanum. Frekari upplýsingar um skiptinguna eru í framenda og bakenda.
Vinnudæmi: bókunarapp fyrir jógatíma
Segjum að þú reknir jógastúdíó og viljir að fólk bóki tíma á netinu.
Það sem gesturinn gerir: opnar síðuna, sér tíma vikunnar, smellir á einn, skráir sig inn og bókar sæti.
Það sem gerist undir yfirborðinu:
- Framendinn sýnir stundaskrána. Til að fylla hana biður hann bakendann: „Hvaða tímar eru í þessari viku og hvað eru mörg sæti laus?“
- Bakendinn biður gagnagrunninn um tímana og telur bókanir fyrir hvern, og svarar síðan.
- Gesturinn ýtir á Bóka. Framendinn sendir „bóka tíma 42 fyrir þennan innskráða einstakling“.
- Bakendinn athugar: er þessi manneskja örugglega innskráð? Er tíminn fullur? Hefur hún þegar bókað hann? Aðeins ef allt er í lagi skrifar hann nýja bókunarlínu í gagnagrunninn.
- Bakendinn svarar „bókað“ og framendinn sýnir staðfestingu.
- Síðar skráir eigandi stúdíósins sig inn og sér tímalistann. Bakendinn athugar að hún sé stjórnandi áður en hann sýnir nöfn allra.
Ímyndaðu þér nú að þetta hefði verið smíðað með aðeins framenda. Stundaskráin gæti birst og Bóka-hnappurinn gæti sýnt fallegt hak, en bókunin myndi hverfa við endurhleðslu, talan „laus sæti“ yrði röng fyrir alla aðra og eigandinn myndi aldrei sjá hana. Skref 4, athuganirnar, myndu vanta alveg. Það er hagnýti munurinn.
Lykilhugtök
- Framendi (client side): hlutinn sem keyrir í vafranum.
- Bakendi (server side): hlutinn sem keyrir á netþjóni. Einnig kallaður API-netþjónn.
- Gagnagrunnur: þar sem gögn eru geymd á skipulegan hátt. Sjá hvað er gagnagrunnur.
- API: listinn yfir beiðnir sem bakendinn tekur við frá framendanum eða öðrum forritum.
- Auðkenning (authentication): að athuga hver einhver er (innskráning). Heimild (authorisation): að athuga hvað viðkomandi má gera.
- Birting (deployment): að setja öll lögin á netþjóna svo almenningur geti notað þau.
- Einlita app eða þjónustur: eitt forrit sem gerir allt, á móti nokkrum minni forritum (til dæmis vefsíðu og sérstöku API). Hvort tveggja er full-stack.
Algeng mistök og misskilningur
- „Það lítur út fyrir að vera tilbúið, svo það er tilbúið.“ Sýnigögn og hnappur sem virðist virka er ekki það sama og vistuð gögn. Endurhladdu síðuna, opnaðu hana í einkagluggi og athugaðu að gögnin séu enn til staðar.
- Að setja reglurnar í framendann. Að fela hnapp er ekki öryggi. Ef bakendinn athugar ekki getur hver sem þekkir beiðnina sent hana.
- Að setja leynilykla í framendann. Greiðslu- eða gervigreindarlykill í vafrakóða er lesanlegur af hverjum gesti. Lyklar eiga heima í bakendanum, í umhverfisbreytum. Sjá umhverfisbreytur og leyndarupplýsingar.
- Að halda að full-stack þýði flókið. Lítið full-stack app getur verið nokkrir skjáir, handfylli af bakendaleiðum og þrjár gagnagrunnstöflur. Það lýsir lögunum, ekki stærðinni.
- Að halda að þú þurfir sjálf/ur að velja alla tækni. Hvaða skynsamlegi og útbreiddi staflinn sem er hentar í fyrstu útgáfu. Það sem skiptir meira máli er skýr lýsing á gögnunum og reglunum.
Hvað á að biðja gervigreindarsmiðinn þinn um
Lýstu appinu út frá lögunum þremur, jafnvel þótt þú nefnir þau ekki:
- Gögnin: „Vistaðu tíma (heiti, tími, fjöldi sæta) og bókanir (tími, manneskja, bókunartími) í gagnagrunni.“
- Reglurnar: „Ekki er hægt að bóka tíma yfir fjölda sæta. Manneskja getur bókað tíma aðeins einu sinni. Aðeins stjórnendur sjá hver bókaði.“
- Skjáina: „Vikustundaskrá, staðfesting bókunar, stjórnunarsíða sem listar bókanir eftir tíma.“
- Athuganirnar: „Framfylgdu þessum reglum á netþjóninum, ekki aðeins á síðunni. Geymdu API-lykla á netþjóninum.“
Prófaðu síðan eins og efasemdamaður: endurhladdu, skráðu þig inn sem tveir ólíkir einstaklingar og reyndu að sjá gögn sem þú átt ekki að sjá. Leiðbeiningin um að smíða app með gervigreind fer yfir þessa lotu frá upphafi til enda.
Full-stack öpp á Mythex
Mythex smíðar full-stack vefforrit út frá lýsingu í spjalli. Sjálfgefið fær nýtt app React- og TypeScript-framenda. Þegar appið þarf að vista gögn bætir Mythex sérstökum Postgres-gagnagrunni við verkefnið, og þú getur beðið um sérstakan API-netþjón (til dæmis í Python, Node, C# eða Java) samhliða vefsíðunni. Allt keyrir saman í lifandi forskoðun og er birt á opinberri slóð. Skjalasíðan um fjölþjónustuöpp sýnir hvernig vefsíða og API eru forskoðuð og birt saman, og síðan full-stack smíðatól fyrir öpp hefur upphafspunkta.
Spurningar
Hvað þýðir full-stack?
Full-stack þýðir að appið inniheldur öll lögin sem það þarf til að virka sjálfstætt: framendann sem fólk sér og smellir á, bakendann sem keyrir á netþjóni og beitir reglunum, og gagnagrunninn sem geymir gögnin. Full-stack forritari er sá sem getur unnið í öllum þessum lögum.
Er vefsíða full-stack app?
Ekki alltaf. Kynningarsíða með föstum síðum er aðeins framendi. Hún verður full-stack þegar hún þarf netþjón og gagnagrunn, til dæmis til að leyfa fólki að skrá sig, vista pantanir eða sjá sín eigin gögn.
Þarf ég full-stack app eða bara framenda?
Ef appið verður að muna eitthvað á milli heimsókna, halda gögnum persónulegum fyrir hvern notanda, taka við greiðslum eða tala við aðra þjónustu með leynilyklum, þarftu bakenda og gagnagrunn, þannig að það er full-stack. Ef það sýnir aðeins upplýsingar nægir framendi.
Getur gervigreind smíðað full-stack app?
Já. Smíðatól fyrir gervigreindaröpp geta skrifað framendann, bakendann og töflur gagnagrunnsins út frá lýsingu á venjulegu máli, og keyrt þetta saman í forskoðun. Þú þarft samt að lýsa gögnunum og hver má sjá hvað, og prófa niðurstöðuna.