Vodniki

Kako prototip, narejen z umetno inteligenco, spraviti v produkcijo

Da prototip, zgrajen z umetno inteligenco, spravite v produkcijo, zapolnite vrzel med »deluje, ko ga preizkusim« in »deluje tudi, ko ga uporabljajo drugi ljudje«. V praksi to pomeni pet stvari: ob vsaki spremembi preizkusite glavne tokove, zaklenite, kdo lahko vidi in spreminja kaj, poskrbite, da o napakah izveste prej kot vaši uporabniki, podatke varnostno kopirate in dokažete, da jih lahko obnovite, ter ohranite aplikacijo dovolj hitro na telefonu. Nič od tega ne zahteva prepisovanja — gre za kontrolni seznam, ki ga opravite z isto umetno inteligenco, ki je zgradila prototip.

Prototip proti produkciji: kaj se dejansko spremeni

Prototip ima enega previdnega uporabnika: vas. Veste, na katere gumbe pritisniti, vnašate razumne vrednosti, in če nekaj odpove, zmajete z ramo in prosite umetno inteligenco, naj popravi. Produkcija ima veliko nepazljivih uporabnikov, nekaj radovednih in občasno sovražnega. Koda ni treba postati »podjetniška«; treba je obvladati situacije, s katerimi se prototip nikoli ne sreča.

PodročjePrototipProdukcija
PodatkiVzorčne vrstice, enostavno ponastavitiPravi podatki strank, ki jih ne smete izgubiti
UporabnikiVi, prijavljeni kot skrbnikVeliko računov z različnimi dovoljenji
VnosKar vtipkatePrazna polja, ogromne datoteke, nenavadni znaki, skripte
NapakeVidite jih v predogleduZgodijo se, medtem ko spite
SpremembeUredite in pogledateSpremenite, ne da bi pokvarili, na kar se ljudje zanašajo
SkrivnostiVse gre v testni ključŽivi ključi, ki stanejo denar, če uidejo

Preostanek tega vodnika gre skozi vsako vrstico.

1. korak: zamrznite obseg in zapišite glavne tokove

Preden karkoli utrdite, določite, kaj je prva različica. Naštejte tri do šest tokov, ki so najpomembnejši — na primer »registracija, ustvari projekt, povabi sodelavca, plačaj«. Ti postanejo vaša testna skripta, cilji spremljanja in stvari, ki jih preverite po vsaki spremembi.

Vse, kar ni na seznamu, bodisi odrežete bodisi jasno označite kot beta. Štiri zanesljive tokove je veliko lažje narediti kot štirinajst.

2. korak: testirajte kot neznanec, nato naredite ponovljivo

Graditelji z umetno inteligenco so dobri pri kodi, ki deluje na srečni poti. Težave v produkciji pa živijo na nesrečnih poteh. Vsak glavni tok preizkusite z:

  • Slabim vnosom: prazna obvezna polja, ime z 5.000 znaki, e-pošta brez @, negativna količina, datum v preteklosti.
  • Osvežitvami in gumbom nazaj: osvežite sredi blagajne; pritisnite nazaj po oddaji obrazca. Se kaj ustvari dvakrat?
  • Dva zavihka, dva uporabnika: prijavite se z dvema različnima računoma in poskusite odpreti strani drug drugega s spreminjanjem ID-ja v naslovu.
  • Počasno in majhno: zaslon v velikosti telefona in omejena povezava (orodja za razvijalce brskalnika jo lahko simulirajo).
  • Prazna stanja: povsem nov račun brez podatkov. Prototipi so pogosto zgrajeni z vzorčnimi podatki in brez njih izgledajo pokvarjeno.

Nato naredite preverjanje ponovljivo. Vsaj ohranite pisni kontrolni seznam in ga zaženite pred vsako izdajo. Bolje, prosite umetno inteligenco, naj napiše avtomatizirane teste za najpomembnejše tokove:

Dodaj avtomatizirane end-to-end teste za te tokove: registracija z e-pošto, ustvarjanje projekta, povabilo drugega uporabnika in dokončanje plačila v testnem načinu Stripe. Dodaj tudi teste, ki potrdijo, da uporabnik ne more videti ali urejati projekta drugega uporabnika s spreminjanjem naslova.

