Mi certas, ke vi aŭdis pri strioj aŭ uzis apon kun unu. Sed iam scivolis kial strioj estas tiel popularaj kaj potencaj? Nu, estas la evidenta, ke aplikaĵoj volas kiel eble plej grandan parton de via atento, sed krom tio, ĉu vi sciis, ke kiam la populara lernado-aplikaĵo Duolingo enkondukis iOS-fenestraĵojn por montri striojn, la devontigo de la uzanto pliiĝis je 60%. Sesdek procentoj estas masiva ŝanĝo en konduto kaj pruvas kiel "striaj" ŝablonoj povas esti uzataj por pliigi engaĝiĝon kaj stiri uzadon. Plej baza, strio estas la nombro da sinsekvaj tagoj, kiam uzanto kompletigas specifan agadon. Iuj homoj ankaŭ difinas ĝin kiel "gamigitan" kutimon aŭ metrikon dizajnitan por instigi konsekvencan uzadon. Sed strioj transcendas preter esti metriko aŭ rekordo en programo; ĝi estas pli psikologia ol tio. Homaj instinktoj estas facile influeblaj per la ĝustaj faktoroj. Rigardu ĉi tiujn tri faktorojn: progreso, fiero kaj timo manki (kutime nomata FOMO). Kion havas ĉiuj ĉi tiuj komunaj? Penado. Ju pli da penado vi faras ion, des pli ĝi formas vian identecon, kaj tiel strioj transiras en la mondon de kondutpsikologio. Nun, kun granda potenco venas granda respondeco, kaj pro tio, estas malhela flanko al strioj. En ĉi tiu artikolo, ni eniros la principojn de psikologio, UX kaj dezajno malantaŭ konstruado de efika striosistemo. Ni rigardos (1) kial niaj cerboj preskaŭ instinkte respondas al stria agado, (2) kiel desegni striojn en manieroj kiuj vere helpas uzantojn, kaj (3) la teknikan laboron implikitan en konstruado de stria ŝablono. La Psikologio Malantaŭ Strioj Por desegni kaj konstrui efikan strian sistemon, ni devas kompreni kiel ĝi kongruas kun kiel niaj cerboj estas kabligitaj. Kiel, kio faras ĝin tiel efika ĝis la mezuro ke ni sentas tiom da intensa dediĉo protekti niajn striojn? Estas tri interesaj, bone dokumentitaj psikologiaj principoj, kiuj subtenas tion, kio faras striojn tiel potencaj kaj toksomaniuloj. Malemo de Perdo Ĉi tio verŝajne estas la plej forta forto malantaŭ strioj. Mi diras ĉi tion ĉar plejofte, vi preskaŭ ne povas eviti ĉi tion en la vivo. Pensu pri tio ĉi tiel: Se amiko donas al vi $100, vi estus feliĉa. Sed se vi perdus $100 el via monujo, tio multe pli damaĝus. La emocia pezo de tiuj situacioj ne estas egala. Perdo doloras multe pli ol gajno sentas bone. Ni prenu ĝin plu kaj diru, ke mi donas al vi $100 kaj petas vin ludi vetludon. Estas 50% da ŝanco, ke vi gajnu aliajn $100 kaj 50% da ŝanco, ke vi perdu la originalajn $100. Ĉu vi prenus ĝin? mi ne farus. Plej multaj homoj ne farus. Tio estas perdmalemo. Se vi pensas pri tio, ĝi estas logika, ĝi estas komprenebla, ĝi estas homa. La koncepto malantaŭ perdmalemo estas, ke ni sentas la doloron perdi ion duoble pli ol la plezuron akiri ion egalvaloran. En psikologiaj terminoj, perdo restas pli ol gajnoj. Vi verŝajne vidas kiel ĉi tio rilatas al strioj. Por konstrui rimarkindan strion, ĝi postulas penon; kiam strio kreskas, la instigo malantaŭ ĝi komencas forvelki; aŭ pli ĝuste, ĝi komencas fariĝi sekundara. Jen ekzemplo: Diru, ke via amiko havas tritagan sinsekvon fermante siajn "Movu Ringojn" sur sia Apple Watch. Ili havas preskaŭ nenion por perdi krom voli atingi sian celon kaj esti konsekvencaj. Samtempe, vi havas impresan 219-tagan sinsekvon. Ŝancoj estas, ke vi estas kaptita de la timo perdi ĝin. Vi plej verŝajne ne pensas pri la atingo ĉe ĉi tiu punkto; ĝi temas pli pri protekti vian investitan penon, kaj tio estas perd-malemo. Duolingo klarigas kiel perdmalemo kontribuas al la malemo de uzanto rompi longan sinsekvon, eĉ en iliaj plej maldiligentaj tagoj. Iasence, strio povas iĝi kutimo kiam perdmalemo instaliĝas. La Fogg-Kondut-Modelo (B = MAPO) Nun kiam ni komprenas la timon perdi la penon investitan en pli longaj strioj, alia demando estas: Kio igas nin fari la aferon unue, tagon post tago, eĉ antaŭ ol la strio fariĝas granda? Pri tio temas la Fogg-Kondut-Modelo. Ĝi estas relative simpla. Konduto (B) okazas nur kiam tri faktoroj - Instigo (M), Kapablo (A) kaj Prompto (P) - viciĝas en la sama momento. Tiel, la ekvacio B=MAP. Se iu el ĉi tiuj faktoroj, eĉ unu, mankas en tiu momento, la konduto ne okazos. Do, por ke stria sistemo estu efika kaj ripetiĝanta, ĉiuj tri faktoroj devas ĉeesti: Instigo Ĉi tio estas delikata kaj ne io konstante ĉeestas. Estas tagoj, kiam vi estaspumpita por lerni la hispanan, kaj tagojn vi eĉ ne sentas iomon da volforto lerni la lingvon. Instigo per si mem konstrui kutimon estas nefidinda kaj perdanta batalo de la unua tago. KapabloPor kompensi la limojn de instigo, kapablo estas kritika. En ĉi tiu kunteksto, kapablo signifas la facilecon de agado, t.e., la fortostreĉo estas tiel facila, ke estas nereale diri, ke ĝi ne eblas. Plej multaj programoj intence uzas ĉi tion. Apple Fitness nur bezonas, ke vi staru dum unu minuto en unu horo por gajni tikon al via Stand-celo. Duolingo bezonas nur unu finitan lecionon. Ĉi tiuj taskoj ne postulas tiom da penado. La baro estas tiel malalta ke eĉ en viaj plej malbonaj tagoj, vi povas fari ĝin. Sed la kombinita fortostreĉo de daŭranta sinsekvo estas kie la ideo perdi tiun sinsekvon ekas. PromptĈi tio kompletigas la ekvacion. Homoj estas nature forgesemaj, do jes, kapablo povas atingi nin 90% tie. Sed instigo memorigas nin agi. Strioj estas konstantaj laŭ dezajno, do uzantoj devas esti konstante rememorigitaj agi. Por vidi kiom potenca povas esti prompto, Duolingo faris A/B-teston por vidi ĉu malgranda ruĝa insigno sur la ikono de la programo pliigis konsekvencan uzadon. Ĝi produktis 6% pliiĝon en ĉiutagaj aktivaj uzantoj. Nur ruĝa insigno. Modellimigoj Ĉio ĉi dirite, ekzistas limigo al la modelo Fogg, per kiu kritikistoj kaj modernaj esploroj rimarkis, ke dezajno, kiu dependas tro forte de instigoj, kiel agresemaj sciigoj, riskas krei mensan lacecon. Konstantaj sciigoj kaj kromlaboroj povus igi uzantojn malboniĝi. Do, atentu pri tio. La Zeigarnik Efekto Kiel vi sentas, kiam vi lasas taskon de projekto duonfarita? Tio iritas multajn homojn ĉar nefinitaj taskoj okupas pli da mensa spaco ol la aferoj, kiujn ni kompletigas. Kiam io estas farita kaj for, ni emas forgesi ĝin. Kiam io estas lasita nefarita, ĝi emas pezi sur niajn mensojn. Ĝuste tial ciferecaj produktoj uzas artefaritajn progresindikilojn, kiel la profilon de Upwork, por sciigi uzanton, ke ilia profilo estas nur "60% kompleta". Ĝi puŝas la uzanton fini tion, kion ili komencis.

