Prepričan sem, da ste že slišali za proge ali uporabili aplikacijo z njimi. Ste se kdaj vprašali, zakaj so črte tako priljubljene in močne? No, jasno je, da si aplikacije želijo čim več vaše pozornosti, toda poleg tega, ali ste vedeli, da ko je priljubljena učna aplikacija Duolingo predstavila pripomočke za iOS za prikaz prog, se je predanost uporabnikov povečala za 60 %. Šestdeset odstotkov je ogromen premik v vedenju in prikazuje, kako je mogoče vzorce »niz« uporabiti za povečanje angažiranosti in spodbujanje uporabe. V najbolj osnovni obliki je niz število zaporednih dni, ko uporabnik opravi določeno dejavnost. Nekateri ljudje to opredeljujejo tudi kot »igrificirano« navado ali meritev, namenjeno spodbujanju dosledne uporabe. Toda proge presegajo le meritev ali zapis v aplikaciji; je bolj psihološko kot to. Na človeške instinkte je enostavno vplivati ​​s pravimi dejavniki. Poglejte te tri dejavnike: napredek, ponos in strah pred zamudo (običajno imenovan FOMO). Kaj imajo vsi ti skupnega? Napor. Več truda kot v nekaj vložiš, bolj to oblikuje tvojo identiteto in tako se v svetu vedenjske psihologije prepletajo črte. Zdaj z veliko močjo prihaja velika odgovornost in zaradi tega obstaja temna plat prog. V tem članku se bomo poglobili v psihologijo, UX in načela oblikovanja, ki stojijo za izgradnjo učinkovitega sistema nizov. Ogledali si bomo (1) zakaj se naši možgani skoraj instinktivno odzivajo na aktivnost prog, (2) kako oblikovati proge na načine, ki resnično pomagajo uporabnikom, in (3) tehnično delo, ki je vključeno v ustvarjanje vzorca prog. Psihologija v ozadju Da bi oblikovali in zgradili učinkovit sistem prog, moramo razumeti, kako je usklajen z našimi možgani. Na primer, kaj ga naredi tako učinkovitega do te mere, da čutimo tako intenzivno predanost zaščiti svojih prog? Obstajajo tri zanimiva, dobro dokumentirana psihološka načela, ki podpirajo, zakaj so proge tako močne in povzročajo odvisnost. Odpor do izgube To je verjetno najmočnejša sila v ozadju nizov. To pravim, ker se temu v življenju večinoma skoraj ne moreš izogniti. Pomislite na to takole: če vam prijatelj da 100 dolarjev, bi bili srečni. Toda če bi izgubili 100 dolarjev iz denarnice, bi to bolelo veliko bolj. Čustvena teža teh situacij ni enaka. Izguba boli veliko bolj kot pridobitev, ki je prijetna. Pojdimo naprej in povejmo, da vam dam 100 $ in vas prosim, da igrate igre na srečo. Obstaja 50-odstotna možnost, da osvojite dodatnih 100 $, in 50-odstotna možnost, da izgubite prvotnih 100 $. Bi ga vzeli? Jaz ne bi. Večina ljudi ne bi. To je odpor do izgube. Če dobro pomislite, je logično, razumljivo, človeško. Koncept, ki stoji za averzijo do izgube, je, da bolečino ob izgubi nečesa občutimo dvakrat bolj kot užitek ob pridobitvi nečesa enake vrednosti. V psihološkem smislu se izguba zadrži bolj kot dobiček. Verjetno vidite, kako je to povezano s črtami. Za ustvarjanje opazne črte je potreben napor; ko niz raste, začne motivacija za njim bledeti; ali natančneje, začne postajati drugotnega pomena. Tukaj je primer: Recimo, da ima vaš prijatelj tridnevni niz zapiranja »Move Rings« na svoji uri Apple Watch. Poleg tega, da želijo doseči svoj cilj in biti dosledni, nimajo skoraj ničesar izgubiti. Hkrati pa imate impresiven 219-dnevni niz. Obstaja velika verjetnost, da ste ujeti zaradi strahu, da bi ga izgubili. Najverjetneje v tem trenutku ne razmišljate o dosežku; bolj gre za zaščito vašega vloženega truda in to je odpor do izgube. Duolingo pojasnjuje, kako nestrpnost do izgube prispeva k temu, da uporabnik ne želi prekiniti dolgega niza, tudi v najbolj lenih dneh. Na nek način se lahko niz spremeni v navado, ko se naseli odpor do izgube. Foggov vedenjski model (B = MAP) Zdaj, ko razumemo strah pred izgubo truda, vloženega v daljše nize, je drugo vprašanje: Kaj nas prisili, da to stvar sploh naredimo, dan za dnem, še preden niz postane velik? To je tisto, o čemer govori Fogg Behavior Model. Je razmeroma preprosto. Vedenje (B) se pojavi le, ko se trije dejavniki – Motivacija (M), Sposobnost (A) in Poziv (P) – uskladijo v istem trenutku. Tako je enačba B=MAP. Če kateri koli od teh dejavnikov, četudi eden, v tistem trenutku manjka, se vedenje ne bo zgodilo. Torej, da bi bil sistem prog učinkovit in se ponavlja, morajo biti prisotni vsi trije dejavniki: Motivacija je krhka in ni nekaj, kar je stalno prisotno. So dnevi, ko sinagnjen k učenju španščine, in dneve ne čutiš niti trohice volje za učenje jezika. Motivacija sama po sebi za ustvarjanje navade je nezanesljiva in izgubljena bitka že od prvega dne. Sposobnost Za kompenzacijo omejitev motivacije je sposobnost kritična. V tem kontekstu sposobnost pomeni enostavnost delovanja, tj. trud je tako enostaven, da je nerealno reči, da ni mogoč. Večina aplikacij to namerno uporablja. Apple Fitness potrebuje samo eno minuto v eni uri, da si prislužite kljukico pri doseganju cilja Stand. Duolingo potrebuje le eno dokončano lekcijo. Te naloge ne zahtevajo toliko truda. Ovira je tako nizka, da zmorete tudi v najhujših dneh. Toda skupna prizadevanja neprekinjenega niza so tista, kjer začne ideja o izgubi tega niza. Poziv To je tisto, kar dopolnjuje enačbo. Ljudje smo po naravi pozabljivi, tako da, da, sposobnosti nas lahko pripeljejo do 90 %. Toda poziv nas opomni, naj ukrepamo. Proge so po zasnovi obstojne, zato je treba uporabnike nenehno opozarjati, naj ukrepajo. Da bi ugotovil, kako močan je lahko poziv, je Duolingo opravil A/B test, da bi ugotovil, ali majhna rdeča značka na ikoni aplikacije poveča dosledno uporabo. Ustvaril je 6-odstotno povečanje števila dnevno aktivnih uporabnikov. Samo rdeča značka. Omejitve modela Ob vsem tem je Foggov model omejen, saj so kritiki in sodobne raziskave opazili, da zasnova, ki se preveč opira na pozive, kot so agresivna obvestila, tvega duševno utrujenost. Nenehna obvestila in nadure lahko povzročijo opustitev uporabnikov. Torej, pazi na to. Zeigarnikov učinek Kako se počutite, ko pustite nalogo projekta na pol opravljeno? To veliko ljudi razjezi, saj nedokončane naloge zasedejo več mentalnega prostora kot stvari, ki jih dokončamo. Ko je nekaj narejeno in ni več, na to ponavadi pozabimo. Ko nekaj ostane neopravljeno, nas to teži. Ravno zato digitalni izdelki uporabljajo umetne kazalnike napredka, kot je Upworkova vrstica dokončanja profila, da uporabniku sporočijo, da je njegov profil dokončan samo »60 %«. Uporabnika spodbudi, da dokonča, kar je začel.