Testi, ki dokažejo, da uporabnik nečesa ne more narediti, so tisti, ki jih prototipom najpogosteje primanjkuje.

3. korak: osnove varnosti, ki jih prototipi preskočijo

Večina varnostnih težav v aplikacijah, zgrajenih z umetno inteligenco, ni eksotičnih. Gre za manjkajoče preverjanja. Pregledajte ta seznam in si oglejte obsežnejši varnostni kontrolni seznam za aplikacije, zgrajene z umetno inteligenco:

  • Pooblastila na strežniku. Skrivanje gumba ni varnost. Vsaka zahteva, ki bere ali spreminja podatke, mora na strežniku preveriti, ali je prijavljenemu uporabniku dovoljeno. Če vaša aplikacija uporablja podatkovno bazo s pravili na ravni vrstic, preverite, ali so vklopljena in preizkušena.
  • Skrivnosti ven iz brskalnika. Ključi API za plačila, e-pošto ali ponudnike umetne inteligence morajo biti v okoljskih spremenljivkah na strežniku, nikoli v kodi na strani odjemalca. Če ne veste, kaj to pomeni, preberite kaj so okoljske spremenljivke in skrivnosti.
  • Validacija na strežniku. Brskalnik je mogoče obiti, zato ponovite vsako pomembno preverjanje na strežniku.
  • Prijava narejena pravilno. Uporabite dobro preizkušeno knjižnico ali storitev za avtentikacijo, ne ročnega shranjevanja gesel. Naš vodnik za dodajanje prijave v aplikacijo pokrije možnosti.
  • Omejitve hitrosti pri prijavi, registraciji, ponastavitvi gesla in vsem, kar pošilja e-pošto ali kliče plačljiv API.
  • Prijazne napake. Uporabniki naj vidijo »nekaj je šlo narobe«; podrobnosti gredo v vaše dnevnike, ne na zaslon.
  • Zamenjajte vse, kar je uhajalo. Če je bil živi ključ kdaj prilepljen v klepet, v commit ali na posnetek zaslona, ga zamenjajte pri ponudniku.

Poziv, ki pokrije veliko področja naenkrat:

Pregledaj to aplikacijo glede varnosti za produkcijo. Preveri, da vsaka pot API preveri, ali prijavljeni uporabnik lastni zapis, ki ga bere ali spreminja, da skrivni ključi niso poslani v brskalnik, da se vnosi validirajo na strežniku in da sta prijava ter ponastavitev gesla omejena po hitrosti. Pred spremembami najprej izpiši, kaj si našel.

Če najprej zahtevate seznam, lahko vidite težave in se odločite za vrstni red, namesto da prejmete eno ogromno spremembo.

4. korak: vedite, kdaj se pokvari — beleženje in spremljanje

V predogledu vidite napake takoj, ko se zgodijo. V produkciji mora aplikacija to sporočiti vam. Tri plasti, od najcenejše do najkoristnejše:

  1. Dnevniki strežnika. Poskrbite, da se napake beležijo z dovolj konteksta za ponovitev: katera pot, kateri ID uporabnika (ne njegovo geslo ali kartica), kakšna oblika vnosa. Če aplikacija samo izpisuje v konzolo, prosite umetno inteligenco za strukturirano beleženje.
  2. Sledenje napak. Storitev, kot je Sentry ali podobno orodje, zajame izjeme na strani odjemalca in strežnika, jih združi in vam pošlje e-pošto. Za majhno aplikacijo so brezplačni paketi teh storitev pogosto dovolj; preverite trenutne omejitve na njihovih straneh.
  3. Preverjanje razpoložljivosti. Zunanja storitev, ki vsakih nekaj minut naloži vašo domačo stran in eno ključno pot API ter vas opozori, če odpovesta. To ujame težave, zaradi katerih aplikacija sploh ne more beležiti.

Dodajte še eno navado: po vsaki izdaji odprite živo aplikacijo in zaženite kontrolni seznam glavnih tokov na pravem naslovu, ne samo v predogledu.

5. korak: varnostne kopije in pot nazaj

