Mwen sèten ou te tande pale de tach oswa itilize yon app ak youn. Men, janm mande poukisa tach yo tèlman popilè ak pwisan? Oke, gen youn nan evidan ke apps vle otan nan atansyon ou ke posib, men apa de sa, èske w te konnen ke lè app aprantisaj popilè Duolingo a te prezante widgets iOS yo montre tach, angajman itilizatè te monte pa 60%. Swasant pousan se yon chanjman masiv nan konpòtman epi montre kouman modèl "streak" yo ka itilize pou ogmante angajman ak itilizasyon kondwi. Nan pi fondamantal li yo, yon tras se kantite jou youn apre lòt ke yon itilizatè konplete yon aktivite espesifik. Gen kèk moun tou defini li kòm yon abitid "gamified" oswa yon metrik ki fèt pou ankouraje itilizasyon konsistan. Men, tach depase pi lwen ke yo te yon metrik oswa yon dosye nan yon app; li pi sikolojik pase sa. Ensten imen fasil pou enfliyanse ak bon faktè. Gade twa faktè sa yo: pwogrè, fyète, ak laperèz pou rate (souvan yo rele FOMO). Kisa tout bagay sa yo genyen an komen? Efò. Plis efò ou mete nan yon bagay, plis li fòme idantite w, e se konsa streaks kwaze nan mond lan nan sikoloji konpòtman. Koulye a, ak gwo pouvwa vini gwo responsablite, e poutèt sa, gen yon bò nwa nan tach. Nan atik sa a, nou pral antre nan sikoloji, UX, ak prensip konsepsyon dèyè bati yon sistèm tras efikas. Nou pral gade (1) poukisa sèvo nou yo prèske enstenktif reponn a aktivite streak, (2) fason pou konsepsyon streaks nan fason ki vrèman ede itilizatè yo, ak (3) travay teknik ki enplike nan bati yon modèl streak. Sikoloji Dèyè Streaks Pou konsepsyon ak bati yon sistèm streak efikas, nou bezwen konprann ki jan li aliyen ak fason sèvo nou yo branche. Tankou, ki sa ki fè li tèlman efikas nan nivo ke nou santi anpil devouman entans pou pwoteje ray nou yo? Gen twa prensip sikoloji enteresan, ki byen dokimante ki sipòte sa ki fè tras yo tèlman pwisan ak depandans. Degoutans pèt Sa a se pwobableman fòs ki pi fò dèyè tach. Mwen di sa paske pifò fwa, ou prèske pa ka evite sa nan lavi. Panse a li fason sa a: Si yon zanmi ba ou $ 100, ou ta kontan. Men, si ou pèdi $100 nan bous ou, sa ta fè mal anpil. Pwa emosyonèl sitiyasyon sa yo pa egal. Pèt fè mal pi plis pase benefis santi bon. Ann pran li pi lwen epi di ke mwen ba ou $ 100 epi mande ou jwe yon jwèt aza. Gen yon chans 50% ou genyen yon lòt $100 ak yon chans 50% ou pèdi $100 orijinal la. Èske ou ta pran li? mwen pa ta. Pifò moun pa ta. Sa se degoutans pèt. Si ou reflechi sou sa, li se lojik, li se konprann, li se moun. Konsèp dèyè aversion pèt se ke nou santi doulè a nan pèdi yon bagay de fwa plis pase plezi nan pran yon bagay ki gen valè egal. An tèm sikolojik, pèt retade plis pase pwogrè fè. Ou pwobableman wè ki jan sa a gen rapò ak tach. Pou konstwi yon tras aparan, li mande efò; kòm yon tras ap grandi, motivasyon ki dèyè li kòmanse fennen; oswa plis presizyon, li kòmanse vin segondè. Men yon egzanp: Di zanmi ou gen yon seri twa jou ki fèmen "Move Rings" yo sou Apple Watch yo. Yo pa gen prèske anyen pou pèdi pi lwen pase vle reyalize objektif yo epi yo dwe konsistan. An menm tan an, ou gen yon seri enpresyonan 219 jou. Chans yo se ke ou kwense pa pè a pèdi li. Ou gen plis chans pa panse sou siksè nan pwen sa a; li plis sou pwoteje efò envesti ou, e sa se degoutans pèt. Duolingo eksplike kijan degoutans pèt kontribye nan repiyans yon itilizatè pou kraze yon seri long, menm nan jou ki pi parese yo. Nan yon fason, yon tras ka vire nan yon abitid lè degoutans pèt rezoud nan. Modèl Konpòtman Fogg (B = MAP) Kounye a ke nou konprann pè pèdi efò ki envesti nan pi long streaks, yon lòt kesyon se: Ki sa ki fè nou fè bagay la an plas an premye, jou apre jou, menm anvan streak la vin gwo? Se sa ki modèl Fogg Konpòtman an. Li se relativman senp. Yon konpòtman (B) rive sèlman lè twa faktè - Motivasyon (M), Kapasite (A), ak Èd memwa (P) - aliman nan menm moman an. Kidonk, ekwasyon B=MAP. Si nenpòt nan faktè sa yo, menm yon sèl, ki manke nan moman sa a, konpòtman an pa pral rive. Se konsa, pou yon sistèm tras yo dwe efikas ak renouvlab, tout twa faktè yo dwe prezan: MotivasyonSa a frajil epi li pa yon bagay ki toujou prezan. Gen jou lè w yeponpe yo aprann Panyòl, ak jou ou pa menm santi yon iota nan volonte yo aprann lang nan. Motivasyon pou kont li pou konstwi yon abitid se enfidèl ak yon batay pèdi depi premye jou. Kapasite Pou konpanse pou limit motivasyon yo, kapasite se kritik. Nan kontèks sa a, kapasite vle di fasilite nan aksyon, sa vle di, efò a tèlman fasil ke li ireyèl pou di li pa posib. Pifò aplikasyon yo fè espre itilize sa a. Apple Fitness jis bezwen ou kanpe pou yon minit nan yon èdtan pou touche yon tik nan direksyon objektif Kanpe ou. Duolingo sèlman bezwen yon sèl leson fini. Travay sa yo pa mande tout efò sa a. Baryè a tèlman ba ke menm nan pi move jou ou, ou ka fè li. Men, efò konbine nan yon seri kontinyèl se kote lide a nan pèdi ke tras anvwaye nan. PromptSe sa ki konplete ekwasyon an. Moun yo natirèlman bliye, kidonk wi, kapasite ka fè nou 90% la. Men, yon èd memwa fè nou sonje pou nou aji. Streaks yo pèsistan pa konsepsyon, kidonk itilizatè yo bezwen toujou ap raple yo aji. Pou wè ki jan pwisan yon èd memwa kapab, Duolingo te fè yon tès A/B pou wè si yon ti badj wouj sou icon aplikasyon an te ogmante itilizasyon konsistan. Li pwodui yon ogmantasyon 6% nan itilizatè aktif chak jou. Jis yon badj wouj. Modèl Limitasyon Tout bagay sa yo te di, gen yon limit nan modèl Fogg ki fè kritik ak rechèch modèn te remake ke yon konsepsyon ki depann twò lou sou envit, tankou notifikasyon agresif, riske kreye fatig mantal. Notifikasyon konstan ak lè siplemantè ka lakòz itilizatè yo abandone. Se konsa, gade soti pou sa. Efè Zeigarnik la Ki jan ou santi ou lè ou kite yon travay nan pwojè mwatye fè? Sa irite anpil moun paske travay ki poko fini okipe plis espas mantal pase bagay nou konplete yo. Lè yon bagay fèt epi li ale, nou gen tandans bliye li. Lè yon bagay ki pa fèt, li gen tandans pou peze sou tèt nou. Se egzakteman poukisa pwodwi dijital yo sèvi ak endikatè pwogrè atifisyèl, tankou ba wofil fini Upwork a, pou fè yon itilizatè konnen ke pwofil yo se sèlman "60% konplè". Li nudges itilizatè a fini sa yo te kòmanse.
Ann gade yon lòt egzanp. Ou gen senk travay nan yon aplikasyon lis pou fè, epi nan fen jounen an, ou sèlman tcheke kat nan yo jan yo fini. Anpil nan nou pral santi yo pa akonpli akòz yon sèl travay ki pa fini. Sa, la, se efè Zeigarnik. Efè Zeigarnik te demontre pa sikològ Bluma Zeigarnik, ki te dekri ke nou gen tandans kenbe travay enkonplè aktif nan memwa nou pi lontan pase travay fini. Yon modèl tras natirèlman tape sou sa a nan konsepsyon UX. Ann di ou se nan jou 63 nan yon seri aprantisaj. Nan pwen sa a, w ap nan yon modèl kontinyèl nan biznis ki poko fini. Sèvo ou ta raman bliye sou li kòm li chita nan do a nan tèt ou. Nan pwen sa a, sèvo ou vin youn nan voye notifikasyon ou. Lè ou mete fòs sikolojik sa yo ansanm, ou kòmanse vrèman konprann poukisa tach yo pa jis yon karakteristik app regilye; yo kapab chanje konpòtman moun. Men, yon kote sou liy lan - mwen pa ka di egzakteman ki lè, kòm li diferan pou tout moun - bagay sa yo rive nan yon pwen kote yon tras chanjman soti nan "plezi" nan yon bagay ou santi ou pa gen mwayen pou pèdi. Ou pa vle 58 jou efò yo ale nan fatra, ou? Se sa ki fè yon sistèm streak efikas. Si yo fè sa byen, streaks ede itilizatè yo bati abitid etonan ki akonpli yon objektif. Li ta ka li chak jou oswa frape jimnastik la toujou. Aksyon sa yo repete (pafwa ti) konpoze ak tan epi yo vin evidan nan lavi chak jou nou an. Men, gen de kote nan chak pyès monnen. Liy mens ant abitid ak konpulsyon Si ou te swiv ansanm, ou ka deja di ke gen yon bò nwa nan sistèm tras. Fòmasyon abitid se sou konsistans ak yon objektif repete. Konpulsyon, sepandan, se konsistans nan travay sou yon objektif ki pa nesesè ankò men kenbe sou akòz laperèz oswa presyon. Li se yon liy razwa-mens. Ou bwose dan ou chak maten san reflechi; li se otomatik ak enstenktif, ak yon objektif klè pou gen bon souf. Sa se yon streak ki fòme yon bon abitid. Yon sistèm tras etik bay itilizatè yo espas pou respire. Si, pou kèk rezon, ou pa bwose nan maten an, ou ka bwose a midi. Enpèfeksyon pèmèt san yo pa pè pèdi yon efò long. Konpulsyon pran wout opoze a, kote yon tras fè ou enkyete, ou santi ou koupab oswa menm fatige, epi pafwa, li santi ou tankou ou pa te akonpli anyen, malgre tout ou.travay. Ou aji pa paske ou vle, men paske w ap enkonsyaman pè pou w wè pwogrè ou reset a zewo. Yon moun menm te dekri sa a parfe, "Mwen te santi ke mwen te kopye, men tou senpleman pa t 'pran swen. Mwen pa anyen san streak mwen an". Sa a montre tach yo kenbe ekstrèm ka genyen sou yon moun. Nan limit ke itilizatè yo kòmanse mare valè pwòp tèt yo nan yon metrik abitrè olye ke objektif orijinal la oswa rezon ki fè yo te kòmanse tras la an plas an premye. Tras la vin ki moun yo ye, pa sèlman sa yo fè. Yon sistèm etik ki byen fèt ta dwe santi tankou ankourajman itilizatè a, pa presyon oswa obligasyon. Sa a gen rapò ak balans lan nan motivasyon intrinsèque ak ekstèn. Motivasyon ekstèn (rekonpans ekstèn, evite pinisyon) ta ka fè itilizatè yo kòmanse, men motivasyon intrinsèque (fè travay la pou yon objektif pèsonèl tankou aprann Panyòl paske ou vrèman vle kominike ak yon moun ou renmen) pi fò pou angajman alontèm. Yon bon sistèm ta dwe gravite nan direksyon pou motivasyon intrinsèque ak atansyon itilizasyon eleman ekstèn, sa vle di, raple itilizatè yo nan ki jan lwen yo te rive, pa menase yo ak sa yo ta ka pèdi. Ankò, li se yon liy byen. Yon tès senp lè w ap desine yon sistèm streak se aktyèlman pran kèk tan epi panse si pwodwi ou yo fè lajan nan vann solisyon a enkyetid ke pwodwi ou te kreye. Si wi, gen yon gwo chans ou ap eksplwate itilizatè yo. Se konsa, pwochen kesyon an vin, Si mwen chwazi sèvi ak streak, ki jan pou mwen konsepsyon li nan yon fason ki vrèman ede itilizatè yo reyalize objektif yo? UX nan konsepsyon bon sistèm tras Mwen kwè ke sa a se kote pifò pwojè swa kloure yon sistèm streak efikas oswa konplètman dezòd li. Ann ale nan kèk prensip UX nan yon bon konsepsyon tras. Kenbe li san efò Ou te pwobableman tande sa a anvan, petèt nan liv tankou abitid atomik, men li la vo mansyone ke youn nan fason ki pi fasil abitid yo ka fòme se pa fè aksyon an ti ak fasil. Sa a se menm jan ak faktè a kapasite nou te diskite nan modèl la Konpòtman Fogg. Premye règ nan nenpòt konsepsyon tras yo ta dwe fè aksyon ki nesesè yo piti ke imen posib pandan y ap toujou reyalize pwogrè. Si yon aksyon chak jou mande volonte pou konplete, aksyon sa a p ap fè l pase senk jou. Poukisa? Ou pa ka motive senk jou nan yon ranje. Ka an pwen: Si ou kouri yon app meditasyon, ou pa bezwen fè itilizatè yo ale nan yon sesyon 20 minit jis pou kenbe tras la. Eseye yon sèl minit, petèt menm yon bagay tankou trant segonn, olye. Kòm pwovèb la di, ti gout dlo fè gwo lanmè a). Ti efò konpile nan gwo reyalizasyon ak tan. Sa ta dwe objektif la: retire friksyon, sitou lè moman sa a ta ka difisil. Lè itilizatè yo estrès oswa akable, fè yo konnen ke tou senpleman parèt, menm pou kèk segonn, konte kòm efò. Bay Feedback vizyèl klè Moun yo vizyèl pa nati. Pifò fwa, nou bezwen wè yon bagay yo kwè; gen sa a bezwen visualized bagay yo konprann yo pi byen epi mete bagay sa yo nan pèspektiv. Se poutèt sa modèl tras souvan itilize eleman vizyèl, tankou graf, mak, bag pwogrè, ak kadriyaj, pou visualiser efò. Gade graf kontribisyon GitHub la. Li se yon senp vizyalizasyon konsistans. Men, devlopè yo respire li tankou oksijèn.
Kle a se pa fè yon sistèm streak santi abstrè. Li ta dwe santi reyèl ak touche. Pou egzanp, bag aktivite Fòm Duolingo ak Apple yo sèvi ak desen animasyon pwòp lè yo fini yon tras, epi GitHub montre done istorik sou konsistans yon itilizatè sou tan.
Sèvi ak bon distribisyon Mwen te mansyone byen bonè ke moun yo jeneralman bliye pa nati, e ke envit ka ede kenbe momantòm pou pi devan. San envit, pifò nouvo itilizatè yo bliye kontinye. Lavi ka vin okipe, motivasyon disparèt, epi bagay sa yo rive. Menm itilizatè ki dire lontan yo benefisye de envit, menm si pifò fwa yo deja fèmen andedan bouk abitid la. Men, menm moun ki pi angaje nan ka aksidantèlman manke yon jou. Sistèm streak ou a pi definitivman bezwen rapèl. Rapèl rapid ki pi itilize yo se notifikasyon pouse. Distribisyon vrèman enpòtan lè w ap travay ak notifikasyon pouse. Kalite aplikasyon an enpòtan tou. Voye yon notifikasyon a 9 a.m. ki di "Ou pa te pratike jodi a" se jis etranj pou yon app aprantisaj paske anpil moun gen bagay yo fè nan jou a anvan yo menm panse sou ranpli yon leson. Si nou ap pale de yon aplikasyon Fitness, menm si, lise rezonab e petèt menm espere yo dwe raple pi bonè nan jounen an. Notifikasyon pouse yo varye anpil selon kategori aplikasyon an. Aplikasyon Fòm yo, pou egzanp, wè pi gwo angajman ak notifikasyon bonè maten (7-8 AM), pandan y ap aplikasyon pou pwodiktivite ta ka fè pi byen nan kòmansman midi. Kle a se A/B teste tan aplikasyon w lan ki baze sou konpòtman itilizatè ou yo olye ke sipoze bagay yo se yon sèl-gwosè-adapte-tout. Ki sa ki travay pou yon app meditasyon ta ka pa travay pou yon tracker kodaj. Lòt metòd rapid yo se pwen wouj sou icon aplikasyon an e menm widje aplikasyon an. Etid yo varye, men moun an mwayèn déblotché aparèy yo ant 50-150 fwa pa jou (PDF). Si yon itilizatè wè yon pwen wouj sou yon aplikasyon oswa yon widget ki endike yon seri aktyèl chak fwa yo debloke telefòn yo, sa ogmante angajman. Jis pa twòp li; èd memwa a ta dwe sèvi kòm yon rapèl, pa yon nag. Selebre etap enpòtan yo Yon sistèm streak ta dwe eseye selebre jalons pou relanse emosyon, espesyalman pou itilizatè yo byen fon nan yon streak. Lè yon itilizatè frape Jou 7, Jou 30, Jou 50, Jou 100, Jou 365, ou ta dwe fè yon gwo zafè soti nan li. Rekonèt reyalizasyon - espesyalman pou itilizatè ki dire lontan.
Kòm nou te wè pi bonè, Duolingo kalkile sa a epi aplike yon grafik anime ki selebre etap enpòtan ak konfetti. Gen kèk tribin menm bay rekonpans bonis sibstansyèl ki valide efò itilizatè yo. Epi sa a ka benefisye aplikasyon yo, konsa itilizatè yo gen tandans pataje etap enpòtan yo piblikman sou medya sosyal. Yon lòt benefis se antisipasyon ki vini anvan yo rive nan etap enpòtan yo. Li se pa jis kenbe tras la vivan infiniman; itilizatè yo gen yon bagay yo gade pou pi devan. Sèvi ak Mekanis Grace Lavi se enprevizib. Moun yo distrè. Nenpòt bon sistèm streak ta dwe atann enpèfeksyon. Youn nan pi gwo menas sikolojik nan yon sistèm tras se reset difisil a zewo apre jis yon sèl jou rate. Yon sistèm tras "etik" ta dwe bay itilizatè a kèk kanson. Ann di ou gen yon seri aprantisaj echèk 90 jou. Ou te konsistan pandan twa bon mwa, epi yon jou, telefòn ou mouri pandan w ap vwayaje, epi jis konsa, 90 vin 0 - tout bagay, tout efò sa a, yo efase, ak pwogrè disparèt. Itilizatè a ta ka konplètman devaste. Panse a nan rekonstwi li nan grate tèlman demoralize ke efò a pa vo li. Nan pi move, yon itilizatè ta ka abandone app a apre li santi li tankou yon echèk. Konsidere ajoute yon mekanis "favè" nan sistèm tras ou a:
Streak Freeze Pèmèt itilizatè yo entansyonèlman manke yon jou san penalite. Tan Siplemantè Pèmèt kèk èdtan (2-3) pase dat limit nòmal la anvan ou deklanche yon reset. Modèl Dekonpozisyon Olye de yon reset difisil, tras la diminye pa yon ti kantite, pa egzanp, 10 jou yo retire nan tras la pou chak jou rate.
Sèvi ak yon Ton ankourajan Ann konpare de mesaj yo montre itilizatè yo lè yon seri kase:
"Ou pèdi seri 42 jou ou. Kòmanse ankò." "Ou te parèt pou 42 jou dwat. Sa se yon pwogrè enkwayab! Ou vle fè li yon lòt eseye?"
Tou de transmèt menm enfòmasyon an, men enpak emosyonèl la diferan. Premye mesaj la ta gen plis chans fè yon itilizatè santi yo demoralize epi lakòz yo kite fimen. Dezyèm mesaj la selebre sa ki te deja reyalize ak dousman ankouraje itilizatè a eseye ankò. Streak Systems Design Challenges Anvan nou antre nan spesifik teknik yo nan bati yon sistèm tras, ou ta dwe okouran de defi yo ke ou ta ka fè fas a. Bagay yo ka vin konplike, jan ou ta ka espere. Manyen Timezones Gen yon rezon ki fè manyen tan ak dat se pami konsèp ki pi difisil devlopè yo fè fas ak. Genyen fòma, entènasyonalizasyon, ak plis ankò yo konsidere. Kite m mande w sa: Kisa ki konte kòm yon jou? Nou konnen mond lan kouri sou diferan zòn lè, e kòm si sa pa ase, kèk rejyon gen Daylight Saving Time (DST) ki rive de fwa nan yon ane. Ki kote ou menm kòmanse okipe ka kwen sa yo? Ki sa ki konte kòm "kòmanse" nan demen? Gen kèk devlopè ki eseye evite sa a lè yo itilize yon sèl fusò lè santral, tankou UTC. Pou kèk itilizatè, sa a ta bay rezilta kòrèk, men pou kèk moun, li ta ka koupe nan yon èdtan, de èdtan, oswa plis. Enkonsistans sa a kraze eksperyans itilizatè a. Itilizatè yo pran swen mwens fason ou jere tan an dèyè sèn yo; tout sa yo espere se ke si yo fè yon aksyon streak nan 11:40 p.m., Lè sa a, li ta dwe anrejistre nan tan egzak sa a, nan kontèks yo. Ou ta dwe defini "yon jou" ki baze sou zòn lè lokal itilizatè a, pa lè sèvè a. Asire w, ou ka pran fasil lawout ak reset streaks globalman pou tout itilizatè a minwi UTC, men w ap anpil kreye enjistis. Yon moun nan Kalifòni toujou gen uit èdtan siplemantè pou konplete travay yo pase yon moun k ap viv nan Lond. Sa a se yon defo konsepsyon enjis ki pini sèten itilizatè akòz kote yo. E si moun sa a nan Lond sèlman vizite, konplete yon travay, Lè sa a, retounen nan yon lòt timezone? Yon solisyon efikas pou tout bagay sa yo se mande itilizatè yo pou yo mete klèman fusò lè yo pandan onboarding (de preferans apre premye otantifikasyon). Li se yon bon lide pou mete yon nòt sibtil ke bay enfòmasyon sou fusò lè yo itilize sèlman pou aplikasyon an swiv pwogrè avèk presizyon, olye ke yo itilize kòm done ki idantifye moun pèsonèlman. Epi li se yon lòt bon lide fè sa yon anviwònman chanjan. Mwen sijere ke nenpòt moun evite dirèkteman manyen lojik timezone nan yon app. Sèvi ak bibliyotèk ki te eseye ak tout bon dat, tankou Moment.js oswa pytz (Python), elatriye. Pa gen okenn bezwen reenvante volan an pou yon bagay ki konplèks tankou sa a. Jou ki rate ak ka Edge Yon lòt defi ou ta dwe enkyete sou se ka kwen enkontwolab tankou itilizatè yo oversleeping, D' sèvè, lag, echèk rezo, ak sou sa. Sèvi ak lide nan mekanis gras, tankou sa yo nou te diskite pi bonè, ka ede. Yon fenèt favè de zè de tan ta ka ede tou de itilizatè ak pwomotè, nan sans ke itilizatè yo pa rijid pini pou sikonstans lavi enkontwolab. Pou devlopè, fenèt gras yo itil nan moman sa yo enkontwolab lè sèvè a desann nan mitan lannwit lan. Pi wo pase tout, pa janm fè kliyan an konfyans. Toujou valide sou bò sèvè a. Sèvè a ta dwe sèl sous verite a. Prevansyon tronpe Yon fwa ankò, mwen pa ka ensiste sa a ase: Asire w ke ou valide tout bagay bò sèvè. Itilizatè yo se moun, e moun ta ka tronpe si yo bay opòtinite a. Li se inevitab. Ou ta ka eseye:
Sere tout aksyon ak timestamps UTC. Kliyan an ka voye lè lokal yo, men sèvè a ka imedyatman konvèti sa a UTC ak valide kont lè sèvè a. Nan fason sa a, si timestamp kliyan an se sispèkman lwen, sistèm nan ka rejte li kòm yon erè, ak UI a ka reponn kòmsadwa. Sèvi ak swivi ki baze sou evènman. Nan lòt mo, sere yon dosye chak aksyon ak metadata ki gen ladan enfòmasyon tankou ID itilizatè a, ki kalite aksyon ki fèt, ak timestamp ak timezone. Sa a ede ak validation.
Bati yon motè sistèm Streak Sa a se pa yon leson patikilye kòd, kidonk mwen pral evite jete yon pakèt kòd sou ou. Mwen pral kenbe sa a pratik epi dekri kijan bagay yo jeneralman opere yon motè sistèm tras osi lwen ke achitekti, koule, ak fyab. Nwayo Achitekti Kòm mwen te di plizyè fwa, fè sèvè a se sèl sous verite pou done tras. Achitekti a ka ale yon bagay tankou sa a sou sèvè a:
Sere done chak itilizatè yo nan yon baz done. Sere magazen streak aktyèl la (default kòm 0) kòm yon nonb antye relatif. Sere preferans timezone a, sa vle di, seri Timezone IANA (swa implicite soti nan timestamp lokal yo oswa klèman lè w mande itilizatè yo chwazi timezone yo). Pou egzanp, "Amerik/New_York". Manyen tout lojik pou detèmine si tras la kontinye oswa kraze, ak yon chèk fusòn ki parapò ak zòn lè lokal itilizatè a.
Pandan se tan, sou bò kliyan an:
Montre tras aktyèl la, nòmalman pran nan sèvè a. Voye aksyon ki fèt sou fòm metadata sou sèvè a pou verifye si wi ou non itilizatè a te aktyèlman ranpli yon aksyon streak ki kalifye. Bay fidbak vizyèl ki baze sou repons sèvè yo.
Se konsa, nan ti bout tan, sèvo a se sou sèvè a, ak kliyan an se pou rezon ekspozisyon ak soumèt evènman yo. Sa a sove ou anpil echèk ak ka kwen, plis fè mizajou ak ranje pi fasil. Koule ki lojik Ann simule yon ti mache sou kijan yon motè sistèm tras minimòm efikas ta ale lè yon itilizatè konplete yon aksyon:
Itilizatè a konplete yon aksyon streak ki kalifye. Kliyan an voye yon evènman nan sèvè a kòm metadata. Sa a ta ka "Itilizatè X ranpli aksyon Y nan timestamp Z". Sèvè a resevwa evènman sa a epi li fè validasyon debaz. Èske sa se yon itilizatè reyèl? Èske yo otantifye? Èske aksyon an valab? Èske zòn lè a konsistan? Si sa a pase, sèvè a rekipere done streak itilizatè a nan baz done a. Lè sa a, konvèti timestamp aksyon an resevwa nan zòn lè lokal itilizatè a. Kite sèvè a konpare dat kalandriye yo (pa timestamps) nan zòn lè lokal itilizatè a: Si se menm jou a, Lè sa a, aksyon an se redondants epi pa gen okenn chanjman nan latras. Si se jou kap vini an, lè sa a tras la pwolonje ak enkreman pa 1. Si gen yon espas ki gen plis pase yon jou, tras la kase. Sepandan, sa a se kote ou ta ka aplike mekanik gras. Si mekanis gras la rate, Lè sa a, retabli tras la a 1.
Si w chwazi pou konsève pou done istorik pou reyalizasyon etap enpòtan yo, Lè sa a, mete ajou varyab tankou "pi long seri" oswa "total jou aktif". Lè sa a, sèvè a mete ajou baz done a epi li reponn kliyan an. Yon bagay tankou sa a:
{ "current_streak": 48, "longest_streak": 50, "total_active_days": 120, "streak_extended": vre, }
Kòm yon lòt mezi, sèvè a ta dwe swa reesye oswa rejte epi notifye kliyan an lè anyen echwe pandan pwosesis la. Bati pou Rezilyans Kòm mansyone anvan, itilizatè yo pèdi yon seri akòz pinèz oswa D' sèvè se terib UX, ak itilizatè yo pa atann yo pran sezon otòn la pou li. Kidonk, sistèm streak ou a ta dwe gen pwoteksyon pou senaryo sa yo. Si sèvè a desann pou antretyen (oswa kèlkeswa rezon), konsidere pèmèt yon fenèt tanporè èdtan adisyonèl pou jwenn li fiks pou aksyon yo ka soumèt an reta epi yo toujou konte. Ou ka chwazi tou pou notifye itilizatè yo, sitou si sitiyasyon an kapab afekte yon seri kontinyèl. Remak: Etabli yon degize admin kote done yo ka manyèlman retabli. Pinèz yo inevitab, ak kèk itilizatè ta rele app ou oswa lonje kò yo pou sipòte ke tras yo te kase pou yon rezon yo pa t 'kapab kontwole. Ou ta dwe kapab manyèlman retabli tach yo si, apre envestigasyon, itilizatè a gen rezon. Konklizyon Yon bagay rete klè: Streaks yo vrèman pwisan paske nan fason sikoloji imen ap travay sou yon nivo fondamantal. Pi bon sistèm tras la se youn nan itilizatè yo pa panse osijè de konsyans. Li te vin tounen yon woutin nan rezilta imedya oswa pwogrè vizib, tankou bwose dan, ki vin tounen yon abitid regilye. Apre sa, mwen jis pral di li: Se pa tout pwodwi bezwen yon sistèm tras. Èske ou ta dwe reyèlman fòse konsistans jis paske ou vle itilizatè aktif chak jou? Repons lan ka trè byen se "non".