Poglejmo še en primer. V aplikaciji s seznamom opravil imate pet nalog in na koncu dneva označite le štiri kot opravljene. Mnogi od nas se bodo zaradi te ene nedokončane naloge počutili neizpolnjene. To je Zeigarnikov učinek. Učinek Zeigarnik je dokazal psiholog Bluma Zeigarnik, ki je opisal, da smo nagnjeni k temu, da nedokončane naloge ohranjamo aktivne v našem spominu dlje kot dokončane. Vzorec črt se seveda vključi v to pri oblikovanju UX. Recimo, da ste na 63. dan niza učenja. Na tej točki ste v stalnem vzorcu nedokončanega posla. Vaši možgani bi redkokdaj pozabili na to, saj sedi v ozadju vaših misli. Na tej točki vaši možgani postanejo tisti, ki vam pošiljajo obvestila. Ko združite te psihološke sile, začnete zares razumeti, zakaj proge niso samo običajna funkcija aplikacije; sposobni so preoblikovati človeško vedenje. Toda nekje na poti – ne morem natančno reči, kdaj, saj je za vsakogar drugače – stvari dosežejo točko, ko se niz premakne iz »zabave« v nekaj, za kar menite, da si ne morete privoščiti izgube. Nočete, da gre 58 dni truda v nič, kajne? To je tisto, zaradi česar je sistem prog učinkovit. Če so narejene pravilno, proge pomagajo uporabnikom zgraditi osupljive navade, ki dosegajo cilj. To je lahko vsakodnevno branje ali redno obiskovanje telovadnice. Ta ponavljajoča se dejanja (včasih majhna) se sčasoma povečajo in postanejo očitna v našem vsakdanjem življenju. Toda vsak kovanec ima dve plati. Tanka meja med navado in prisilo Če spremljate, lahko že ugotovite, da imajo sistemi črt temno stran. Pri oblikovanju navad gre za doslednost s ponavljajočim se ciljem. Prisila pa je dosledno delo na cilju, ki ni več potreben, a se ga vztraja zaradi strahu ali pritiska. Je kot britev tanka linija. Vsako jutro si brez razmišljanja umivate zobe; je avtomatsko in instinktivno, z jasnim ciljem dobrega dihanja. To je niz, ki tvori dobro navado. Sistem etičnega niza daje uporabnikom prostor za dihanje. Če iz nekega razloga ne ščetkate zjutraj, lahko ščetkate opoldne. Nepopolnost je dovoljena brez strahu pred izgubo dolgega truda. Prisila gre po nasprotni poti, pri čemer vas zaradi niza vznemirjajo, se počutite krive ali celo izčrpane, včasih pa se vam zdi, da kljub vsemu niste dosegli ničesar.delo. Ne ukrepate zato, ker bi tako želeli, ampak zato, ker se podzavestno bojite, da bi se vaš napredek ponastavil na nič. Nekdo je to celo odlično opisal: "Čutil sem, da goljufam, a mi preprosto ni bilo mar. Brez svoje žilice sem nič". To kaže na skrajno zadrževanje posameznika. Do te mere, da uporabniki svojo lastno vrednost začnejo povezovati s poljubno metriko in ne s prvotnim ciljem ali razlogom, zaradi katerega so sploh začeli niz. Niz postane to, kdo so, ne le to, kar počnejo. Dobro zasnovan etični sistem bi moral uporabnika čutiti kot spodbudo, ne kot pritisk ali obveznost. To je povezano z ravnovesjem notranje in zunanje motivacije. Zunanja motivacija (zunanje nagrade, izogibanje kaznovanju) bi lahko spodbudila uporabnike, vendar je notranja motivacija (opravljanje naloge za osebni cilj, kot je učenje španščine, ker resnično želite komunicirati z ljubljeno osebo) močnejša za dolgoročno sodelovanje. Dober sistem bi moral težiti k notranji motivaciji s previdno uporabo ekstrinzičnih elementov, tj. opominjati uporabnike, kako daleč so prišli, ne pa jim groziti, kaj lahko izgubijo. Še enkrat, to je tanka linija. Preprost preizkus pri oblikovanju sistema nizov je, da si dejansko vzamete nekaj časa in razmislite, ali vaši izdelki zaslužijo s prodajo rešitev za tesnobo, ki jih je ustvaril vaš izdelek. Če da, obstaja velika verjetnost, da izkoriščate uporabnike. Naslednje vprašanje torej postane, če se odločim za uporabo streak, kako naj ga oblikujem na način, ki bo uporabnikom resnično pomagal doseči njihove cilje? UX dobre zasnove sistema Streak Verjamem, da je to kraj, kjer večina projektov bodisi ustvari učinkovit sistem prog ali ga popolnoma pokvari. Oglejmo si nekaj načel UX dobrega oblikovanja nizov. Naj bo brez napora To ste verjetno že slišali, morda iz knjig, kot je Atomic Habits, vendar je vredno omeniti, da je eden najlažjih načinov za oblikovanje navad tako, da naredite dejanje majhno in enostavno. To je podobno faktorju sposobnosti, o katerem smo razpravljali iz Foggovega vedenjskega modela. Prvo pravilo kakršnega koli načrtovanja nizov bi moralo biti zahtevano dejanje čim manjše, kot je možno, hkrati pa doseganje napredka. Če vsakodnevno dejanje zahteva moč volje, da ga dokončate, to dejanje ne bo preteklo pet dni. Zakaj? Ne moreš biti motiviran pet dni zapored. Primer: če uporabljate aplikacijo za meditacijo, vam ni treba prisiliti uporabnikov, da gredo skozi 20-minutno sejo samo za ohranitev niza. Namesto tega poskusite z eno minuto, morda celo z nekaj tako majhnimi, kot je trideset sekund. Kot pravi pregovor, majhne kapljice vode naredijo mogočen ocean). Majhni napori se s časom sestavijo v velike dosežke. To bi moral biti cilj: odpraviti trenja, zlasti ko je trenutek lahko težek. Ko so uporabniki pod stresom ali preobremenjeni, jim dajte vedeti, da že samo pojavljanje, tudi za nekaj sekund, šteje kot trud. Zagotovite jasne vizualne povratne informacije Ljudje smo po naravi vizualni. Večinoma moramo nekaj videti, da bi verjeli; obstaja potreba po vizualizaciji stvari, da bi jih bolje razumeli in stvari postavili v perspektivo. Zato vzorci prog pogosto uporabljajo vizualne elemente, kot so grafi, kljukice, obroči napredka in mreže, za vizualizacijo napora. Oglejte si graf prispevkov GitHub. Gre za preprosto vizualizacijo doslednosti. Vendar ga razvijalci vdihavajo kot kisik.