Zaščititi je treba dve različni stvari, ki ju je enostavno zamešati.

  • Koda. Projekt hranite v nadzoru različic, da je mogoče vsako spremembo razveljaviti. Številni graditelji z umetno inteligenco hranijo kontrolne točke vaših datotek; sinhronizacija z repozitorijem Git vam da kopijo tudi zunaj graditelja.
  • Podatki. Povrnitev kode ne povrne podatkovne baze. Slaba migracija ali gumb za brisanje z napako lahko uniči vrstice, ki jih nobena kontrolna točka kode ne bo povrnila.

Za podatke nastavite redne varnostne kopije, shranjene drugje kot na gostovanju aplikacije — za podatkovno bazo Postgres je običajen pristop načrtovan pg_dump na ločeno shrambo, številni upravljani gostitelji baz pa ponujajo samodejne varnostne kopije ali obnovitev do določene točke v času. Nato naredite korak, ki ga večina ljudi preskoči: obnovite varnostno kopijo v pomožno bazo in preverite, da so podatki tam.

Zahtevajte tudi, da umetna inteligenca naredi uničujoča dejanja varnejša: potrditveni korak za brisanje in »mehko brisanje« (označevanje vrstic kot izbrisanih namesto njihovega odstranjevanja) za vse, kar bi uporabniki morda želeli nazaj.

6. korak: zmogljivost, ki zdrži na telefonu

Prototipi se zdijo hitri, ker ste edini uporabnik in je podatkovna množica majhna. Pred lansiranjem:

  • Naložite podatke realne velikosti. Prosite umetno inteligenco, naj napolni nekaj tisoč vrstic in vidi, katere strani se upočasnijo. Seznami običajno potrebujejo paginacijo, podatkovna baza pa indekse na stolpcih, po katerih filtrirate in razvrščate.
  • Skrčite slike. Prevelike slike so najpogostejši razlog, da se stran počasi naloži. Zahtevajte slike, ki so zmanjšane in stisnjene, ter leno nalaganje pod preklopno črto.
  • Izmerite. Zaženite Lighthouse v orodjih za razvijalce v Chromu na živem naslovu v mobilnem načinu. Googlove Core Web Vitals so smiselen cilj: Largest Contentful Paint znotraj 2,5 sekunde, Interaction to Next Paint 200 ms ali manj in Cumulative Layout Shift 0,1 ali manj.
  • Pazite na zamike »prebujanja«. Gostovanje, ki v mirovanju spi, prihrani denar, vendar naredi prvi obisk po tihem obdobju počasnejši. Pri novi aplikaciji je to pogosto dober kompromis; vedite, da se to dogaja.

Stran s projekti je počasna pri 5.000 vrsticah. Dodaj paginacijo na strežniku (25 na stran), dodaj indekse podatkovne baze za stolpce, po katerih filtriramo in razvrščamo, ter pokaži stanje nalaganja, medtem ko se nalaga naslednja stran.

7. korak: osnove delovanja

Nekaj majhnih stvari loči hobi aplikacijo od tiste, ki ji ljudje zaupajo:

  • Domena po meri s HTTPS. Oglejte si kako povezati domeno po meri.
  • Transakcijska e-pošta iz preverjene domene za potrditve registracije in ponastavitve gesla — pokrito v kako pošiljati e-pošto iz aplikacije.
  • Politika zasebnosti in pogoji, ki opisujejo, kaj dejansko zbirate. Ne kopirajte trditev o skladnosti, ki jih niste dosegli.
  • Pot za podporo — tudi nadzorovan e-poštni naslov.
  • Ločeni testni in živi ključi za plačila in e-pošto ter jasna zabeležka, kateri ključ pripada kateremu okolju.

8. korak: čista predaja

Prej ali slej bo na aplikaciji delal nekdo drug: zunanji sodelavec, nov soustanovitelj ali vi čez šest mesecev. Poskrbite, da je to enostavno:

  • README, ki pove, kako jo zagnati, katere okoljske spremenljivke potrebuje (samo imena, nikoli vrednosti) in kako jo objaviti.
  • Kontrolni seznam glavnih tokov in avtomatizirani testi.
  • Kratek zapis arhitekture: front end, back end, podatkovna baza, storitve tretjih oseb in kje je vsaka gostovana.
  • Seznam dostopov: kdo ima skrbniški dostop do domene, gostovanja, podatkovne baze ter računov za plačila in e-pošto. Te račune postavite pod poslovni e-poštni naslov, ne osebnega.
  • Koda v Gitu, po možnosti sinhronizirana z repozitorijem, ki ga imate vi. Če boste morda kasneje selili gostovanje, preberite kako izvoziti aplikacijo, zgrajeno z umetno inteligenco, in jo gostiti sami.