Ni rigardu alian ekzemplon. Vi havas kvin taskojn en farolista aplikaĵo, kaj fine de la tago, vi nur kontrolas kvar el ili kiel finite. Multaj el ni sentos sin neplenumitaj pro tiu unu nefinita tasko. Tio, ĝuste tie, estas la Zeigarnik-efiko. La Zeigarnik-efikon estis pruvita de la psikologo Bluma Zeigarnik, kiu priskribis, ke ni emas konservi nekompletajn taskojn aktivaj en nia memoro pli longe ol finitaj taskoj. Stria ŝablono nature frapetas ĉi tion en UX-dezajno. Ni diru, ke vi estas en la tago 63 de lernado. Ĉe tiu punkto, vi estas en daŭranta ŝablono de nefinita komerco. Via cerbo malofte forgesus pri ĝi, ĉar ĝi sidas en la malantaŭo de via menso. Je ĉi tiu punkto, via cerbo fariĝas tiu, kiu sendas al vi sciigojn. Kiam vi kunigas ĉi tiujn psikologiajn fortojn, vi komencas vere kompreni kial strioj ne estas nur regula aplikaĵo; ili kapablas transformi homan konduton. Sed ie laŭ la linio - mi ne povas diri ĝuste kiam, ĉar ĝi malsamas por ĉiuj - aferoj atingas punkton kie strio ŝanĝiĝas de "amuzo" al io, kion vi sentas, ke vi ne povas permesi perdi. Vi ne volas ke 58 tagoj da penado malŝparu, ĉu? Tio estas kio faras strian sistemon efika. Se bone faritaj, strioj helpas uzantojn konstrui mirindajn kutimojn, kiuj plenumas celon. Ĝi povus legi ĉiutage aŭ bati la gimnazion konstante. Ĉi tiuj ripetaj agoj (kelkfoje malgrandaj) kuniĝas kun la tempo kaj evidentiĝas en nia ĉiutaga vivo. Sed estas du flankoj al ĉiu monero. La Maldika Linio Inter Kutimo Kaj Devigo Se vi sekvis, vi jam povas diri, ke ekzistas malhela flanko por striaj sistemoj. Kutimo-formado temas pri konsistenco kun ripeta celo. Devigo, tamen, estas la konsistenco labori pri celo, kiu ne plu estas bezonata sed tenita pro timo aŭ premo. Ĝi estas razi-maldika linio. Vi brosas viajn dentojn ĉiumatene sen pensi; ĝi estas aŭtomata kaj instinkta, kun klara celo havi bonan spiron. Tio estas strio, kiu formas bonan kutimon. Etika striosistemo donas al uzantoj spacon por spiri. Se, ial, vi ne brosas matene, vi povas brosi tagmeze. Neperfekteco estas permesita sen timo perdi longan penon. Devigo prenas la kontraŭan vojon, per kiu strio maltrankviligas vin, vi sentas vin kulpa aŭ eĉ elĉerpita, kaj foje, ĝi sentas, ke vi nenion faris, malgraŭ ĉiuj viaj.laboro. Vi agas ne ĉar vi volas, sed ĉar vi subkonscie teruras vidi vian progreson restarigi al nulo. Iu eĉ priskribis ĉi tion perfekte, "Mi sentis, ke mi trompas, sed simple ne zorgis. Mi estas nenio sen mia strio". Ĉi tio montras la ekstremajn tenajn striojn povas havi sur individuo. Ĝis la mezuro, ke uzantoj komencas ligi sian memvaloron al arbitra metriko prefere ol la origina celo aŭ kialo ili komencis la sinsekvon en la unua loko. La strio fariĝas kiuj ili estas, ne nur kion ili faras. Bone desegnita etika striosistemo devus senti kiel instigo al la uzanto, ne premo aŭ devo. Ĉi tio rilatas al la ekvilibro de interna kaj ekstera instigo. Eksterneca instigo (eksteraj rekompencoj, evitado de puno) eble ebligos uzantojn, sed interna instigo (fari la taskon por persona celo kiel lerni la hispanan ĉar vi vere volas komuniki kun amato) estas pli forta por longdaŭra engaĝiĝo. Bona sistemo devas graviti al interna instigo kun zorgema uzo de eksteraj elementoj, t.e., memorigi uzantojn pri kiom longe ili venis, ne minaci ilin per tio, kion ili povus perdi. Denove, ĝi estas fajna linio. Simpla testo dum desegnado de striosistemo estas efektive preni iom da tempo kaj pensi ĉu viaj produktoj enspezas monon vendante solvojn al angoro kiun via produkto kreis. Se jes, estas granda ŝanco, ke vi ekspluatas uzantojn. Do la sekva demando fariĝas: Se mi elektas uzi strion, kiel mi desegnas ĝin en maniero, kiu vere helpas uzantojn atingi siajn celojn? La UX de Good Streak System Design Mi kredas, ke ĉi tie plej multaj projektoj aŭ najlas efikan strian sistemon aŭ tute fuŝas ĝin. Ni trarigardu kelkajn UX-principojn de bona striodezajno. Tenu Ĝin Senforta Vi verŝajne aŭdis ĉi tion antaŭe, eble de libroj kiel Atomaj Kutimoj, sed indas mencii, ke unu el la plej facilaj manieroj kiel kutimoj povas esti formitaj estas farante la agon eta kaj facila. Ĉi tio similas al la kapablofaktoro, kiun ni diskutis de la Fogg-Konduto-Modelo. La unua regulo de ajna striodezajno devus esti fari la postulatan agon kiel eble plej malgrandan homan dum daŭre atingante progreson. Se ĉiutaga ago postulas volforton por plenumi, tiu ago ne preterpasos kvin tagojn. Kial? Vi ne povas esti motivita kvin tagojn sinsekve. Kazo en punkto: Se vi prizorgas meditan apon, vi ne bezonas igi uzantojn trapasi 20-minutan sesion nur por konservi la sinsekvon. Anstataŭe provu unu minuton, eble eĉ ion tiel malgrandan kiel tridek sekundojn. Kiel oni diras, malgrandaj gutoj da akvo faras la potencan oceanon). Malgrandaj klopodoj kompiliĝas en grandaj atingoj kun la tempo. Tio devus esti la celo: forigi froton, precipe kiam la momento povus esti malfacila. Kiam uzantoj estas streĉitaj aŭ superfortitaj, sciigu al ili, ke simple aperi, eĉ dum kelkaj sekundoj, kalkulas kiel peno. Provizu Klaran Vidan Regon Homoj estas vidaj nature. Plejfoje, ni bezonas vidi ion por kredi; estas ĉi tiu bezono bildigi aferojn por kompreni ilin pli bone kaj meti aferojn en perspektivon. Tial striaj ŝablonoj ofte uzas vidajn elementojn, kiel grafeojn, markmarkojn, progresringojn kaj kradojn, por bildigi penadon. Rigardu la kontribuan grafikon de GitHub. Ĝi estas simpla bildigo de konsistenco. Tamen programistoj enspiras ĝin kiel oksigeno.