Ključno je, da se sistem prog ne zdi abstrakten. Moralo bi se počutiti resnično in zasluženo. Na primer, Duolingo in Applovi fitnes obroči za dejavnosti uporabljajo čiste zasnove animacije ob zaključku niza, GitHub pa prikazuje zgodovinske podatke o doslednosti uporabnika skozi čas.

Uporabite dober čas Prej sem omenil, da smo ljudje po naravi na splošno pozabljivi in da lahko pozivi pomagajo ohranjati zagon naprej. Brez pozivov večina novih uporabnikov pozabi nadaljevati. Življenje lahko postane zaposleno, motivacija izgine in stvari se zgodijo. Tudi dolgoletni uporabniki imajo koristi od pozivov, čeprav so večinoma že zaklenjeni v zanki navad. Kljub temu lahko tudi najbolj predana oseba slučajno zamudi kakšen dan. Vaš sistem nizov vsekakor potrebuje opomnike. Najpogosteje uporabljeni hitri opomniki so potisna obvestila. Pri delu s potisnimi obvestili je čas resnično pomemben. Pomembna je tudi vrsta aplikacije. Pošiljanje obvestila ob 9. uri z napisom »Danes še niste vadili« je čudno za učno aplikacijo, saj imajo mnogi čez dan stvari, ki jih morajo opraviti, preden sploh pomislijo na dokončanje lekcije. Če govorimo o aplikaciji za fitnes, pa jeje razumno in morda celo pričakovati, da ga bomo opomnili prej čez dan. Potisna obvestila se močno razlikujejo glede na kategorijo aplikacije. Aplikacije za fitnes, na primer, opazijo večjo angažiranost z zgodnjimi jutranjimi obvestili (7–8 zjutraj), medtem ko lahko aplikacije za produktivnost delujejo bolje zgodaj opoldne. Ključno je, da A/B preizkusite časovno razporeditev vaše aplikacije na podlagi vedenja vaših uporabnikov, namesto da predvidevate, da so stvari enake za vse. Kar deluje za aplikacijo za meditacijo, morda ne bo delovalo za sledilnik kodiranja. Druge metode pozivanja so rdeče pike na ikoni aplikacije in celo pripomočki aplikacije. Študije so različne, vendar povprečna oseba odklene svojo napravo med 50-150-krat na dan (PDF). Če uporabnik vsakič, ko odklene svoj telefon, vidi rdečo piko na aplikaciji ali pripomočku, ki označuje trenutni niz, to poveča zavezanost. Samo ne pretiravajte; poziv naj služi kot opomnik, ne nagajanje. Praznujte mejnike Sistem nizov bi moral poskušati praznovati mejnike, da bi znova obudil čustva, zlasti pri uporabnikih, ki so globoko v nizu. Ko uporabnik doseže 7. dan, 30. dan, 50. dan, 100. dan, 365. dan, bi morali iz tega narediti veliko. Priznajte dosežke — zlasti za dolgoletne uporabnike.