Umetna inteligenca lahko večino tega osnutka napiše namesto vas:

Napiši README za ta projekt za razvijalca, ki ga še ni videl: kaj aplikacija počne, tehnološki sklad, kako jo zagnati lokalno, vsako okoljsko spremenljivko, ki jo bere (samo imena in namen), kako je organizirana shema podatkovne baze in kako jo objaviti.

Kontrolni seznam pripravljenosti za produkcijo

  • Glavni tokovi zapisani in preizkušeni, vključno z »ne more dostopati do tujih podatkov«
  • Pooblastila in validacija na strežniku na vsaki poti s podatki
  • Brez skrivnih ključev v kodi na strani odjemalca; uhajajoči ključi zamenjani
  • Omejitve hitrosti pri prijavi in pri vsem, kar stane denar
  • Sledenje napakam in opozorila o razpoložljivosti usmerjena v nabiralnik, ki ga berete
  • Varnostne kopije podatkovne baze zunaj gostovanja aplikacije, z enim uspešnim preizkusnim obnovitvijo
  • Paginacija in indeksi preverjeni z realističnimi podatki
  • Domena po meri, preverjena domena za pošiljanje, politika zasebnosti
  • README in seznam dostopov za naslednjega v vrsti

Delo z Mythexom

Če ste prototip zgradili v Mythexu, je večina teh korakov pozivov v istem projektu. Vtipkajte /test in Mythex klikne skozi živi predogled kot uporabnik ter poroča o pokvarjenih tokovih — glejte Testiranje aplikacij. Ključi gredo v skrivnosti projekta, ne v klepet; vsak uspešen odgovor agenta shrani kontrolno točko vaših datotek, na katero se lahko vrnete, objava pa vam da živ naslov, pri čemer se gostovanje in podatkovna baza obračunavata iz istega kreditnega stanja (omejitve gostovanja pojasnjujejo, kako aplikacije in baze zaspijo in se zbudijo). Kontrolne točke zajemajo datoteke, ne vrstic baze, zato še vedno načrtujte varnostne kopije podatkov. Na paketu Pro lahko povežete domeno po meri ali izvozite kodo ali jo sinhronizirate z lastnim repozitorijem GitHub za predajo.

Vprašanja

Kakšna je razlika med prototipom in aplikacijo v produkciji?

Prototip dokaže, da ideja deluje, če ga uporabljate previdno. Aplikacija v produkciji deluje tudi takrat, ko jo neznanci uporabljajo nepazljivo: ščiti njihove podatke, prenese slab vnos, pove vam, kdaj se pokvari, in jo je mogoče obnoviti, če gre kaj narobe.

Ali se lahko aplikacija, zgrajena z umetno inteligenco, uporablja v produkciji?

Da, če jo preverite tako, kot bi preverili katero koli drugo aplikacijo. Koda, ki jo napiše umetna inteligenca, je običajna koda; kar pogosto izpusti, če tega ne zahtevate, pa je neprivlačno delo — preverjanje dostopa, validacija vnosa, obravnava napak, beleženje in varnostne kopije.

Ali pred lansiranjem potrebujem avtomatizirane teste?

Vsaj ponovljivo preverjanje glavnih tokov pred vsako izdajo potrebujete. Pri majhni aplikaciji je to lahko pisni seznam klikov; ko aplikacija raste, prosite umetno inteligenco, naj doda avtomatizirane teste za tokove, ki vam prinašajo ali kradejo denar.

Kako naredim varnostno kopijo podatkovne baze aplikacije?

Redno izvažajte podatkovno bazo (za Postgres pg_dump) in jo shranjujte drugje, ne na gostovanju same aplikacije. Nato vsaj enkrat preizkusite obnovitev, ker je neprenizkušena varnostna kopija zgolj upanje.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)