La ŝlosilo estas ne fari strian sistemon senti abstrakta. Ĝi devus sentiĝi reala kaj gajnita. Ekzemple, la agadringoj de Duolingo kaj Apple Fitness uzas purajn animaciajn dezajnojn post kompletigo de strio, kaj GitHub montras historiajn datumojn pri la konsistenco de uzanto laŭlonge de la tempo.

Uzu Bonan Tempigon Mi menciis antaŭe, ke homoj ĝenerale estas forgesema nature, kaj ke instigoj povas helpi konservi antaŭenan impeton. Sen instigoj, plej multaj novaj uzantoj forgesas daŭrigi. La vivo povas esti okupata, instigo malaperas, kaj aferoj okazas. Eĉ delongaj uzantoj profitas de instigoj, kvankam plejofte ili jam estas ŝlositaj en la kutima buklo. Tamen, eĉ la plej engaĝita persono povas hazarde maltrafi tagon. Via striosistemo plej certe bezonas memorigilojn. La plej uzataj promptaj memorigiloj estas puŝaj sciigoj. La tempo vere gravas kiam oni laboras kun puŝaj sciigoj. Ankaŭ gravas la speco de aplikaĵo. Sendi sciigon je la 9-a horo dirante "Vi ne ekzercis hodiaŭ" estas nur stranga por lernado, ĉar multaj havas aferojn por fari en la tago antaŭ ol ili eĉ pensas pri kompletigi lecionon. Se ni parolas pri taŭgeca programo, tamen, ĝiestas racia kaj eble eĉ atendita esti rememorigita pli frue en la tago. Puŝaj sciigoj varias signife laŭ aplika kategorio. Taŭzaj programoj, ekzemple, vidas pli altan engaĝiĝon kun frumatenaj sciigoj (7–8 a.m.), dum produktivecaj aplikaĵoj povus pli bone funkcii en frua tagmezo. La ŝlosilo estas A/B testi la tempon de via programo surbaze de la kondutoj de viaj uzantoj prefere ol supozi, ke aferoj estas unugrandaj. Kio funkcias por meditada programo, eble ne funkcias por koda spurilo. Aliaj promptaj metodoj estas ruĝaj punktoj sur la aplikono kaj eĉ aplikaj fenestraĵoj. Studoj varias, sed averaĝa persono malŝlosas sian aparaton inter 50-150 fojojn tage (PDF). Se uzanto vidas ruĝan punkton sur aplikaĵo aŭ fenestraĵo, kiu indikas aktualan strion ĉiufoje kiam ili malŝlosas sian telefonon, tio pliigas sindevontigon. Nur ne troigu ĝin; la prompto devas servi kiel rememorigilo, ne ĉapelo. Festu Mejloŝtonojn Sistemo de strio devus provi festi mejloŝtonojn por reŝalti emociojn, precipe por uzantoj profunde en strio. Kiam uzanto trafas Tagon 7, Tagon 30, Tagon 50, Tagon 100, Tagon 365, vi devas fari grandan aferon el ĝi. Agnosku atingojn - precipe por longtempaj uzantoj.