Kot smo videli prej, je Duolingo to ugotovil in implementiral animirano grafiko, ki praznuje mejnike s konfeti. Nekatere platforme dajejo celo znatne dodatne nagrade, ki potrjujejo trud uporabnikov. In to je lahko koristno za aplikacije, tako da uporabniki običajno svoje mejnike javno delijo na družbenih medijih. Druga prednost je pričakovanje, ki pride pred doseganjem mejnikov. Ne gre le za neskončno ohranjanje niza; uporabniki imajo česa pričakovati. Uporabite mehanizme milosti Življenje je nepredvidljivo. Ljudje se zamotijo. Vsak dober sistem prog mora pričakovati nepopolnost. Ena največjih psiholoških groženj sistemu nizov je trda ponastavitev na nič po samo enem zamujenem dnevu. "Etični" sistem nizov bi moral uporabniku zagotoviti nekaj ohlapnosti. Recimo, da imate 90-dnevni niz učenja šaha. Dosleden si bil dobre tri mesece in nekega dne ti med potovanjem odpove telefon in kar tako 90 postane 0 — vse, ves ta trud se izbriše in napredek izgine. Uporabnik je lahko popolnoma uničen. Misel, da bi ga obnovili iz nič, je tako demoralizirajoča, da se trud ne splača. V najslabšem primeru lahko uporabnik opusti aplikacijo, potem ko se počuti kot neuspeh. Razmislite o dodajanju mehanizma »milosti« v sistem prog:

Streak FreezeOmogoči uporabnikom, da namerno zamudijo dan brez kazni. Dodaten čas Dovolite nekaj ur (2–3) po običajnem roku, preden sprožite ponastavitev. Modeli razpada Namesto strojne ponastavitve se niz zmanjša za majhno količino, na primer 10 dni se odšteje od niza na zamujeni dan.

Uporabite spodbuden ton Primerjajmo dve sporočili, prikazani uporabnikom, ko se niz prekine:

"Izgubili ste 42-dnevni niz. Začnite znova." "Pojavili ste se 42 dni zapored. To je neverjeten napredek! Bi poskusili še enkrat?"

Oba posredujeta iste informacije, vendar je čustveni učinek drugačen. Prvo sporočilo bi najverjetneje povzročilo, da se je uporabnik počutil demoraliziranega in povzročilo, da bi odnehal. Drugo sporočilo slavi že doseženo in uporabnika nežno spodbuja k ponovnemu poskusu. Izzivi oblikovanja sistemov Streak Preden se lotimo tehničnih posebnosti izdelave streak sistema, se morate zavedati izzivov, s katerimi se lahko soočite. Stvari se lahko zapletejo, kot morda pričakujete. Ravnanje s časovnimi pasovi Obstaja razlog, zakaj je rokovanje z uro in datumom med najtežjimi koncepti, s katerimi se ukvarjajo razvijalci. Upoštevati je treba oblikovanje, internacionalizacijo in še veliko več. Naj vas vprašam naslednje: kaj šteje kot dan? Vemo, da svet deluje v različnih časovnih pasovih, in kot da to ni dovolj, imajo nekatere regije poletni čas (DST), ki se izvaja dvakrat letno. Kje sploh začnete obravnavati te robne primere? Kaj šteje za "začetek" jutrišnjega dne? Nekateri razvijalci se poskušajo temu izogniti z uporabo enega osrednjega časovnega pasu, kot je UTC. Pri nekaterih uporabnikih bi to prineslo pravilne rezultate, pri nekaterih pa bi se lahko izklopilo za uro, dve uri ali več. Ta nedoslednost uničuje uporabniško izkušnjo. Uporabnikom je manj mar, kako ravnate s časom v zakulisju; vse, kar pričakujejo, je, da če izvedejo akcijo v nizu ob 23.40, se mora registrirati točno ob tej uri v njihovem kontekstu. »En dan« bi morali definirati glede na uporabnikov lokalni časovni pas, ne glede na čas strežnika. Seveda lahko pomirišusmerite in ponastavite nize globalno za vse uporabnike ob polnoči po UTC, vendar ustvarjate nepravičnost. Nekdo v Kaliforniji ima vedno osem dodatnih ur za dokončanje svoje naloge kot nekdo, ki živi v Londonu. To je nepravična napaka v oblikovanju, ki kaznuje določene uporabnike zaradi njihove lokacije. In kaj, če je ta oseba v Londonu samo na obisku, dokonča nalogo in se nato vrne v drug časovni pas? Ena od učinkovitih rešitev za vse to je, da od uporabnikov zahtevate, da izrecno nastavijo svoj časovni pas med vkrcanjem (po možnosti po prvem preverjanju pristnosti). Dobro je vključiti subtilno opombo, da se zagotavljanje informacij o časovnem pasu uporablja samo za to, da aplikacija natančno spremlja napredek, in ne kot podatki, ki omogočajo osebno identifikacijo. In še ena dobra ideja je, da to nastavitev spremenite. Predlagam, da se vsi izogibajo neposrednemu ravnanju z logiko časovnega pasu v aplikaciji. Uporabite preizkušene knjižnice datumov, kot sta Moment.js ali pytz (Python) itd. Ni vam treba znova izumljati kolesa za nekaj tako zapletenega, kot je to. Zamujeni dnevi in robni primeri Drug izziv, ki bi vas moral skrbeti, so nenadzorovani robni primeri, kot so uporabniki, ki spijo, izpadi strežnika, zakasnitev, okvare omrežja itd. Uporaba ideje o mehanizmih milosti, kot so tisti, o katerih smo razpravljali prej, lahko pomaga. Dveurno podaljšano obdobje bi lahko pomagalo tako uporabniku kot razvijalcu, v smislu, da uporabniki niso strogo kaznovani zaradi nenadzorovanih življenjskih okoliščin. Za razvijalce so grace okna v pomoč v tistih neobvladljivih trenutkih, ko se strežnik sredi noči izklopi. Predvsem pa nikoli ne zaupaj stranki. Vedno preverite na strani strežnika. Strežnik bi moral biti edini vir resnice. Preprečevanje goljufanja Še enkrat, tega ne morem dovolj poudariti: preverite vse na strani strežnika. Uporabniki so ljudje in ljudje bi lahko goljufali, če bi imeli priložnost. To je neizogibno. Lahko poskusite:

Shranjevanje vseh dejanj s časovnimi žigi UTC. Odjemalec lahko pošlje svoj lokalni čas, vendar ga lahko strežnik takoj pretvori v UTC in preveri glede na čas strežnika. Tako lahko sistem, če je odjemalčev časovni žig sumljivo daleč, to zavrne kot napako, uporabniški vmesnik pa se ustrezno odzove. Uporaba sledenja na podlagi dogodkov. Z drugimi besedami, shranite zapis vsakega dejanja z metapodatki, vključno z informacijami, kot so ID uporabnika, vrsta izvedenega dejanja ter časovni žig in časovni pas. To pomaga pri potrjevanju.

Izdelava motorja sistema Streak To ni vadnica za kodo, zato se bom izognil, da vam bom naložil kup kode. To bom ohranil praktično in bom opisal, kako stvari na splošno delujejo v sistemu streak system, kar zadeva arhitekturo, pretok in zanesljivost. Osnovna arhitektura Kot sem že večkrat rekel, naj bo strežnik edini vir resnice za nizne podatke. Arhitektura na strežniku je lahko nekako takole:

Podatke vsakega uporabnika shranite v bazo podatkov. Shranite trenutno shrambo nizov (privzeto 0) kot celo število. Shranite nastavitve časovnega pasu, tj. niz časovnega pasu IANA (bodisi implicitno iz lokalnega časovnega žiga bodisi eksplicitno tako, da uporabnika prosite, da izbere svoj časovni pas). Na primer »Amerika/New_York«. Obravnavajte vso logiko, da ugotovite, ali se niz nadaljuje ali prekine, s preverjanjem časovnega pasu, ki je relativen glede na uporabnikov lokalni časovni pas.

