Siguradoak a nangngegyo ti streak wenno nagusarkayo iti app nga addaan iti maysa. Ngem napanunotmo kadin no apay a nalatak ken nabileg unay dagiti streak? Bueno, adda ti nalawag a kayat dagiti apps ti adu nga atensionmo agingga a mabalin, ngem malaksid iti dayta, ammom kadi nga idi inyam-ammo ti nalatak nga app ti panagsursuro a Duolingo dagiti iOS widgets tapno maipakita dagiti streaks, ngimmato ti user commitment iti 60%. Innem a pulo a porsiento ti dakkel a panagbalbaliw ti kababalin ken mangipakita no kasano a mausar dagiti “streak” a padron tapno mapaadu ti pannakipaset ken mangtignay iti pannakausar. Iti kangrunaan unay, ti streak ket ti bilang dagiti agsasaruno nga aldaw a ti maysa nga agar-aramat ket mangileppas ti espesipiko nga aktibidad. Dadduma a tattao ti mangdepinar met iti dayta kas “gamified” nga ugali wenno maysa a metriko a nadisenio a mangparegta iti agtultuloy a pannakausar. Ngem dagiti streak ket lumablabas iti labes ti panagbalin a metriko wenno rekord iti maysa nga app; ad-adda a sikolohikal dayta ngem iti dayta. Nalaka nga impluensiaan dagiti nainkasigudan a kababalin ti tao babaen kadagiti umiso a banag. Kitaenyo dagitoy tallo a banag: panagrang-ay, panagpannakkel, ken panagbuteng a maliwayan (gagangay a maawagan iti FOMO). Ania ti paggigiddiatan amin dagitoy? Pigsa. No ad-adu ti panagreggetmo iti maysa a banag, ad-adda a sukogenna ti kinasiasinom, ket kasta ti panagballasiw dagiti garit iti lubong ti sikolohia ti kababalin. Ita, buyogen ti dakkel a pannakabalin umay ti dakkel a responsabilidad, ket gapu iti dayta, adda nasipnget a dasig dagiti garit. Iti daytoy nga artikulo, mapantayo iti sikolohia, UX, ken dagiti prinsipio ti disenio iti likudan ti panangibangon iti epektibo a sistema ti streak. Kitaentayo ti (1) no apay a dandani nainkasigudan a sumungbat ti utektayo iti aktibidad ti streak, (2) no kasano ti agdisenio kadagiti streak kadagiti wagas a pudno a makatulong kadagiti agus-usar, ken (3) ti teknikal a trabaho a nairaman iti panangibangon iti padron ti streak. Ti Sikolohia iti Likud ti Streaks Tapno madisenio ken makaaramidtayo iti epektibo a sistema ti streak, masapul a maawatantayo no kasano a maitunos dayta no kasano a naka-wire ti utektayo. Kasla, ania ti mamagbalin iti dayta nga epektibo unay agingga a mariknatayo ti nakaro a dedikasion a mangsalaknib kadagiti garittayo? Adda tallo a makapainteres, nasayaat ti pannakadokumentona a prinsipio ti sikolohia a mangsuporta iti mamagbalin kadagiti streak a nabileg ken makaadikto unay. Pananggura iti Lugi Daytoy la ketdi ti kapigsaan a puersa iti likudan dagiti garit. Ibagak daytoy ta kaaduanna, dandani saanmo a maliklikan daytoy iti biag. Panunotem daytoy iti kastoy: No ikkannaka ti maysa a gayyemmo iti $100, maragsakanka. Ngem no napukawmo ti $100 manipud iti pitaka, ad-adda a nasakit dayta. Saan nga agpapada ti emosional a dagsen dagita a kasasaad. Ad-adda a nasakit ti pannakapukaw ngem ti nasayaat a rikna ti gunggona. Ad-adda nga alaentayo dayta ket kunaentayo nga itedko kenka ti $100 ket kiddawek nga agay-ayamka iti sugal. Adda 50% a tsansa a mangabakka iti sabali pay a $100 ken 50% a tsansa a mapukawmo ti orihinal a $100. Alaem kadi dayta? Diak’ kayat. Saan nga aramiden ti kaaduan a tattao. Dayta’t pannakagura iti pannakapukaw. No panunotem dayta, lohikal, maawatan, natauan. Ti konsepto iti likudan ti panaggura iti pannakapukaw ket mariknatayo ti saem ti pannakapukaw ti maysa a banag a mamindua ngem ti ragsak a makagun-od iti banag nga agpapada ti pategna. Iti sikolohikal a termino, ad-adda nga agtalinaed ti pannakapukaw ngem dagiti gunggona. Makitam la ketdi no kasano a mainaig daytoy kadagiti garit. Tapno makaaramid iti madlaw a garit, kasapulan dayta ti panagregget; bayat a dumakdakkel ti maysa a garit, mangrugin a kumapuy ti motibo iti likudan dayta; wenno ad-adda nga umiso, mangrugin nga agbalin a segundario. Adtoy ti pagarigan: Ibagam nga adda tallo nga aldaw a panagsasaruno ti gayyemmo a mangiserra kadagiti “Move Rings”-da iti Apple Watch-da. Dandani awan ti mapukawda malaksid iti panagtarigagayda a mangragpat iti kalatda ken agbalin a kanayon. Maigiddato iti dayta, addaanka iti nakaskasdaaw a 219-aldaw a panagsasaruno a mapan. Dakkel ti posibilidad a naibaludka iti buteng a mapukaw dayta. Saanmo la ketdi a pampanunoten ti nagapuanan iti daytoy a punto; ad-adda a maipapan dayta iti panangsalaknib iti naipuonan a panagreggetmo, ket dayta ti panagkedked iti pannakapukaw. Ilawlawag ni Duolingo no kasano a ti panagkedked iti pannakapukaw ket makatulong iti panagkedked ti maysa nga agus-usar a mangburak iti napaut a panagsasaruno, uray kadagiti katamad nga aldawda. Iti maysa a pamay-an, ti panagsasaruno ket mabalin nga agbalin nga ugali no agtalinaed ti panaggura iti pannakapukaw. Ti Modelo ti Kababalin ti Fogg (B = MAP) . Ita ta maawatantayo ti buteng a mapukaw ti panagregget a naipuonan kadagiti at-atiddog a panagsasaruno, ti sabali pay a saludsod ket: Ania ti mangtignay kadatayo nga agaramid iti banag iti umuna a lugar, iti inaldaw, uray sakbay a dumakkel ti panagsasaruno? Dayta’t maipapan iti Fogg Behavior Model. Medio simple dayta. Mapasamak laeng ti kababalin (B) no agtunos ti tallo a banag — Motivation (M), Ability (A), ken Prompt (P) — iti isu met laeng a kanito. Gapuna, ti ekuasion B=MAPA. No aniaman kadagitoy a banag, uray maysa, ti awan iti dayta a kanito, saan a mapasamak ti kababalin. Isu a tapno episiente ken maulit-ulit ti sistema ti streak, masapul nga adda amin a tallo a banag: MotiboDaytoy ket nalaka a madadael ken saan a banag a kanayon nga adda. Adda dagiti aldaw a sika’tnabomba tapno makasursuro iti Espaniol, ken aldaw a dika pay ketdi marikna ti uray sangkabassit a pannakabalin ti pagayatan a mangadal iti pagsasao. Ti motibo a mismo a mangbangon iti ugali ket saan a mapagtalkan ken maysa a naabak a laban manipud umuna nga aldaw. KabaelanTapnu mabayadan dagiti limitasion ti motibo, kritikal ti abilidad. Iti daytoy a konteksto, ti abilidad ket kayatna a sawen ti kinalaka ti panagtignay, i.e., ti panagregget ket nalaka unay nga it’s unrealistic to say it isn’t possible. Kaaduan nga apps ti inggagara nga agusar iti daytoy. Kasapulan laeng ti Apple Fitness nga agtakderka iti maysa a minuto iti maysa nga oras tapno makagun-odka iti tik nga agturong iti kalatmo iti Stand. Maysa laeng a nakompleto nga adalen ti kasapulan ni Duolingo. Dagitoy nga annongen ket saan a kasapulan ti amin a kasta unay a panagregget. Nababa unay ti lapped isu nga uray kadagiti kadadaksan nga aldawmo, maaramidmo dayta. Ngem ti nagtipon a panagregget ti agtultuloy a panagsasaruno ti sumrek ti ideya a maabak iti dayta a panagsasaruno. PromptDaytoy ti mangkompleto iti equation. Natural a makalipat dagiti tattao, isu a wen, ti abilidad ket makaala kadatayo iti 90% sadiay. Ngem ti maysa a prompt ipalagipna kadatayo nga agtignay. Agtultuloy dagiti streak babaen ti disenio, isu a kasapulan a kanayon a maipalagip kadagiti agus-usar nga agtignay. Tapno makita no kasano kabileg ti prompt, inaramid ti Duolingo ti A/B test tapno makita no ti bassit a nalabaga a badge iti app’s icon ket nangpaadu iti agtultuloy a pannakausar. Daytoy ket nangpataud ti 6% nga iyaadu dagiti inaldaw nga aktibo nga agus-usar. Nalabaga laeng a badge. Dagiti Limitasion ti Modelo Amin dagitoy ket naibagbaga, adda ti limitasion iti modelo ti Fogg a dagiti kritiko ken moderno a panagsukisok ket nakadlawda a ti disenio nga agpannuray unay kadagiti panagtignay, a kas dagiti agresibo a pakaammo, ket agpeggad a mangpataud ti pannakabannog ti isip. Mabalin a ti kanayon a pakaammo ken sobra nga oras ti pakaigapuan ti panag-churn dagiti agus-usar. Gapuna, agannadkayo iti dayta. Ti Epekto ti Zeigarnik Ania ti mariknam no baybay-am a kagudua ti trabaho ti proyekto? Makapungtot dayta iti adu a tattao gapu ta dagiti di pay nalpas nga aramid ket mangsakup iti ad-adu nga espasio ti isip ngem dagiti banag a maileppastayo. No naaramid ken awanen ti maysa a banag, agannayastayo a manglipat iti dayta. No ti maysa a banag ket mabaybay-an a di maaramid, agannayas dayta a mangdagsen iti panunottayo. Daytoy ti eksakto a gapuna nga agus-usar dagiti digital a produkto kadagiti artipisial a progress indicators, kas iti profile completion bar ti Upwork, tapno ipakaammo ti maysa nga agus-usar a ti profile-da ket “60% laeng a kompleto”. Iduronna ti agus-usar tapno malpasna ti rinugianda.
Kitaentayo ti sabali pay a pagarigan. Adda lima nga aramidmo iti to-do list app, ket iti ngudo ti aldaw, uppat laeng kadagita ti kitaem kas nalpasen. Adu kadatayo ti makarikna a di natungpal gapu iti dayta maysa a di pay nalpas nga aramid. Dayta, sadiay a mismo, ti epekto ti Zeigarnik. Ti Zeigarnik effecthe ket impakita babaen ti sikologo a ni Bluma Zeigarnik, a nangiladawan nga agannayastayo a mangtaginayon kadagiti saan a kompleto nga aramid nga aktibo iti memoriatayo iti napapaut ngem dagiti nakompleto nga aramid. Ti maysa a padron ti streak ket natural a mangtaptap iti daytoy iti disenio ti UX. Ipapantayon nga addaka iti day 63 ti learning streak. Iti dayta a punto, addaka’n iti agtultuloy a padron ti di pay nalpas a negosio. Manmano a malipatan ti utekmo dayta bayat nga agtugaw dayta iti likudan ti panunotmo. Iti daytoy a punto, agbalin ti utekmo a mangipatulod kenka kadagiti pakaammo. No pagtitiponem dagitoy a sikolohikal a puersa, mangrugin a pudno a maawatanmo no apay a dagiti streak ket saan laeng a regular nga app feature; kabaelanda a sukogen manen ti kababalin ti tao. Ngem iti sadinoman iti linia — diak maibaga nga eksakto no kaano, kas agduduma para iti amin — dagiti bambanag ket makadanon iti punto a ti maysa a panagsasaruno ket agsubli manipud iti “ragragsak” nga agturong iti banag a mariknam a dimo kabaelan a mapukaw. Dimo kayat a masayang ti 58 nga aldaw a panagregget, saan kadi? Dayta ti mamagbalin nga epektibo ti streak system. No umiso ti pannakaaramidna, dagiti streak tulonganna dagiti agus-usar a mangbangon kadagiti nakaskasdaaw nga ugali a mangibanag iti kalat. Mabalin nga inaldaw a panagbasa wenno kanayon a panangdanog iti gym. Dagitoy a maulit-ulit nga aramid (no dadduma babassit) ket kumaro bayat ti panaglabas ti panawen ken agbalin a nalawag iti inaldaw a panagbiagtayo. Ngem adda dua a sikigan ti tunggal sinsilio. Ti Naingpis a Linya iti Nagbaetan ti Ugali Ken Pannakapilit No sinurotmo, maibagam nga adda nasipnget a paset dagiti sistema ti streak. Ti pannakabukel ti ugali ket maipapan iti kinaurnos nga addaan iti maulit-ulit a kalat. Nupay kasta, ti pannakapilit ket ti kinapasnek ti panagtrabaho iti kalat a saanen a kasapulan no di ket tenglen gapu iti buteng wenno panangpilit. Daytat’ kasla labaha a naingpis a linia. Agsipilioka kadagiti ngipenmo iti tunggal agsapa a dika pampanunoten; automatiko ken nainkasigudan dayta, nga addaan iti nalawag a kalat a maaddaan iti nasayaat nga anges. Daytat’ streak a mangbukel iti nasayaat nga ugali. Ti ethical streak system ti mangted kadagiti agus-usar iti espasio nga aganges. No, gapu iti sumagmamano a rason, dika agsipilio iti agsapa, mabalinmo ti agsipilio iti tengnga ti aldaw. Maipalubos ti kinaimperpekto nga awan ti panagbuteng a mapukaw ti napaut a panagregget. Ti pannakapilit ket alaenna ti kasungani a ruta, a ti maysa a streak ket mangpadanag kenka, makonsiensiaka wenno uray pay nabannogka, ken no dadduma, mariknam a kasla awan ti naaramidam, iti laksid amin a naaramidamtarabaho. Agtignayka saan a gapu ta kayatmo, no di ket gapu ta subconsciously a mabutengka a makakita iti progreso a naisubli iti zero. Adda pay ketdi nangiladawan iti daytoy a naan-anay, “Nariknak nga agkusit, ngem basta diak maseknan. Awan ti aniaman no awan ti streak-ko”. Ipakita daytoy ti nalabes a hold streaks a mabalin nga adda iti maysa nga indibidual. Agingga a dagiti agar-aramat ket mangrugida a mangisilpo ti pateg ti bagida iti arbitrario a metriko imbes a ti orihinal a kalat wenno rason a rinugianda ti panagsasaruno idi damo. Agbalin ti streak no siasinoda, saan laeng nga no ania ti ar-aramidenda. Ti nasayaat ti pannakadiseniona nga ethical streak system ket rumbeng a marikna a kasla pammaregta iti agus-usar, saan a panangpilit wenno obligasion. Mainaig daytoy iti kinatimbeng ti intrinsic ken extrinsic motivation. Ti ekstrinsiko a motibo (dagiti akinruar a gunggona, panangliklik iti dusa) ket mabalin a mangrugi kadagiti agar-aramat, ngem ti intrinsic a motibo (ti panangaramid ti trabaho para iti personal a kalat a kas ti panagsursuro iti Espaniol gapu ta pudno a kayatmo ti makikomunikar iti maysa nga ay-ayatem) ket napigpigsa para iti napaut a pannakipaset. Ti nasayaat a sistema ket rumbeng nga aggrabitasion nga agturong iti intrinsiko a motibo babaen ti naannad a panagusar kadagiti extrinsic nga elemento, i.e., ipalagip kadagiti agar-aramat no kasano ti kaadayo ti dimtengda, saan a pangtaanna ida iti mabalin a mapukawda. Manen, napino a linia dayta. Ti simple a pannubok no agdisenio iti sistema ti streak ket aktual a mangted iti sumagmamano a tiempo ken panunoten no makagun-od dagiti produktom iti kuarta babaen ti panaglako kadagiti solusion iti panagdanag a pinartuat ti produktom. No wen, dakkel ti tsansa a gundawayam dagiti agus-usar. Isu a ti sumaganad a saludsod ket agbalin, No piliek ti agusar iti streak, kasano a disenioek dayta iti wagas a pudno a makatulong kadagiti agus-usar a mangragpat kadagiti kalatda? Ti UX ti Nasayaat a Streak System Design Patiek a ditoy a kaaduan a proyekto ti mangilansa iti epektibo a sistema ti streak wenno naan-anay a guloenda dayta. Lasatentayo ti sumagmamano a prinsipio ti UX ti nasayaat a disenio ti streak. Pagtalinaedem Dayta nga Awan Regget Nangngegyo la ketdi daytoy idi, mabalin a manipud kadagiti libro a kas iti Atomic Habits, ngem maikari a dakamaten a maysa kadagiti kalalakaan a pamay-an a maporma dagiti ugali ket babaen ti panangaramid iti tignay a bassit ken nalaka. Daytoy ket kapada ti ability factor a napagsasaritaanmi manipud iti Fogg Behavior Model. Ti umuna a pagannurotan ti aniaman a disenio ti streak ket rumbeng a ti panangaramid iti kasapulan nga aramid a kas bassit agingga a posible iti natauan bayat a maragpat pay laeng ti panagrang-ay. No ti inaldaw nga aramid kasapulanna ti pannakabalin ti pagayatan tapno maileppas, dayta nga aramid dina pagbalinen a lumabas iti lima nga aldaw. Apay? Dika’t matignay iti lima nga aldaw nga agsasaruno. Case in point: No agpatarayka iti meditation app, saanmo a kasapulan a lumasat dagiti agus-usar iti 20-minuto a sesion tapno laeng mataginayon ti streak. Padasem ketdi ti maysa laeng a minuto, mabalin nga uray maysa a banag a kas iti tallopulo a segundo. Kas kunada, babassit a tedted ti danum ti mamagbalin iti nabileg a taaw). Agtipon dagiti babassit a panagregget iti dadakkel a gapuanan bayat ti panaglabas ti panawen. Dayta koma ti kalat: ikkaten ti panagkikinnapet, nangnangruna no mabalin a narigat ti kanito. No na-stress wenno napalangguad dagiti agus-usar, ipakaammom kadakuada a ti basta panagparang, uray iti sumagmamano a segundo, ket maibilang a panagregget. Mangipaay iti Nalawag a Visual Feedback Makita ti tao ti nakaisigudan. Kaaduanna, kasapulan a makitatayo ti maysa a banag a patientayo; adda daytoy a kasapulan a mangiladawan kadagiti bambanag tapno ad-adda a maawatan dagitoy ken mangikabil kadagiti bambanag iti perspektibo. Daytoy ti gapuna a dagiti padron ti garit ket masansan nga agus-usar kadagiti makita nga elemento, a kas dagiti grapo, marka ti tsek, dagiti singsing ti panagrang-ay, ken dagiti grid, tapno mailadawan ti panagregget. Kitaen ti grapo ti kontribusion ti GitHub. Simple dayta a panangiladawan iti kinaurnos. Kaskasdi nga angsen dagiti developer dayta a kas iti oksihena.
Ti tulbek ket saan a marikna ti sistema ti streak nga abstrakto. Rumbeng a marikna dayta a pudno ken nagun-od. Kas pagarigan, dagiti singsing ti aktibidad ti Duolingo ken Apple’s Fitness ket agus-usar kadagiti nadalus a disenio ti animasion iti pannakaileppas ti maysa a streak, ken ti GitHub ket mangipakita ti historikal a datos ti kinapasnek ti maysa nga agus-usar iti panaglabas ti panawen.
Usaren ti Nasayaat a Timing Nadakamatko itay a dagiti tattao ket sapasap a makalipat babaen ti nakaisigudan, ken dagiti panangtignay ket makatulong a mangtaginayon iti panagrang-ay nga agpasango. No awan dagiti prompt, malipatan ti kaaduan a baro nga agus-usar ti agtultuloy. Mabalin nga okupado ti biag, mapukaw ti motibo, ken mapasamak dagiti bambanag. Uray dagiti nabayagen nga agus-usar ket magunggonaan kadagiti prompt, nupay kaaduanna, naiserradan iti uneg ti habit loop. Nupay kasta, uray ti kaaduan a naikumit a tao mabalin nga aksidente a maliwayanna ti maysa nga aldaw. Ti sistema ti streak-yo ket sigurado unay a kasapulanna dagiti palagip. Dagiti kaaduan a maus-usar a palagip ti prompt ket dagiti push notification. Talaga a napateg ti timing no agtrabaho kadagiti push notification. Napateg met ti kita ti app. Ti panangipatulod iti pakaammo iti alas 9 t.b. a mangibagbaga iti “You haven’t practiced today” ket karkarna laeng para iti learning app gapu ta adu ti addaan kadagiti banag nga aramiden iti aldaw sakbay pay a panunotenda ti mangileppas iti leksion. Ngem no fitness app ti pagsasaritaantayo, daytaket nainkalintegan ken nalabit manamnama pay ketdi a maipalagip iti nasapsapa nga aldaw. Dakkel ti panagduduma dagiti pakaammo ti push sigun iti kategoria ti app. Dagiti app ti fitness, kas pagarigan, ket makitada ti nangatngato a pannakipaset kadagiti nasapa a pakaammo iti agsapa (7–8 AM), bayat a dagiti app ti produktibidad ket mabalin a nasaysayaat ti panagaramidda iti nasapa a tengnga ti aldaw. Ti tulbek ket ti A/B test ti app’s timing-mo maibatay iti kababalin dagiti agus-usar imbes nga ipapan a dagiti bambanag ket maysa-kadakkel-a-maibagay-iti-amin. Ti agtrabaho para iti meditation app ket mabalin a saan nga agtrabaho para iti coding tracker. Dagiti dadduma pay a pamay-an ti prompt ket dagiti nalabaga a tulnek iti app icon ken uray dagiti app widgets. Agduduma dagiti panagadal, ngem ti gagangay a tao luktanna ti alikamenna iti nagbaetan ti 50-150 a daras iti inaldaw (PDF). No makakita ti maysa nga agus-usar iti nalabaga a tulnek iti app wenno widget a mangipakita iti agdama a streak tunggal ilukatna ti teleponona, paaduenna ti panagkumitna. Basta dikay’ aglablabes; ti prompt ket rumbeng nga agserbi a palagip, saan a nag. Rambakan dagiti Milestones Rumbeng a padasen ti maysa a sistema ti streak a rambakan dagiti milestone tapno mangsindi manen kadagiti emosion, nangruna para kadagiti agus-usar iti nauneg iti maysa a streak. No ti maysa nga agus-usar ket mangdungpar iti Aldaw 7, Aldaw 30, Aldaw 50, Aldaw 100, Aldaw 365, rumbeng nga aramidem ti dakkel a banag manipud iti dayta. Bigbigen dagiti nagapuanan — nangruna kadagiti nabayagen nga agus-usar.
Kas nakitatayo itay, naammuan daytoy ni Duolingo ket nangipatungpal iti animated graphic a mangrambak kadagiti milestone babaen ti confetti. Dadduma a plataporma ti mangted pay ketdi iti dakkel a bonus a gunggona a mangpatibker iti panagregget dagiti agus-usar. Ket mabalin a makagunggona daytoy kadagiti app, isu a dagiti agus-usar ket agannayas a mangibinglay kadagiti milestone-da iti publiko iti social media. Ti sabali pay a pagimbagan ket ti panangsegsegga a dumteng sakbay a maragpat dagiti napateg a pasamak. Saan laeng a ti panangtaginayon a sibibiag ti streak nga awan patinggana; adda banag a segseggaan dagiti agus-usar. Usaren dagiti Mekanismo ti Parabur Di mapakpakadaan ti biag. Masinga dagiti tattao. Aniaman a nasayaat a sistema ti streak ket rumbeng a mangnamnama iti kinaimperpekto. Maysa kadagiti kadakkelan a sikolohikal a pangta iti sistema ti streak ket ti hard reset iti zero kalpasan ti maymaysa laeng a nalipatan nga aldaw. Ti “etikal” a sistema ti streak ket rumbeng a mangipaay iti agus-usar iti sumagmamano a slack. Ipapantayon nga addaanka iti 90-aldaw a panagsursuro iti chess. Tallo a nasayaat a bulan a nagtultuloyka, ket maysa nga aldaw, matay ti teleponom bayat ti panagdaliasatmo, ket kas met laeng iti kasta, agbalin a 0 ti 90 — mapunas ti amin, amin dayta a panagregget, ket agpukaw ti panagrang-ay. Mabalin a naan-anay a madadael ti agus-usar. Makaupay unay ti kapanunotan a mangbangon manen iti dayta manipud iti rugi isu a saan a maikari ti panagregget. Iti kadaksan, mabalin a baybay-an ti maysa nga agus-usar ti app kalpasan a mariknana a kasla napaay. Ibilangmo ti pananginayon iti “parabur” a mekanismo iti sistema ti streak-mo:
Streak FreezePalubosan dagiti agar-aramat a igagara a malipatan ti maysa nga aldaw nga awan ti dusa. Extra TimePalubosan ti sumagmamano nga oras (2–3) a napalabas ti gagangay a deadline sakbay a mangtignay iti panag-reset. Dagiti Modelo ti PanagrupsaImbes a hard reset, ti streak ket bumassit iti bassit a gatad, e.g., 10 nga aldaw ket maikissay manipud iti streak iti tunggal maysa a nalpasen nga aldaw.
Agusarka iti Makaparegta a Tono Idiligtayo ti dua a mensahe a maipakita kadagiti agus-usar no agrupsa ti maysa a streak:
“Napukawmo ti 42-day streak-mo.Rugrugiam manen.” “Nagpakitaka iti 42 nga aldaw a nagsasaruno. Dayta’t di kapapati a panagrang-ay! Wanna give it another try?”
Agpada nga agpapada ti impormasion nga ipaawatda, ngem naiduma ti emosional nga epektona. Ti umuna a mensahe ket nalabit a mangrikna iti maysa nga agus-usar a nademoralisado ken pakaigapuan ti panagsardengda. Ti maikadua a mensahe ket mangrambak iti nagun-oden ken siaannad a paregtaenna ti agus-usar a mangpadas manen. Dagiti Karit ti Disenyo ti Sistema ti Streak Sakbay a mapantayo kadagiti teknikal nga espesipiko ti panangibangon iti sistema ti streak, rumbeng nga ammom dagiti karit a mabalin a pakaipasanguam. Mabalin a komplikado dagiti bambanag, kas namnamaem. Panangtaming kadagiti Timezones Adda rason no apay a ti panangtaming iti oras ken petsa ket karaman kadagiti karirigatan a konsepto a tamingen dagiti developer. Adda’t panagpormat, internasionalisasion, ken adu pay nga ikonsiderar. Bay-anyo a saludsodek kadakayo daytoy: Ania ti maibilang a kas maysa nga aldaw? Ammotayo nga agtartaray ti lubong iti nadumaduma a sona ti oras, ket kasla saan nga umdas dayta, dadduma a rehion ti addaan iti Daylight Saving Time (DST) a mamindua iti makatawen a mapasamak. Sadino pay ketdi ti pangrugiam a mangasikaso kadagitoy nga edge case? Ania ti maibilang a “pangrugian” ti bigat? Dadduma a developer ket padasenda a liklikan daytoy babaen ti panagusar ti maysa a sentral a sona ti oras, a kas ti UTC. Para iti dadduma nga agus-usar, umiso ti resulta daytoy, ngem para iti dadduma, mabalin a maiddep dayta iti maysa nga oras, dua nga oras, wenno nasursurok pay. Daytoy a di panagtutunos dadaelenna ti padas ti agus-usar. Saan unay a maseknan dagiti agus-usar no kasano ti panangtamingmo iti oras iti likudan ti eksena; ti laeng namnamaenda ket no mangaramidda iti streak action iti alas 11:40 t.m., ngarud rumbeng nga agparehistro dayta iti dayta nga eksakto nga oras, iti kontekstoda. Rumbeng nga ikeddengmo ti “maysa nga aldaw” a naibatay iti lokal a timezone ti agar-aramat, saan a ti oras ti server. Sigurado, mabalinmo nga alaen ti nalakaruta ken reset streaks iti sangalubongan para kadagiti amin nga agar-aramat iti tengnga ti rabii UTC, ngem mangparparnuayka unay iti kinaawan hustisia. Kanayon nga adda walo nga ekstra nga oras ti maysa idiay California a mangileppas iti trabahona ngem iti maysa nga agnanaed idiay London. Daytat’ di nainkalintegan a pagkurangan ti disenio a mangdusa iti dadduma nga agus-usar gapu iti lokasionda. Ket kasanon no sumarungkar laeng dayta a tao idiay London, makompletona ti maysa nga aramid, sa agsubli iti sabali a timezone? Maysa nga epektibo a solusion kadagitoy amin ket ti panagkiddaw kadagiti agar-aramat a nalawag a mangikeddeng ti sona ti orasda bayat ti panag-onboard (nasaysayaat kalpasan ti umuna a panangipaneknek). Nasayaat nga iraman ti di madmadlaw a nota a ti panangipaay iti impormasion iti timezone ket mausar laeng para iti app tapno umiso a masurot ti panagrang-ay, imbes a mausar kas personal a mailasin a datos. Ket sabali pay a nasayaat nga ideya a pagbalinen dayta a agbaliwbaliw a kasasaad. Isingasingko a liklikan ti asinoman a direkta a mangasikaso iti timezone logic iti maysa nga app. Usaren dagiti napadasan-ken-pudno a biblioteka ti petsa, kas iti Moment.js wenno pytz (Python), kdpy.. Saan a kasapulan nga imbentuen manen ti pilid para iti maysa a banag a kas iti komplikado. Naliway Nga Aldaw Ken Edge Cases Ti sabali pay a karit a rumbeng a pakadanaganmo ket dagiti di makontrol a kaso ti igid a kas iti nalabes a pannaturog dagiti agar-aramat, server downtime, lag, pannakapaay ti network, ken dadduma pay. Makatulong ti panangusar iti kapanunotan dagiti mekanismo ti parabur, kas kadagidiay napagsasaritaantayo itay. Ti grace window iti dua nga oras ket mabalin a makatulong agpadpada iti agus-usar ken developer, iti anag a dagiti agar-aramat ket saan a nainget a madusa gapu kadagiti di makontrol a kasasaad ti biag. Para kadagiti developer, makatulong dagiti grace windows kadagidiay di makontrol a kanito no bumaba ti server iti tengnga ti rabii. Kangrunaan iti amin, dika pulos agtalek iti kliyente. Kanayon a balidoen iti server-side. Ti server ti rumbeng a maymaysa a gubuayan ti kinapudno. Pananglapped iti Panagkusit Manen, diak maipaganetget daytoy nga umdas: Siguraduen a balidoen ti amin a banag iti server-side. Tattao dagiti agus-usar, ket mabalin nga agkusit dagiti tattao no maikkanda iti gundaway. Di maliklikan dayta. Mabalinmo a padasen ti:
Panagidulin kadagiti amin nga aramid babaen dagiti UTC timestamps.Ti kliyente ket mabalinna nga ipatulod ti lokal nga orasda, ngem ti serbidor ket mabalinna a dagus a pagbalinen dayta iti UTC ken mangbalido a maibusor ti oras ti serbidor. Iti kasta, no ti timestamp ti kliyente ket mapagduaduaan nga adayo, ti sistema ket mabalinna nga ilaksid daytoy a kas maysa a biddut, ken ti UI ket mabalin a sumungbat a maitunos. Using event-based tracking.Iti sabali a pannao, idulinen ti rekord ti tunggal tignay nga addaan iti metadata agraman ti impormasion a kas iti user’s ID, ti kita ti tignay a naaramid, ken ti timestamp ken timezone. Makatulong daytoy iti validation.
Panagbangon ti Makina ti Sistema ti Streak Saan a code tutorial daytoy, isu a liklikak ti panangibelleng iti maysa a bunggoy ti code kenka. Pagtalinaedek daytoy a praktikal ken iladawan no kasano a dagiti bambanag ket sapasap a mangpaandar iti makina ti sistema ti streak agingga iti arkitektura, panagayus, ken kinamapagtalkan. Pangruna nga Arkitektura Kas iti sumagmamano a daras a kinunak, pagbalinen ti serverthe single source of truth para iti streak data. Ti arkitektura ket mabalin a mapan ti kastoy iti serbidor:
Idulin ti tunggal user’s data iti database. Idulin ti agdama a pagidulinan ti streak (default a kas 0) a kas ti intero a bilang. Idulin ti kaykayat a sona ti oras, i.e., kuerdas ti sona ti oras ti IANA (mabalin a naipasimudaag manipud iti lokal a selio ti oras wenno nalawag babaen ti panagkiddaw ti agar-aramat a mangpili ti sona ti orasda). Kas pagarigan, “Amerika/New_York”. Asikasuen amin a lohika tapno maikeddeng no agtultuloy wenno agrupsa ti streak, nga addaan iti panangsukimat iti sona ti oras a relatibo iti lokal a sona ti oras ti agar-aramat.
Kabayatanna, iti dasig ti kliyente:
Ipakita ti agdama a streak, a gagangay a naala manipud iti server. Ipatulod ti tignay a naaramid iti porma ti metadata iti serbidor tapno mapasingkedan no ti agar-aramat ket aktual a nakompletona ti kualipikado a panagtignay ti panagsasaruno. Mangted ti visual feedback a naibatay kadagiti sungbat ti server.
Isu nga, iti ababa a pannao, ti utek ket adda iti server, ken ti kliyente ket para kadagiti panggep ti panangiparang ken panangipatulod kadagiti pasamak. Daytoy ket mangispal kenka iti adu a pannakapaay ken dagiti kaso ti igid, plus mangaramid kadagiti panagpabaro ken panagtarimaan a nalaklaka. Ti Lohikal nga Agayus Tuladentayo ti walkthrough no kasano a mapan ti minimal efficient streak system engine no makompleto ti maysa nga agus-usar ti maysa nga aramid:
Ti agar-aramat ket makompletona ti kualipikado a panagtignay ti streak. Ti kliyente ket mangipatulod ti maysa a pasamak iti serbidor a kas metadata. Mabalin a daytoy ket “Nakompleto ti agar-aramat X ti tignay Y iti timestamp Z”. Ti serbidor ket umawat iti daytoy a pasamak ken mangaramid ti batayan a panangipaneknek. Pudno kadi nga agus-usar daytoy? Na-authenticated kadi dagitoy? Balido kadi ti tignay? Agtutunos kadi ti timezone? No lumabas daytoy, alaen ti server ti user’s streak data manipud iti database. Kalpasanna, pagbalinen ti naawat a timestamp ti panagtignay iti lokal a sona ti oras ti agar-aramat. Bay-an a ti serbidor ket mangidilig kadagiti petsa ti kalendario (saan a dagiti timestamp) iti lokal a sona ti oras ti agar-aramat: No isu met laeng nga aldaw, ngarud ti tignay ket redundant ken awan ti panagbalbaliw tipanagsasaruno. No sumaganad nga aldaw, ngarud ti garit ket lumawa ken umadu iti 1. No adda giwang a nasurok a maysa nga aldaw, agrupsa ti streak. Nupay kasta, ditoy a mabalin nga iyaplikarmo ti grace mechanics. No ti mekanismo ti parabur ket nakalibas, kalpasanna i-reset ti streak iti 1.
No piliem ti mangidulin ti historikal a datos para kadagiti nagapuanan ti milestone, kalpasanna i-update dagiti variable a kas iti “longest streak” wenno “total active days”. Kalpasanna, i-update ti server ti database ken sumungbat iti kliyente. Maysa a banag a kas iti daytoy:
{ "agdama_nga_streak": 48, . "kaatiddogan_nga_streak": 50, . "dagup_nga_aktibo_nga_aldaw": 120, . "streak_extended": pudno, . } .
Kas maysa pay a rukod, ti serbidor ket rumbeng a padasenna manen wenno agkedked ken ipakaammona iti kliyente no adda aniaman a mapaay bayat ti proseso. Building Para iti Resilience Kas nadakamat itay, dagiti agar-aramat a mapukaw ti streak gapu kadagiti bugs wenno server downtime ket nakaam-amak nga UX, ken dagiti agar-aramat ket dida namnamaen nga alaenda ti panagtinnag para iti daytoy. Gapuna, ti sistemam a streak ket rumbeng nga addaan kadagiti salaknib kadagita nga eksena. No ti serbidor ket nadadael para iti pannakamantener (wenno ania man a rason), ibilang ti panangipalubos ti temporario a tawa dagiti kanayonan nga oras tapno matarimaan daytoy tapno dagiti tignay ket mabalin a maisubmitir a naladaw ken mabilang pay laeng. Mabalinmo pay a pilien nga ipakaammo kadagiti agar-aramat, nangruna no ti kasasaad ket kabaelanna nga apektaran ti agtultuloy a panagsasaruno. Pakaammo: Mangipasdek ti admin backdoor a sadiay ti datos ket mabalin a manual a maisubli. Di maliklikan dagiti bug, ket dadduma nga agus-usar ti mangawag iti app-mo wenno dumanon tapno suportaranda a naburak ti streak-da gapu iti rason a dida makontrol. Rumbeng a kabaelam a manual nga isublin dagiti garit no, kalpasan ti panagimbestigar, husto ti agus-usar. Konklusion Maysa a banag ti agtalinaed a nalawag: Talaga a nabileg dagiti streak gapu no kasano nga agtrabaho ti sikolohia ti tao iti kangrunaan a tukad. Ti kasayaatan a sistema ti streak sadiay ket daydiay saan a sipupuot a panunoten dagiti agus-usar. Nagbalinen a rutina ti dagus a resulta wenno makita nga irarang-ay, kas iti panagsipilio, nga agbalin a regular nga ugali. Ket i’m just gonna say it: Saan nga amin a produkto ket kasapulan ti streak system. Talaga kadi a rumbeng a pilitem ti kinapasnek gapu laeng ta kayatmo dagiti inaldaw nga aktibo nga agus-usar? Mabalin unay a ti sungbat ket “saan”.