Kiel ni vidis pli frue, Duolingo eltrovis ĉi tion kaj efektivigis viglan grafikon, kiu festas mejloŝtonojn per konfetoj. Iuj platformoj eĉ donas grandajn bonusajn rekompencojn, kiuj validas la klopodojn de uzantoj. Kaj ĉi tio povas esti utila al aplikaĵoj, tiel ke uzantoj emas dividi siajn mejloŝtonojn publike en sociaj amaskomunikiloj. Alia profito estas la antaŭĝojo, kiu venas antaŭ atingi mejloŝtonojn. Ĝi ne nur tenas la strion viva senfine; uzantoj havas ion por atendi. Uzu Graciajn Mekanismojn La vivo estas neantaŭvidebla. Homoj distriĝas. Ĉiu bona striosistemo devus atendi neperfektecon. Unu el la plej grandaj psikologiaj minacoj al stria sistemo estas la malmola restarigo al nulo post nur unu sopirita tago. "Etika" striosistemo devus provizi la uzanton per iom da malstreĉo. Ni diru, ke vi havas 90-tagan ŝakon lernan sinsekvon. Vi estis konsekvenca dum tri bonaj monatoj, kaj unu tagon, via telefono mortas dum vojaĝado, kaj ĝuste tiel, 90 fariĝas 0 — ĉio, tiu tuta peno, estas forigita, kaj progreso malaperas. La uzanto povus esti tute detruita. La penso rekonstrui ĝin de nulo estas tiel malmoraliga, ke la peno ne valoras ĝin. Plej malbone, uzanto povus forlasi la apon post sentiĝi kiel fiasko. Konsideru aldoni mekanismon de "graco" al via striosistemo:

Streak FreezePermesu al uzantoj intence maltrafi tagon sen punoj. Kroma TempoAlmesu kelkajn horojn (2–3) post la kutima limdato antaŭ ol ekfunkciigi rekomencon. Kadukaj modelojAnstataŭ malmola restarigo, la strio malpliiĝas je malgranda kvanto, ekz., 10 tagoj estas subtrahataj de la strio por sopirita tago.

Uzu Kuraĝan Tonon Ni komparu du mesaĝojn montritajn al uzantoj kiam strio rompiĝas:

"Vi perdis vian 42-tagan sinsekvon. Rekomencu." "Vi aperis dum 42 tagoj rekte. Tio estas nekredebla progreso! Ĉu vi volas provi ĝin?"

Ambaŭ transdonas la samajn informojn, sed la emocia efiko estas malsama. La unua mesaĝo plej verŝajne igus uzanton senti sin demoralizita kaj igus ilin ĉesi. La dua mesaĝo festas tion, kio jam estis atingita kaj milde instigas la uzanton provi denove. Streak Systems Design Challenges Antaŭ ol ni eniros la teknikajn specifaĵojn pri konstruado de striosistemo, vi devus konscii pri la defioj, kiujn vi povus alfronti. Aferoj povas komplikiĝi, kiel vi povus atendi. Pritraktado de Horzonoj Estas kialo, kial pritraktado de tempo kaj dato estas inter la plej malfacilaj konceptoj pri kiuj traktas programistoj. Estas formatado, internaciigo kaj multe pli por konsideri. Lasu min demandi al vi ĉi tion: Kio kalkulas kiel tago? Ni scias, ke la mondo funkcias per malsamaj horzonoj, kaj kvazaŭ tio ne sufiĉas, iuj regionoj havas Someran Tempon (DST), kiu okazas dufoje jare. Kie vi eĉ komencas pritrakti ĉi tiujn randajn kazojn? Kio validas kiel la "komenco" de morgaŭ? Iuj programistoj provas eviti tion uzante unu centran horzonon, kiel UTC. Por iuj uzantoj, ĉi tio donus ĝustajn rezultojn, sed por iuj, ĝi povus esti malŝaltita je unu horo, du horoj aŭ pli. Ĉi tiu nekonsekvenco ruinigas la uzantan sperton. Uzantoj malpli zorgas kiel vi pritraktas la tempon malantaŭ la scenoj; ĉio, kion ili atendas, estas, ke se ili faras sinsekvan agon je 11:40 p.m., tiam ĝi devus registriĝi en tiu ĝusta tempo, en ilia kunteksto. Vi devus difini "unu tagon" laŭ la loka horzono de la uzanto, ne la servila tempo. Certe, vi povas preni la facilanitinero kaj restarigi striojn tutmonde por ĉiuj uzantoj je noktomezo UTC, sed vi multe kreas maljustecon. Iu en Kalifornio ĉiam havas ok kromajn horojn por plenumi sian taskon ol iu loĝanta en Londono. Tio estas maljusta difekto de dezajno, kiu punas iujn uzantojn pro ilia loko. Kaj kio se tiu persono en Londono nur vizitas, plenumas taskon, poste revenas al alia horzono? Unu efika solvo al ĉio ĉi estas peti uzantojn eksplicite agordi sian horzonon dum enŝipiĝo (prefere post unua aŭtentigo). Estas bona ideo inkluzivi subtilan noton, ke provizi horzonajn informojn estas nur uzata por la apo por precize spuri progreson, anstataŭ esti uzata kiel persone identigeblaj datumoj. Kaj estas alia bona ideo fari tion ŝanĝebla agordo. Mi sugestas, ke iu ajn evitu rekte trakti horzonan logikon en programo. Uzu provitajn datajn bibliotekojn, kiel Moment.js aŭ pytz (Python), ktp. Ne necesas reinventi la radon por io tiel kompleksa kiel ĉi tio. Perditaj Tagoj Kaj Rando Kazoj Alia defio, pri kiu vi devus zorgi, estas neregeblaj randaj kazoj kiel uzantoj trodormaj, servila malfunkcio, malfruo, retaj fiaskoj ktp. Uzi la ideon de gracaj mekanismoj, kiel tiuj, kiujn ni antaŭe diskutis, povas helpi. Gracia fenestro de du horoj povus helpi kaj uzanton kaj programiston, en la senco, ke uzantoj ne estas rigide punitaj pro nekontroleblaj vivcirkonstancoj. Por programistoj, gracaj fenestroj estas helpemaj en tiuj nekontroleblaj momentoj, kiam la servilo malfunkcias meze de la nokto. Antaŭ ĉio, neniam fidu la klienton. Ĉiam validigu ĉe la servilo. La servilo estu la ununura fonto de vero. Preventado de Trompado Denove, mi ne povas sufiĉe emfazi ĉi tion: Certigu validigi ĉion servilflanko. Uzantoj estas homoj, kaj homoj povus trompi se ili donas la ŝancon. Ĝi estas neevitebla. Vi eble provu:

Stokante ĉiujn agojn kun UTC-tempomarkoj. La kliento povas sendi sian lokan tempon, sed la servilo povas tuj konverti tion al UTC kaj validigi kontraŭ la servila tempo. Tiel, se la tempomarko de la kliento estas suspektinde malproksima, la sistemo povas malakcepti ĝin kiel eraro, kaj la UI povas respondi laŭe. Uzante okazaĵ-bazitan spuradon. Alivorte, konservu rekordon de ĉiu ago kun metadatenoj inkluzive de informoj kiel la identigilo de la uzanto, la tipo de ago farita kaj la tempomarko kaj horzono. Ĉi tio helpas kun validigo.

Konstruado de Streak System Engine Ĉi tio ne estas koda lernilo, do mi evitos forĵeti amason da kodo sur vin. Mi konservos ĉi tion praktika kaj priskribos kiel aferoj ĝenerale funkciigas strian sisteman motoron koncerne arkitekturon, fluon kaj fidindecon. Kerna Arkitekturo Kiel mi diris plurajn fojojn, faru la servilon la ununura fonto de vero por striaj datumoj. La arkitekturo povas iri ion tian sur la servilo:

Konservu la datumojn de ĉiu uzanto en datumbazo. Konservu la nunan strekbutikon (defaŭlte kiel 0) kiel entjero. Konservu la horzonpreferon, t.e., IANA Horzona ĉeno (aŭ implicite de loka tempomarko aŭ eksplicite petante uzanton elekti sian horzonon). Ekzemple, "Ameriko/Nov-Jorko". Pritraktu ĉian logikon por determini ĉu la strio daŭras aŭ rompas, kun horzona kontrolo kiu rilatas al la loka horzono de la uzanto.