Medtem na strani odjemalca:

Prikažite trenutni niz, običajno pridobljen s strežnika. Pošlji dejanje, izvedeno v obliki metapodatkov, na strežnik, da preveri, ali je uporabnik dejansko opravil kvalificirano nizno dejanje. Zagotovite vizualne povratne informacije na podlagi odzivov strežnika.

Torej, skratka, možgani so na strežniku, odjemalec pa za namene prikaza in oddaje dogodkov. To vam prihrani veliko napak in robnih primerov ter olajša posodobitve in popravke. Logični tok Simulirajmo predstavitev, kako bi deloval minimalno učinkovit mehanizem sistema nizov, ko uporabnik dokonča dejanje:

Uporabnik zaključi kvalificirano dejanje niza. Odjemalec pošlje dogodek strežniku kot metapodatke. To je lahko »Uporabnik X je dokončal dejanje Y ob časovnem žigu Z«. Strežnik prejme ta dogodek in izvede osnovno preverjanje. Je to pravi uporabnik? Ali so overjeni? Je akcija veljavna? Ali je časovni pas skladen? Če je to uspešno, strežnik pridobi podatke o nizih uporabnikov iz baze podatkov. Nato pretvorite prejeti časovni žig dejanja v uporabnikov lokalni časovni pas. Naj strežnik primerja koledarske datume (ne časovnih žigov) v lokalnem časovnem pasu uporabnika: Če je isti dan, je dejanje odveč in ni sprememb vniz. Če je naslednji dan, se niz podaljša in poveča za 1. Če je razlika več kot en dan, se niz prekine. Vendar pa lahko tukaj uporabite mehaniko milosti. Če je mehanizem milosti zgrešen, ponastavite niz na 1.

Če se odločite za shranjevanje zgodovinskih podatkov za mejnike, posodobite spremenljivke, kot sta »najdaljši niz« ali »skupno število aktivnih dni«. Strežnik nato posodobi bazo podatkov in odgovori odjemalcu. Nekaj takega:

{ "trenutni_niz": 48, "najdaljši_niz": 50, "total_active_days": 120, "streak_extended": drži, }

Kot nadaljnji ukrep bi moral strežnik poskusiti znova ali zavrniti in obvestiti odjemalca, ko med postopkom karkoli ne uspe. Gradnja za odpornost Kot smo že omenili, je uporabnik, ki izgubi niz zaradi napak ali izpadov strežnika, grozen UX in uporabniki ne pričakujejo, da bodo padli zaradi tega. Tako mora imeti vaš sistem nizov zaščitne ukrepe za te scenarije. Če strežnik ne deluje zaradi vzdrževanja (ali katerega koli drugega razloga), razmislite o tem, da bi dovolili začasno okno dodatnih ur, da se to popravi, tako da se lahko dejanja pošljejo pozno in še vedno štejejo. Izberete lahko tudi obveščanje uporabnikov, še posebej, če lahko situacija vpliva na niz, ki je v teku. Opomba: Vzpostavite skrbniška stranska vrata, kjer je mogoče podatke ročno obnoviti. Napake so neizogibne in nekateri uporabniki bi poklicali vašo aplikacijo ali se obrnili na podporo, da se je njihov niz prekinil iz razloga, na katerega niso mogli vplivati. Morali bi imeti možnost, da ročno obnovite proge, če ima uporabnik po preiskavi prav. Zaključek Nekaj ostaja jasno: proge so res močne zaradi tega, kako človeška psihologija deluje na temeljni ravni. Najboljši sistem nizov je tisti, o katerem uporabniki ne razmišljajo zavestno. To je postala rutina takojšnjih rezultatov ali vidnega napredka, kot je umivanje zob, ki postane redna navada. Rekel bom le: vsi izdelki ne potrebujejo sistema prog. Bi res morali vsiliti doslednost samo zato, ker želite dnevno aktivne uporabnike? Odgovor je lahko zelo »ne«.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free