Ég er viss um að þú hefur heyrt um rákir eða notað app með einum. En alltaf furða hvers vegna rákir eru svona vinsælar og öflugar? Jæja, það er augljóst að forrit vilja eins mikla athygli þína og mögulegt er, en fyrir utan það, vissir þú að þegar vinsæla námsforritið Duolingo kynnti iOS græjur til að sýna rákir, jókst skuldbinding notenda um 60%. Sextíu prósent er gríðarleg breyting á hegðun og sýnir hvernig hægt er að nota „streak“ mynstur til að auka þátttöku og auka notkun. Í grundvallaratriðum er rák fjöldi daga í röð sem notandi lýkur tiltekinni athöfn. Sumir skilgreina það líka sem „gamified“ vana eða mæligildi sem ætlað er að hvetja til stöðugrar notkunar. En rákir ná lengra en að vera mæligildi eða met í appi; það er meira sálfræðilegt en það. Mannlegt eðlishvöt er auðvelt að hafa áhrif á með réttum þáttum. Horfðu á þessa þrjá þætti: framfarir, stolt og ótta við að missa af (almennt kallað FOMO). Hvað eiga allt þetta sameiginlegt? Átak. Því meira sem þú leggur þig í eitthvað, því meira mótar það sjálfsmynd þína og þannig fara rákir inn í heim atferlissálfræðinnar. Nú, með miklum krafti fylgir mikil ábyrgð, og vegna þess er dökk hlið á rákunum. Í þessari grein munum við fara í sálfræði, UX og hönnunarreglur á bak við að byggja upp áhrifaríkt rákkerfi. Við munum skoða (1) hvers vegna heilinn okkar bregst næstum ósjálfrátt við rákvirkni, (2) hvernig á að hanna rákir á þann hátt sem raunverulega hjálpar notendum og (3) tæknilega vinnuna sem felst í því að byggja upp rákamynstur. Sálfræðin á bak við Streaks Til að hanna og byggja upp áhrifaríkt rákakerfi þurfum við að skilja hvernig það er í takt við hvernig heilinn okkar er tengdur. Eins og, hvað gerir það svo áhrifaríkt að því marki að við finnum fyrir svo mikilli vígslu til að vernda rákir okkar? Það eru þrjár áhugaverðar, vel skjalfestar sálfræðireglur sem styðja það sem gerir rákir svo öflugar og ávanabindandi. Tapsfælni Þetta er líklega sterkasta aflið á bak við rákir. Ég segi þetta vegna þess að oftast er næstum því ekki hægt að forðast þetta í lífinu. Hugsaðu um það á þennan hátt: Ef vinur gefur þér $100, þá værir þú ánægður. En ef þú tapaðir $100 úr veskinu þínu myndi það skaða þig miklu meira. Tilfinningalegt vægi þessara aðstæðna er ekki jafnt. Tap er miklu meira sárt en hagnaður líður vel. Við skulum taka það lengra og segja að ég gef þér $100 og biðjum þig um að spila fjárhættuspil. Það eru 50% líkur á að þú vinnur $100 í viðbót og 50% líkur á að þú tapir upprunalegu $100. Myndirðu taka það? ég myndi ekki. Flestir myndu ekki. Það er tapsfælni. Ef þú hugsar um það, þá er það rökrétt, það er skiljanlegt, það er mannlegt. Hugmyndin á bak við tapsfælni er sú að við finnum sársaukann við að missa eitthvað tvöfalt meira en ánægjuna af því að öðlast eitthvað jafnvirði. Í sálfræðilegu tilliti situr tap meira en hagnaður gerir. Þú sérð líklega hvernig þetta tengist rákum. Til að byggja upp áberandi rák, það krefst áreynslu; eftir því sem röndin vex byrjar hvatinn á bak við hana að dofna; eða réttara sagt, það byrjar að verða aukaatriði. Hér er dæmi: Segðu að vinur þinn sé með þriggja daga lotu sem lokar „Move Rings“ sínum á Apple Watch. Þeir hafa nánast engu að tapa umfram það að vilja ná markmiði sínu og vera samkvæmir. Á sama tíma hefurðu glæsilega 219 daga röð í gangi. Líkurnar eru á því að þú sért fastur í óttanum við að missa hann. Þú ert líklegast ekki að hugsa um afrekið á þessum tímapunkti; það snýst meira um að vernda fjárfesta viðleitni þína, og það er tapsfælni. Duolingo útskýrir hvernig tapsfælni stuðlar að tregðu notenda við að rjúfa langa rönd, jafnvel á lata dögum þeirra. Á vissan hátt getur rák breyst í vana þegar tapsfælni sest að. Fogg hegðunarlíkanið (B = MAP) Nú þegar við skiljum óttann við að missa fyrirhöfnina sem lögð er í lengri strokur er önnur spurning: Hvað fær okkur til að gera hlutinn í fyrsta lagi, dag eftir dag, jafnvel áður en rákin verður stór? Það er það sem Fogg Behavior Model snýst um. Það er tiltölulega einfalt. Hegðun (B) á sér aðeins stað þegar þrír þættir - Hvatning (M), hæfni (A) og hvetja (P) - samræmast á sama augnabliki. Þannig er jafnan B=MAP. Ef einhver þessara þátta, jafnvel einn, vantar á því augnabliki mun hegðunin ekki gerast. Svo, til að rákkerfi sé skilvirkt og endurtekið, verða allir þrír þættirnir að vera til staðar: Hvatning Þetta er viðkvæmt og ekki eitthvað sem er stöðugt til staðar. Það eru dagar þegar þú ertdælt til að læra spænsku, og daga sem þú finnur ekki einu sinni fyrir smá viljastyrk til að læra tungumálið. Hvatning út af fyrir sig til að byggja upp vana er óáreiðanleg og tapað barátta frá fyrsta degi. HæfniTil að vega upp á móti takmörkunum hvatningar er hæfni mikilvæg. Í þessu samhengi þýðir geta auðveld aðgerð, þ.e. áreynsla er svo auðveld að það er óraunhæft að segja að það sé ekki mögulegt. Flest forrit nota þetta viljandi. Apple Fitness þarf bara að þú standir í eina mínútu á klukkutíma til að fá hak í átt að Standa markmiðinu þínu. Duolingo þarf aðeins eina lokið kennslustund. Þessi verkefni krefjast ekki mikillar fyrirhafnar. Hindrunin er svo lág að jafnvel á verstu dögum þínum geturðu gert það. En sameinuð átak í áframhaldandi röð er þar sem hugmyndin um að tapa þeirri röð kviknar. Hvetjandi Þetta er það sem lýkur jöfnunni. Menn eru náttúrulega gleymnir, svo já, geta getur komið okkur 90% þangað. En hvatning minnir okkur á að bregðast við. Strákar eru viðvarandi í hönnun, þannig að notendur þurfa stöðugt að vera minntir á að bregðast við. Til að sjá hversu öflug hvetja getur verið, gerði Duolingo A/B próf til að sjá hvort lítið rautt merki á tákni appsins jók stöðuga notkun. Það olli 6% aukningu á daglegum virkum notendum. Bara rautt merki. Takmarkanir líkans Allt þetta sagt, það eru takmörk á Fogg líkaninu þar sem gagnrýnendur og nútíma rannsóknir hafa tekið eftir því að hönnun sem byggir of mikið á leiðbeiningum, eins og árásargjarnar tilkynningar, á á hættu að skapa andlega þreytu. Stöðugar tilkynningar og yfirvinna gætu valdið því að notendur sleppa. Svo, passaðu þig á því. Zeigarnik áhrifin Hvernig líður þér þegar þú yfirgefur verkefni sem er hálfklárt? Það pirrar marga vegna þess að óunnin verkefni taka meira andlegt rými en það sem við klárum. Þegar eitthvað er gert og farið, höfum við tilhneigingu til að gleyma því. Þegar eitthvað er ógert hefur það tilhneigingu til að þyngjast í huga okkar. Þetta er einmitt ástæðan fyrir því að stafrænar vörur nota tilbúnar framfaravísa, eins og prófíllokastiku Upwork, til að láta notanda vita að prófíllinn þeirra sé aðeins „60% lokið“. Það hvetur notandann til að klára það sem hann byrjaði á.
Við skulum líta á annað dæmi. Þú ert með fimm verkefni í verkefnalistaforriti og í lok dagsins athugarðu aðeins fjögur þeirra sem lokið. Mörgum okkar mun finnast okkur óunnið vegna þessa eina ólokna verkefnis. Það, þarna, eru Zeigarnik áhrifin. Zeigarnik áhrifin var sýnd af sálfræðingnum Bluma Zeigarnik, sem lýsti því að við höfum tilhneigingu til að halda ófullgerðum verkefnum virkum í minni okkar lengur en unnin verkefni. Stráamynstur kemur náttúrulega inn í þetta í UX hönnun. Segjum að þú sért á 63. degi í lærdómslotu. Á þeim tímapunkti ertu í áframhaldandi mynstri ókláruðs viðskipta. Heilinn þinn myndi sjaldan gleyma því þar sem hann situr í bakinu á þér. Á þessum tímapunkti verður heilinn þinn sá sem sendir þér tilkynningar. Þegar þú setur þessa sálrænu krafta saman, byrjarðu að skilja af hverju rákir eru ekki bara venjulegur appeiginleiki; þeir eru færir um að endurmóta mannlega hegðun. En einhvers staðar meðfram línunni - ég get ekki sagt nákvæmlega hvenær, þar sem það er mismunandi fyrir alla - ná hlutirnir þeim stað að röð færist úr „skemmtilegu“ yfir í eitthvað sem þér finnst þú ekki hafa efni á að tapa. Þú vilt ekki að 58 daga erfiði fari til spillis, er það? Það er það sem gerir strikakerfi skilvirkt. Ef gert er rétt, hjálpa rákir notendum að byggja upp ótrúlegar venjur sem ná markmiði. Það gæti verið að lesa daglega eða fara reglulega í ræktina. Þessar endurteknu aðgerðir (stundum litlar) blandast saman með tímanum og verða augljósar í daglegu lífi okkar. En það eru tvær hliðar á hverjum peningi. Þunn lína milli vana og áráttu Ef þú hefur fylgst með geturðu nú þegar sagt að það er dökk hlið á rákakerfum. Venjamyndun snýst um samræmi við endurtekið markmið. Þvingun er hins vegar samkvæmni þess að vinna að markmiði sem ekki er lengur þörf á heldur er haldið á af ótta eða þrýstingi. Það er rakvélþunn lína. Þú burstar tennurnar á hverjum morgni án þess að hugsa; það er sjálfvirkt og eðlislægt, með það skýra markmið að hafa góðan anda. Það er rák sem myndar góðan vana. Siðferðilegt straumkerfi gefur notendum rými til að anda. Ef þú af einhverjum ástæðum burstar ekki á morgnana geturðu burstað á hádegi. Ófullkomleiki er leyfður án þess að óttast að missa langa vinnu. Þvingun tekur þveröfuga leið, þar sem rák gerir þig kvíða, þú finnur fyrir sektarkennd eða jafnvel örmagna og stundum líður eins og þú hafir ekki áorkað neinu, þrátt fyrir allt þittvinna. Þú bregst ekki af því að þú vilt, heldur vegna þess að þú ert ómeðvitað hræddur við að sjá framfarir þínar núllstilla. Einhver lýsti þessu meira að segja fullkomlega, "Mér fannst ég vera að svindla, en var einfaldlega alveg sama. Ég er ekkert án ráksins míns". Þetta sýnir hversu miklar haldreiður geta haft á einstakling. Að því marki sem notendur byrja að binda sjálfsvirði sitt við handahófskenndan mælikvarða frekar en upphaflega markmiðið eða ástæðuna fyrir því að þeir hófu gönguna í fyrsta sæti. Ránin verða hver þau eru, ekki bara hvað þau gera. Vel hannað siðferðiskerfi ætti að líða eins og hvatning fyrir notandann, ekki þrýstingur eða skylda. Þetta tengist jafnvægi innri og ytri hvatningar. Ytri hvatning (ytri umbun, forðast refsingar) gæti komið notendum af stað, en innri hvatning (að gera verkefni í persónulegu markmiði eins og að læra spænsku vegna þess að þú vilt virkilega eiga samskipti við ástvin) er sterkari fyrir langtíma þátttöku. Gott kerfi ætti að stefna að innri hvatningu með varkárri notkun ytri þátta, þ.e. minna notendur á hversu langt þeir eru komnir, ekki ógna þeim því sem þeir gætu tapað. Aftur, það er fín lína. Einfalt próf þegar þú hannar straumkerfi er að taka í raun smá tíma og hugsa um hvort vörur þínar græði peninga með því að selja lausnir á kvíða sem varan þín skapaði. Ef já, þá eru miklar líkur á að þú nýtir notendur. Svo næsta spurning verður, ef ég vel að nota streak, hvernig hanna ég það á þann hátt sem raunverulega hjálpar notendum að ná markmiðum sínum? Notkun Good Streak System Design Ég tel að þetta sé þar sem flest verkefni annaðhvort negla árangursríkt strikakerfi eða klúðra því algjörlega. Við skulum fara í gegnum nokkrar UX meginreglur um góða rákahönnun. Hafðu það áreynslulaust Þú hefur líklega heyrt þetta áður, kannski úr bókum eins og Atomic Habits, en þess má geta að ein auðveldasta leiðin til að mynda venjur er með því að gera aðgerðina pínulitla og auðvelda. Þetta er svipað og hæfileikaþátturinn sem við ræddum úr Fogg hegðunarlíkaninu. Fyrsta reglan í hvers kyns rákahönnun ætti að vera að gera nauðsynlegar aðgerðir eins litlar og mannlega mögulegt er á meðan enn er náð framfarir. Ef dagleg aðgerð krefst viljastyrks til að ljúka mun sú aðgerð ekki líða fimm daga. Hvers vegna? Þú getur ekki verið hvattur fimm daga í röð. Tilfelli: Ef þú keyrir hugleiðsluforrit þarftu ekki að láta notendur fara í gegnum 20 mínútna lotu bara til að viðhalda rákinni. Prófaðu eina mínútu, jafnvel eitthvað allt að þrjátíu sekúndur, í staðinn. Eins og orðatiltækið segir, litlir vatnsdropar búa til hið volduga hafið). Lítil viðleitni safnast saman í stór afrek með tímanum. Það ætti að vera markmiðið: fjarlægja núning, sérstaklega þegar augnablikið gæti verið erfitt. Þegar notendur eru stressaðir eða óvart, láttu þá vita að einfaldlega að mæta, jafnvel í nokkrar sekúndur, telst sem fyrirhöfn. Gefðu skýra sjónræna endurgjöf Menn eru sjónræn í eðli sínu. Oftast þurfum við að sjá eitthvað til að trúa; það er þessi þörf á að sjá hlutina fyrir sér til að skilja þá betur og setja hlutina í samhengi. Þetta er ástæðan fyrir því að rákumynstur nota oft sjónræna þætti, eins og línurit, gátmerki, framvinduhringi og rist, til að sjá fyrirhöfn. Horfðu á framlagsgraf GitHub. Það er einföld mynd af samkvæmni. Samt anda verktaki því að sér eins og súrefni.
Lykillinn er ekki að láta rákakerfi líða óhlutbundið. Það ætti að líða raunverulegt og áunnið. Til dæmis nota líkamsræktarhringir Duolingo og Apple hreina hreyfimyndahönnun eftir að rönd lýkur og GitHub sýnir söguleg gögn um samkvæmni notanda yfir tíma.
Notaðu góða tímasetningu Ég nefndi áðan að menn eru almennt gleymnir að eðlisfari og að leiðbeiningar geta hjálpað til við að viðhalda skriðþunga. Án leiðbeininga gleyma flestir nýir notendur að halda áfram. Lífið getur orðið annasamt, hvatningin hverfur og hlutirnir gerast. Jafnvel langvarandi notendur njóta góðs af leiðbeiningum, þó oftast séu þeir þegar læstir inni í vanalykkjunni. Engu að síður getur jafnvel sá sem hefur mesta trúnað misst af degi óvart. Strákerfi þitt þarf örugglega áminningar. Mest notuðu áminningarnar eru ýtt tilkynningar. Tímasetning skiptir miklu máli þegar unnið er með ýtt tilkynningar. Tegund appsins skiptir líka máli. Að senda tilkynningu klukkan 9 að morgni með því að segja „Þú hefur ekki æft í dag“ er bara skrítið fyrir námsforrit vegna þess að margir hafa eitthvað að gera daginn áður en þeir hugsa um að klára kennslustund. Ef við erum að tala um líkamsræktarforrit, þá er þaðer sanngjarnt og kannski jafnvel gert ráð fyrir að áminnt verði fyrr um daginn. Push-tilkynningar eru mjög mismunandi eftir forritaflokkum. Líkamsræktarforrit, til dæmis, sjá meiri þátttöku með tilkynningum snemma morguns (7–8 AM), á meðan framleiðniforrit gætu skilað betri árangri snemma á hádegi. Lykillinn er að A/B prófa tímasetningu forritsins þíns út frá hegðun notenda þinna frekar en að gera ráð fyrir að hlutirnir séu í einu lagi. Það sem virkar fyrir hugleiðsluforrit virkar kannski ekki fyrir erfðaskrár. Aðrar hvetjandi aðferðir eru rauðir punktar á forritatákninu og jafnvel forritagræjur. Rannsóknir eru mismunandi, en meðalmaður opnar tækið sitt á milli 50-150 sinnum á dag (PDF). Ef notandi sér rauðan punkt á appi eða græju sem gefur til kynna núverandi rák í hvert skipti sem hann opnar símann sinn, eykur það skuldbindingu. Bara ekki ofleika það; hvatningin ætti að vera áminning, ekki nöldur. Fagnaðu tímamótum Rákukerfi ætti að reyna að fagna tímamótum til að endurvekja tilfinningar, sérstaklega fyrir notendur sem eru djúpt í röð. Þegar notandi nær dag 7, dag 30, dag 50, dag 100, dag 365, ættir þú að gera mikið mál úr því. Viðurkenndu afrek - sérstaklega fyrir langtímanotendur.
Eins og við sáum áðan fann Duolingo þetta út og útfærði hreyfimynd sem fagnar tímamótum með konfetti. Sumir vettvangar gefa jafnvel umtalsverð bónusverðlaun sem staðfesta viðleitni notenda. Og þetta getur verið gagnlegt fyrir öpp, þannig að notendur hafa tilhneigingu til að deila áfanganum sínum opinberlega á samfélagsmiðlum. Annar ávinningur er eftirvæntingin sem kemur áður en tímamótum er náð. Það er ekki bara að halda rákinni á lífi endalaust; notendur hafa eitthvað til að hlakka til. Notaðu Grace Mechanisms Lífið er óútreiknanlegt. Fólk verður annars hugar. Sérhvert gott strikakerfi ætti að búast við ófullkomleika. Ein af stærstu sálfræðilegu ógnunum við rákakerfi er erfið endurstilling á núll eftir aðeins einn dag sem gleymdist. „Siðferðilegt“ straumkerfi ætti að veita notandanum slaka. Segjum að þú sért með 90 daga skáknám. Þú hefur verið stöðugur í þrjá góða mánuði og einn daginn deyr síminn þinn á ferðalagi, og bara svona verður 90 að 0 - allt, öll þessi fyrirhöfn, þurrkast út og framfarir hverfa. Notandinn gæti verið algjörlega eyðilagður. Tilhugsunin um að endurbyggja það frá grunni er svo niðurdrepandi að átakið er ekki þess virði. Í versta falli gæti notandi yfirgefið forritið eftir að hafa liðið eins og bilun. Íhugaðu að bæta „náðar“ kerfi við rákkerfið þitt:
Streak FreezeLeyfðu notendum að missa viljandi af degi án viðurlaga. Aukatími Leyfðu nokkrum klukkustundum (2–3) fram yfir venjulegan frest áður en endurstilling fer af stað. Rotnunarlíkön Í stað harðrar endurstillingar minnkar rákin um lítið magn, t.d. eru 10 dagar dregnir frá röndinni á hvern dag sem gleymdist.
Notaðu hvetjandi tón Berum saman tvö skilaboð sem notendum eru sýnd þegar rönd rofnar:
"Þú tapaðir 42 daga röðinni þinni. Byrjaðu upp á nýtt." "Þú mætir í 42 daga samfleytt. Þetta eru ótrúlegar framfarir! Viltu prófa þetta aftur?"
Báðir miðla sömu upplýsingum, en tilfinningaleg áhrif eru mismunandi. Fyrstu skilaboðin myndu að öllum líkindum fá notanda til að finna fyrir siðleysi og valda því að hann hætti. Önnur skilaboðin fagna því sem þegar hefur áunnist og hvetur notandann varlega til að reyna aftur. Streak Systems Design Challenges Áður en við förum út í tæknilegar upplýsingar um að byggja upp straumkerfi, ættir þú að vera meðvitaður um þær áskoranir sem þú gætir staðið frammi fyrir. Hlutirnir geta orðið flóknir eins og þú gætir búist við. Meðhöndlun tímabelta Það er ástæða fyrir því að meðhöndlun tíma og dagsetningar er meðal erfiðustu hugmynda sem verktaki fást við. Það er snið, alþjóðavæðing og margt fleira sem þarf að huga að. Leyfðu mér að spyrja þig að þessu: Hvað telst dagur? Við vitum að heimurinn keyrir á mismunandi tímabeltum og eins og það sé ekki nóg þá eru sum svæði með sumartíma (DST) sem gerist tvisvar á ári. Hvar byrjarðu jafnvel að meðhöndla þessi jaðarmál? Hvað telst „byrjun“ morgundagsins? Sumir verktaki reyna að forðast þetta með því að nota eitt miðlægt tímabelti, eins og UTC. Fyrir suma notendur myndi þetta gefa réttar niðurstöður, en fyrir suma gæti það verið slökkt um klukkustund, tvær klukkustundir eða meira. Þetta ósamræmi eyðileggur notendaupplifunina. Notendum er sama um hvernig þú höndlar tímann á bak við tjöldin; það eina sem þeir búast við er að ef þeir framkvæma rákverk klukkan 23:40, þá ætti það að skrá sig nákvæmlega á þeim tíma, í þeirra samhengi. Þú ættir að skilgreina „einn dag“ út frá staðbundnu tímabelti notandans, ekki tíma þjónsins. Jú, þú getur tekið því rólegaleiða og endurstilla rákir á heimsvísu fyrir alla notendur á miðnætti UTC, en þú ert mjög að skapa ósanngirni. Einhver í Kaliforníu hefur alltaf átta tíma til viðbótar til að klára verkefnið sitt en einhver sem býr í London. Þetta er óréttlátur hönnunargalli sem refsar ákveðnum notendum vegna staðsetningar þeirra. Og hvað ef þessi manneskja í London er aðeins í heimsókn, klárar verkefni og snýr síðan aftur á annað tímabelti? Ein áhrifarík lausn á öllu þessu er að biðja notendur um að stilla tímabelti sitt sérstaklega við inngöngu (helst eftir fyrstu auðkenningu). Það er góð hugmynd að setja inn lúmska athugasemd um að það að veita tímabeltisupplýsingar er aðeins notað til að appið geti fylgst nákvæmlega með framvindu, frekar en að vera notað sem persónugreinanleg gögn. Og það er önnur góð hugmynd að gera það að breytilegu umhverfi. Ég legg til að hver sem er forðast beinlínis að meðhöndla tímabeltisrökfræði í appi. Notaðu sannreynd dagsetningarsöfn, eins og Moment.js eða pytz (Python), osfrv. Það er engin þörf á að finna upp hjólið aftur fyrir eitthvað jafn flókið og þetta. Missed Days And Edge Cases Önnur áskorun sem þú ættir að hafa áhyggjur af eru óviðráðanleg jaðartilvik eins og ofsvefn notenda, niður í miðbæ, töf, netbilanir og svo framvegis. Að nota hugmyndina um náðarkerfi, eins og þau sem við ræddum áðan, getur hjálpað. Tveggja klukkustunda náðargluggi gæti hjálpað bæði notanda og þróunaraðila, í þeim skilningi að notendum er ekki refsað fyrir óviðráðanlegar lífsaðstæður. Fyrir þróunaraðila eru þokkagluggar gagnlegir á þeim óviðráðanlegu augnablikum þegar þjónninn fer niður um miðja nótt. Umfram allt, aldrei treysta viðskiptavininum. Staðfestu alltaf á þjóninum. Þjónninn ætti að vera eina uppspretta sannleikans. Forvarnir gegn svindli Aftur, ég get ekki lagt nógu mikla áherslu á þetta: Gakktu úr skugga um að sannreyna allt á þjóninum. Notendur eru menn og menn gætu svindlað ef þeir fá tækifæri. Það er óumflýjanlegt. Þú gætir reynt:
Geymir allar aðgerðir með UTC tímastimplum. Viðskiptavinurinn getur sent staðartímann sinn, en þjónninn getur umbreytt því strax í UTC og sannreynt miðað við miðlaratímann. Þannig, ef tímastimpill viðskiptavinarins er grunsamlega langt, getur kerfið hafnað því sem villu og notendaviðmótið svarað í samræmi við það. Notkun atburðabundinnar mælingar. Með öðrum orðum, geymdu skrá yfir hverja aðgerð með lýsigögnum, þar á meðal upplýsingum eins og auðkenni notanda, gerð aðgerða sem framkvæmd er og tímastimpil og tímabelti. Þetta hjálpar til við staðfestingu.
Byggja A Streak System Engine Þetta er ekki kóðakennsla, svo ég mun forðast að henda fullt af kóða á þig. Ég mun halda þessu hagnýtu og lýsa því hvernig hlutirnir stjórna almennt straumkerfisvél að því er varðar arkitektúr, flæði og áreiðanleika. Kjarnaarkitektúr Eins og ég hef sagt nokkrum sinnum, gerðu þjóninn að einum uppsprettu sannleikans fyrir straumgögn. Arkitektúrinn getur verið eitthvað á þessa leið á þjóninum:
Geymdu gögn hvers notanda í gagnagrunni. Geymdu núverandi strikageymslu (sjálfgefið sem 0) sem heiltölu. Geymdu tímabeltisvalið, þ.e. IANA tímabeltisstreng (annaðhvort óbeint frá staðbundnum tímastimpli eða beinlínis með því að biðja notanda um að velja tímabelti sitt). Til dæmis, "Ameríka/New_York". Meðhöndla alla rökfræði til að ákvarða hvort röðin heldur áfram eða rofnar, með tímabeltisathugun sem er miðað við staðbundið tímabelti notandans.
Á meðan, á viðskiptavininum:
Sýna núverandi rák, venjulega sótt af þjóninum. Sendu aðgerð sem gerð er í formi lýsigagna til netþjónsins til að sannreyna hvort notandinn hafi í raun lokið hæfilegri rákaðgerð. Gefðu sjónræn viðbrögð byggð á svörum netþjónsins.
Svo í stuttu máli, heilinn er á þjóninum og viðskiptavinurinn er til að sýna og senda inn atburði. Þetta sparar þér mikið af bilunum og jaðartilfellum, auk þess sem uppfærslur og lagfæringar eru auðveldari. Rökfræðilega flæðið Við skulum líkja eftir leiðsögn um hvernig lágmarks skilvirk streakkerfisvél myndi fara þegar notandi lýkur aðgerð:
Notandinn lýkur við hæfisaðgerð. Viðskiptavinurinn sendir atburði til þjónsins sem lýsigögn. Þetta gæti verið „Notandi X lauk aðgerð Y á tímastimpli Z“. Þjónninn fær þennan atburð og gerir grunnstaðfestingu. Er þetta raunverulegur notandi? Eru þau staðfest? Er aðgerðin gild? Er tímabeltið í samræmi? Ef þetta gengur eftir, sækir þjónninn rákgögn notandans úr gagnagrunninum. Umbreyttu síðan mótteknum aðgerðatímastimpli í staðbundið tímabelti notandans. Leyfðu þjóninum að bera saman dagatalsdagsetningar (ekki tímastimpla) á staðbundnu tímabelti notandans: Ef það er sama dag, þá er aðgerðin óþörf og engin breyting er árák. Ef það er daginn eftir, þá stækkar röðin og stækkar um 1. Ef það er meira en einn dagur bilið rofnar röndin. Hins vegar, þetta er þar sem þú gætir beitt náðarvélfræði. Ef náðarbúnaðurinn er sleppt, endurstilltu þá línuna á 1.
Ef þú velur að vista söguleg gögn fyrir áfangaafrek, uppfærðu þá breytur eins og „lengsta röð“ eða „alls virkir dagar“. Miðlarinn uppfærir síðan gagnagrunninn og svarar viðskiptavininum. Eitthvað svona:
{ "current_streak": 48, "lengsta_rönd": 50, "alls_virkir_dagar": 120, "streak_extended": satt, }
Sem frekari ráðstöfun ætti þjónninn annað hvort að reyna aftur eða hafna og láta viðskiptavininn vita þegar eitthvað mistekst meðan á ferlinu stendur. Bygging fyrir seiglu Eins og áður hefur komið fram eru notendur að missa rák vegna galla eða niður í miðbæ er hræðileg UX og notendur búast ekki við því að taka fallið fyrir það. Þannig ætti rákkerfið þitt að hafa verndarráðstafanir fyrir þessar aðstæður. Ef þjónninn er niðri vegna viðhalds (eða einhverra ástæðna) skaltu íhuga að leyfa tímabundinn viðbótartíma til að laga það svo hægt sé að leggja fram aðgerðir seint og telja enn. Þú getur líka valið að láta notendur vita, sérstaklega ef ástandið getur haft áhrif á áframhaldandi röð. Athugið: Komdu á bakdyrum stjórnanda þar sem hægt er að endurheimta gögn handvirkt. Villur eru óumflýjanlegar og sumir notendur myndu hringja í appið þitt eða ná til þín til að styðja að röð þeirra rofnaði af ástæðu sem þeir gætu ekki stjórnað. Þú ættir að geta endurheimt rákirnar handvirkt ef notandinn hefur rétt fyrir sér eftir rannsókn. Niðurstaða Eitt er enn á hreinu: Strönd eru mjög öflug vegna þess hvernig sálfræði mannsins virkar á grundvallarstigi. Besta rákkerfið sem til er er það sem notendur hugsa ekki meðvitað um. Þetta er orðin venja með tafarlausum árangri eða sjáanlegum framförum, eins og að bursta tennur, sem verður að venju. Og ég ætla bara að segja það: Ekki þurfa allar vörur rákkerfi. Ættir þú virkilega að þvinga fram samræmi bara vegna þess að þú vilt daglega virka notendur? Svarið gæti mjög vel verið "nei".