Dume, ĉe la klientflanko:

Montru la nunan strion, kutime prenitan de la servilo. Sendu agon faritan en formo de metadatenoj al la servilo por konfirmi ĉu la uzanto efektive plenumis kvalifikan sinsekvon. Provizu vidajn komentojn bazitajn sur la servilaj respondoj.

Do, mallonge, la cerbo estas sur la servilo, kaj la kliento estas por montrado kaj sendado de eventoj. Ĉi tio ŝparas al vi multajn fiaskojn kaj randajn kazojn, krome faciligas ĝisdatigojn kaj korektojn. La Logika Fluo Ni simulu promenadon pri kiel funkcius minimuma efika stria sistema motoro kiam uzanto kompletigas agon:

La uzanto kompletigas kvalifikan sinsekvon. La kliento sendas eventon al la servilo kiel metadatenoj. Ĉi tio povus esti "Uzanto X kompletigis agon Y ĉe tempostampo Z". La servilo ricevas ĉi tiun eventon kaj faras bazan validigon. Ĉu ĉi tio estas vera uzanto? Ĉu ili estas aŭtentikigitaj? Ĉu la ago validas? Ĉu la horzono estas konsekvenca? Se ĉi tio pasas, la servilo prenas la striajn datumojn de la uzanto de la datumbazo. Poste, konvertu la ricevitan ago-tempomarkon al la loka horzono de la uzanto. Lasu la servilon kompari la kalendarajn datojn (ne tempomarkojn) en la loka horzono de la uzanto: Se estas la sama tago, tiam la ago estas superflua kaj ne estas ŝanĝo en lastrio. Se estas la sekva tago, tiam la strio etendiĝas kaj pliiĝas je 1. Se estas interspaco de pli ol unu tago, la strio rompas. Tamen, ĉi tie vi povus apliki gracan mekanikon. Se la graca mekanismo estas maltrafita, tiam restarigi la strion al 1.

Se vi elektas konservi historiajn datumojn por mejloŝtonaj atingoj, tiam ĝisdatigu variablojn kiel "plej longa strio" aŭ "tutaj aktivaj tagoj". La servilo tiam ĝisdatigas la datumbazon kaj respondas al la kliento. Io kiel ĉi tio:

{ "aktuala_strio": 48, "plej_longa_strio": 50, "total_active_days": 120, "streak_extended": vera, }

Kiel plia mezuro, la servilo devus aŭ reprovi aŭ malakcepti kaj sciigi la klienton kiam io malsukcesas dum la procezo. Konstruaĵo Por Rezisteco Kiel menciite antaŭe, uzantoj perdantaj sinsekvon pro cimoj aŭ servila malfunkcio estas terura UX, kaj uzantoj ne atendas fali por ĝi. Tiel, via striosistemo devus havi sekurigilojn por tiuj scenaroj. Se la servilo estas malfunkcia pro bontenado (aŭ kia ajn kialo), konsideru permesi provizoran fenestron de pliaj horoj por ke ĝi ripariĝu, por ke agoj povu esti senditaj malfrue kaj daŭre kalkulu. Vi ankaŭ povas elekti sciigi uzantojn, precipe se la situacio kapablas influi daŭrantan sinsekvon. Noto: Establi administran malantaŭan pordon kie datumoj povas esti permane restaŭrigitaj. Cimoj estas neeviteblaj, kaj iuj uzantoj vokus vian apon aŭ kontaktus por subteni, ke ilia strio rompiĝis pro kialo, kiun ili ne povis kontroli. Vi devus povi permane restarigi la striojn se, post esploro, la uzanto pravas. Konkludo Unu afero restas klara: Strioj estas vere potencaj pro kiel homa psikologio funkcias sur fundamenta nivelo. La plej bona sistemo de strio estas tiu, pri kiu uzantoj ne pensas konscie. Ĝi fariĝis rutino de tujaj rezultoj aŭ videbla progreso, kiel brosado de dentoj, kiu fariĝas regula kutimo. Kaj mi nur diros ĝin: Ne ĉiuj produktoj bezonas strian sistemon. Ĉu vi vere devus devigi konsistencon nur ĉar vi volas ĉiutagajn aktivajn uzantojn? La respondo tre bone povas esti "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