Aku manawa sampeyan wis krungu saka streaks utawa nggunakake app karo siji. Nanging tau kepingin weruh apa streaks dadi populer lan kuat? Ya, ana sing jelas yen aplikasi pengin perhatian sampeyan, nanging apa sampeyan ngerti yen nalika aplikasi sinau populer Duolingo ngenalake widget iOS kanggo nampilake garis-garis, komitmen pangguna mundhak 60%. Sewidak persen minangka owah-owahan gedhe ing prilaku lan nuduhake carane pola "streak" bisa digunakake kanggo nambah keterlibatan lan panggunaan drive. Ing paling dhasar, streak yaiku jumlah dina berturut-turut pangguna ngrampungake kegiatan tartamtu. Sawetara wong uga nemtokake minangka pakulinan "gamified" utawa metrik sing dirancang kanggo nyengkuyung panggunaan sing konsisten. Nanging streak ngluwihi dadi metrik utawa rekaman ing app; iku luwih psikologis saka iku. Naluri manungsa gampang dipengaruhi karo faktor sing bener. Delengen telung faktor iki: kemajuan, bangga, lan wedi ilang (biasa disebut FOMO). Apa sing padha karo kabeh iki? Upaya. Luwih akeh gaweyan sing sampeyan lakoni, luwih akeh mbentuk identitas sampeyan, lan kaya ngono, garis-garis kasebut nyabrang menyang jagad psikologi perilaku. Saiki, kanthi kekuwatan gedhe, tanggung jawab gedhe, lan amarga iku, ana sisih peteng kanggo garis-garis. Ing artikel iki, kita bakal ngrembug babagan psikologi, UX, lan prinsip desain kanggo mbangun sistem streak sing efektif. Kita bakal nliti (1) kenapa otak kita meh nanggapi kegiatan streak kanthi naluriah, (2) carane ngrancang garis-garis kanthi cara sing bener-bener mbantu pangguna, lan (3) karya teknis sing melu mbangun pola streak. Psikologi Behind Streaks Kanggo ngrancang lan mbangun sistem streak sing efektif, kita kudu ngerti carane selaras karo cara otak kita disambungake. Kaya, apa sing ndadekake efektif nganti kita rumangsa dedikasi sing kuat kanggo nglindhungi garis-garis kita? Ana telung prinsip psikologi sing menarik lan didokumentasikake sing ndhukung apa sing nggawe garis-garis dadi kuat lan gawe ketagihan. Mundhut Aversion Iki mbokmenawa pasukan paling kuat konco streaks. Aku ngomong iki amarga asring, sampeyan meh ora bisa ngindhari iki ing urip. Coba pikirake iki: Yen kanca menehi $ 100, sampeyan bakal seneng. Nanging yen sampeyan ilang $100 saka dompet, sing bakal luwih lara. Bobot emosi saka kahanan kasebut ora padha. Rugi luwih lara tinimbang entuk sing dirasakake. Ayo dadi njupuk luwih lan ngomong sing aku menehi $ 100 lan takon sampeyan muter gambling . Ana 50% kasempatan menang liyane $ 100 lan 50% kasempatan ilang asli $ 100. Apa sampeyan bakal njupuk? Aku ora bakal. Umume wong ora bakal. Kuwi aversion mundhut. Yen dipikir, iku logis, bisa dingerteni, iku manungsa. Konsep konco mundhut mundhut iku kita aran pain kanggo kelangan soko kaping pindho minangka akeh saka kesenengan kanggo entuk soko saka nilai witjaksono. Ing istilah psikologis, mundhut lingers luwih saka hasil apa. Sampeyan bisa uga ndeleng kepiye hubungane karo garis-garis. Kanggo mbangun streak sing katon, mbutuhake gaweyan; minangka streak mundak akeh, motivasi konco iku wiwit fade; utawa luwih akurat, iku wiwit dadi secondary. Iki minangka conto: Ngomong kanca sampeyan duwe telung dina sing nutup "Move Rings" ing Apple Watch. Dheweke meh ora kelangan apa-apa ngluwihi kepinginan kanggo nggayuh tujuane lan konsisten. Ing wektu sing padha, sampeyan duwe rekor 219 dina sing apik banget. Kemungkinan sing sampeyan kepepet dening wedi ilang. Sampeyan paling kamungkinan ora mikir bab prestasi ing titik iki; iku liyane babagan nglindhungi nandur modhal efforts , lan sing mundhut mundhut. Duolingo nerangake carane mundhut mundhut nyumbang kanggo rikuh pangguna kanggo break streak dawa, malah ing dina paling laziest. Ing cara, streak bisa dadi pakulinan nalika mundhut mundhut settles ing. Model Perilaku Fogg (B = MAP) Saiki kita ngerti rasa wedi yen bakal kelangan gaweyan sing luwih dawa, pitakonan liyane yaiku: Apa sing nggawe kita nindakake perkara kasebut ing wiwitan, saben dina, sanajan sadurunge streak dadi gedhe? Punika babagan Fogg Behavior Model. Iku relatif prasaja. Prilaku (B) mung dumadi nalika telung faktor - Motivasi (M), Kemampuan (A), lan Prompt (P) - selaras ing wektu sing padha. Dadi, persamaan B = MAP. Yen faktor kasebut, sanajan siji, ora ana ing wektu kasebut, prilaku kasebut ora bakal kedadeyan. Dadi, supaya sistem streak dadi efisien lan bola-bali, kabeh telung faktor kudu ana: MotivasiIki rapuh lan ora ana sing terus-terusan. Ana dina nalika sampeyan lagidipompa kanggo sinau basa Spanyol, lan dina sampeyan malah ora aran iota saka willpower kanggo sinau basa. Motivasi dhewe kanggo mbangun pakulinan ora bisa dipercaya lan perang sing kalah wiwit dina. Kemampuan Kanggo ngimbangi watesan motivasi, kemampuan iku kritis. Ing konteks iki, kemampuan tegese gampang tumindak, yaiku, usaha kasebut gampang banget nganti ora nyata yen ora bisa ditindakake. Umume app sengaja nggunakake iki. Apple Fitness mung mbutuhake sampeyan ngadeg sak menit sak jam kanggo entuk obah menyang goal Stand. Duolingo mung butuh siji pelajaran sing wis rampung. Tugas iki ora mbutuhake kabeh gaweyan. Rintangan kasebut sithik banget, sanajan ing dina sing paling ala, sampeyan bisa nindakake. Nanging gaweyan gabungan saka streak sing terus-terusan yaiku ide kanggo ngilangi streak kasebut. PromptIki sing ngrampungake persamaan. Manungsa iku lumrahe lali, dadi ya, kemampuan bisa 90% kanggo kita. Nanging pituduh ngelingake kita tumindak. Streaks terus-terusan kanthi desain, mula pangguna kudu terus-terusan dielingake supaya tumindak. Kanggo ndeleng sepira kuat pituduh, Duolingo nganakake tes A/B kanggo ndeleng yen lencana abang cilik ing lambang app nambah panggunaan sing konsisten. Iki ngasilake paningkatan 6% ing pangguna aktif saben dina. Mung lencana abang. Watesan Model Kabeh iki dicritakake, ana watesan kanggo model Fogg ing ngendi para kritikus lan riset modern ngerteni manawa desain sing gumantung banget marang pituduh, kayata kabar agresif, bisa nyebabake kesel mental. Kabar lan lembur sing terus-terusan bisa nyebabake pangguna churn. Dadi, awas. Efek Zeigarnik Piye perasaanmu nalika ninggalake tugas proyek setengah rampung? Sing nesu akeh wong amarga tugas sing durung rampung ngenggoni ruang mental luwih akeh tinimbang perkara sing wis rampung. Nalika soko wis rampung lan ilang, kita cenderung lali. Nalika ana sing ditinggalake, cenderung ngebotake pikiran kita. Iki pancen sebabe produk digital nggunakake indikator kemajuan gawean, kaya bar rampung profil Upwork, supaya pangguna ngerti yen profil mung "60% rampung". Iku nudges pangguna kanggo ngrampungake apa sing diwiwiti.
Ayo goleki conto liyane. Sampeyan duwe limang tugas ing app dhaptar tugas, lan ing pungkasan dina, sampeyan mung mriksa papat minangka rampung. Akeh kita bakal rumangsa ora rampung amarga tugas sing durung rampung. Sing, ing kana, yaiku efek Zeigarnik. Efek Zeigarnik dibuktekake dening psikolog Bluma Zeigarnik, sing nerangake manawa kita cenderung njaga tugas sing ora lengkap ing memori luwih suwe tinimbang tugas sing wis rampung. Pola streak kanthi alami nyebabake iki ing desain UX. Ayo kita ngomong yen sampeyan lagi ing dina 63 saka streak learning. Ing wektu kasebut, sampeyan ana ing pola bisnis sing durung rampung. Otak sampeyan bakal arang lali babagan iki amarga ana ing mburi pikiran sampeyan. Ing wektu iki, otak sampeyan dadi sing ngirim kabar. Nalika sampeyan sijine pasukan psikologis iki bebarengan, sampeyan wiwiti saestu mangertos kok streaks ora mung fitur app biasa; padha bisa ngowahi prilaku manungsa. Nanging nang endi wae ing sadawane baris - Aku ora bisa ngomong persis nalika, amarga beda kanggo saben wong - iku tekan titik ngendi streak shifts saka "fun" kanggo soko sing aran sampeyan ora bisa saged kanggo ilang. Sampeyan ora pengin 58 dina gaweyan dadi sampah, ta? Sing nggawe sistem streak efektif. Yen rampung kanthi bener, streak mbantu pangguna nggawe kabiasaan sing nggumunake sing bisa nggayuh tujuan. Bisa uga maca saben dina utawa ngetutake gym kanthi konsisten. Tumindak sing bola-bali (kadhangkala cilik) majemuk saka wektu lan katon ing urip saben dina. Nanging ana rong sisih kanggo saben duwit receh. Garis Tipis Antarane Kebiasaan Lan Kepeksa Yen sampeyan wis ngetutake, sampeyan bisa ngerti manawa ana sisih peteng kanggo sistem streak. Pembentukan pakulinan yaiku babagan konsistensi kanthi tujuan sing bola-bali. Nanging, paksaan yaiku konsistensi nggarap tujuan sing ora dibutuhake maneh nanging ditahan amarga wedi utawa tekanan. Iku garis silet-tipis. Sampeyan nyikat untu saben esuk tanpa mikir; iku otomatis lan naluriah, karo goal cetha duwe ambegan apik. Iku streak sing mbentuk pakulinan apik. Sistem streak etika menehi ruang kanggo pangguna kanggo ambegan. Yen, sakperangan alesan, sampeyan ora nyikat ing wayah esuk, sampeyan bisa nyikat ing wayah awan. Imperfection diijini tanpa wedi kelangan gaweyan dawa. Kepeksa njupuk dalan sing ngelawan, sing nggawe sampeyan kuwatir, sampeyan rumangsa guilty utawa malah kesel, lan kadhangkala, kaya-kaya sampeyan ora nindakake apa-apa, sanajan kabehkerja. Sampeyan tumindak ora amarga sampeyan pengin, nanging amarga sampeyan ora sadar wedi ndeleng kemajuan sampeyan direset menyang nol. Malah ana wong sing njlèntrèhaké iki kanthi sampurna, "Aku rumangsa ngapusi, nanging ora peduli. Aku ora ana apa-apa tanpa garisku ". Iki nuduhake garis-garis sing bisa ditindakake ing individu. Kanggo ombone sing kedhaftar wiwit dasi poto-worth kanggo metrik kasepakatan tinimbang goal asli utawa alesan padha miwiti tilas ing Panggonan pisanan. Streak dadi sapa wae, ora mung apa sing ditindakake. Sistem streak etika sing dirancang kanthi apik kudu menehi dorongan kanggo pangguna, dudu tekanan utawa kewajiban. Bab iki gegayutan karo imbangan motivasi intrinsik lan ekstrinsik. Motivasi ekstrinsik (ganjaran eksternal, ngindhari paukuman) bisa miwiti pangguna, nanging motivasi intrinsik (nindakake tugas kanggo tujuan pribadhi kaya sinau basa Spanyol amarga sampeyan pancene pengin komunikasi karo wong sing ditresnani) luwih kuwat kanggo keterlibatan jangka panjang. Sistem sing apik kudu narik motivasi intrinsik kanthi nggunakake unsur ekstrinsik kanthi ati-ati, yaiku, ngelingake pangguna babagan carane adoh, ora ngancam apa sing bisa ilang. Maneh, iku garis sing apik. Tes sing gampang nalika ngrancang sistem streak yaiku njupuk sawetara wektu lan mikir apa produk sampeyan entuk dhuwit kanthi adol solusi kanggo kuatir sing digawe produk sampeyan. Yen ya, ana kemungkinan gedhe sampeyan ngeksploitasi pangguna. Dadi pitakonan sabanjure, Yen aku milih nggunakake streak, kepiye carane aku ngrancang kanthi cara sing bener-bener mbantu pangguna entuk target? UX saka Good Streak System Design Aku pracaya iki ngendi paling proyèk salah siji pucuk sistem tilas efektif utawa rampung kekacoan munggah. Ayo goleki sawetara prinsip UX babagan desain streak sing apik. Tansah Effortless Sampeyan bisa uga wis krungu iki sadurunge, bisa uga saka buku kaya Atomic Habits, nanging kudu dielingake manawa salah sawijining cara sing paling gampang kanggo nggawe kabiasaan yaiku kanthi nggawe tumindak cilik lan gampang. Iki padha karo faktor kemampuan sing kita rembugan saka Fogg Behavior Model. Aturan pisanan saka sembarang desain streak kudu nggawe tumindak sing dibutuhake minangka cilik minangka manungsa bisa nalika isih entuk kemajuan. Yen tumindak saben dina mbutuhake kekarepan kanggo ngrampungake, tumindak kasebut ora bakal ngluwihi limang dina. Kenging punapa? Sampeyan ora bisa motivasi limang dina saurutan. Kasus: Yen sampeyan mbukak aplikasi meditasi, sampeyan ora perlu nggawe pangguna liwat sesi 20 menit mung kanggo njaga garis kasebut. Coba siji menit, bisa uga mung sethithik telung puluh detik. Kados paribasan, titis sathithik ndadosaken samudra agung). Usaha cilik nglumpukake prestasi gedhe kanthi wektu. Sing kudu dadi goal: mbusak gesekan, utamané nalika wayahe bisa angel. Nalika pangguna kaku utawa kepunjulen, supaya padha ngerti sing mung nuduhake munggah, malah kanggo sawetara detik, counts minangka gaweyan. Nyedhiyakake Umpan Balik Visual sing Jelas Manungsa minangka visual kanthi alam. Paling asring, kita kudu ndeleng soko kanggo pracaya; Iki perlu kanggo nggambarake samubarang supaya luwih ngerti lan nggawe perspektif. Pramila pola streak asring nggunakake unsur visual, kayata grafik, tandha mriksa, dering kemajuan, lan kothak, kanggo nggambarake upaya. Deleng grafik kontribusi GitHub. Iku visualisasi prasaja saka konsistensi. Nanging pangembang ambegan kaya oksigen.
Tombol ora nggawe sistem streak aran abstrak. Iku kudu aran nyata lan entuk. Contone, dering kegiatan Fitness Duolingo lan Apple nggunakake desain animasi sing resik nalika rampung, lan GitHub nuduhake data historis konsistensi pangguna liwat wektu.
Gunakake Wektu sing Apik Aku wis kasebut sadurungé, manungsa umume lali dening alam, lan pituduh bisa mbantu njaga momentum maju. Tanpa pituduh, umume pangguna anyar lali terus. Urip bisa dadi sibuk, motivasi ilang, lan kedadeyan. Malah pangguna sing wis suwe entuk manfaat saka pituduh, sanajan umume, dheweke wis dikunci ing daur ulang. Nanging, malah wong sing paling setya bisa ora sengaja nglewati sawijining dina. Sistem streak sampeyan mesthi mbutuhake pangeling. Pangeling cepet sing paling akeh digunakake yaiku kabar push. Wektu pancen penting nalika nggarap kabar push. Jinis app uga penting. Ngirim kabar jam 9 esuk "Sampeyan durung latihan dina iki" mung aneh kanggo aplikasi sinau amarga akeh sing kudu ditindakake sedina sadurunge mikir babagan ngrampungake pelajaran. Yen kita ngomong babagan aplikasi fitness, sanadyancukup lan bisa uga samesthine bakal dielingake ing wayah awan. Kabar push beda-beda sacara signifikan miturut kategori aplikasi. Aplikasi fitness, umpamane, ndeleng keterlibatan sing luwih dhuwur kanthi kabar esuk (7–8 AM), dene aplikasi produktivitas bisa luwih apik ing wayah awan. Sing penting yaiku A/B nguji wektu aplikasi sampeyan adhedhasar prilaku pangguna tinimbang nganggep manawa kabeh bisa cocog karo kabeh. Sing bisa digunakake kanggo aplikasi meditasi bisa uga ora bisa digunakake kanggo tracker coding. Cara cepet liyane yaiku titik abang ing lambang app lan malah widget app. Pasinaon beda-beda, nanging rata-rata wong mbukak kunci piranti antarane 50-150 kaping dina (PDF). Yen pangguna ndeleng titik abang ing app utawa widget sing nuduhake garis saiki saben mbukak kunci telpon, prasetya nambah. Cukup aja kakehan; pituduh kudu ngawula minangka pangeling, ora nag. Ngrameke Milestones Sistem streak kudu nyoba ngrayakake tonggak sejarah kanggo nylametake emosi, utamane kanggo pangguna sing jero banget. Nalika pangguna tekan Dina 7, Dina 30, Dina 50, Dina 100, Dina 365, sampeyan kudu nggawe masalah gedhe. Ngakoni prestasi - utamane kanggo pangguna sing wis suwe.
Kaya sing wis dingerteni sadurunge, Duolingo ngerteni iki lan ngetrapake grafis animasi sing ngrayakake tonggak sejarah kanthi confetti. Sawetara platform malah menehi ganjaran bonus substansial sing ngesyahke pangguna efforts. Lan iki bisa migunani kanggo aplikasi, saengga pangguna cenderung nuduhake tonggak sejarah ing media sosial. Manfaat liyane yaiku antisipasi sadurunge tekan tonggak sejarah. Iku ora mung tetep streak urip endlessly; kedhaftar duwe soko kanggo katon nerusake kanggo. Gunakake Mekanisme Grace Urip iku ora bisa ditebak. Wong njaluk disambi. Sembarang sistem streak sing apik kudu nyana ora sampurna. Salah siji saka ancaman psikologis paling gedhe kanggo sistem streak punika hard reset kanggo nul sawise mung siji dina ora kejawab. Sistem streak "etis" kudu nyedhiyakake pangguna kanthi kendur. Contone, sampeyan duwe 90 dina sinau catur. Sampeyan wis konsisten telung sasi sing apik, lan ing sawijining dina, telpon sampeyan mati nalika lelungan, lan kaya ngono, 90 dadi 0 - kabeh, kabeh upaya kasebut, bakal dibusak, lan kemajuan ilang. Pangguna bisa uga rusak banget. Pikiran kanggo mbangun maneh saka awal banget demoralizing sing gaweyan ora worth iku. Paling awon, pangguna bisa nilar app sawise rumangsa gagal. Coba tambahake mekanisme "rahmat" menyang sistem streak sampeyan:
Streak FreezeAllow pangguna kanthi sengaja kantun dina tanpa denda. Wektu Ekstra Ngidini sawetara jam (2–3) liwat tenggat wektu biasane sadurunge miwiti reset. Bosok ModelsTinimbang reset hard, suda streak kanthi jumlah cilik, contone, 10 dina dijupuk saka tilas saben dina ora kejawab.
Gunakake Nada Nyemangati Ayo mbandhingake rong pesen sing dituduhake menyang pangguna nalika streak rusak:
"Sampeyan ilang streak 42 dina. Mulai maneh." "Sampeyan muncul 42 dina terus. Iku kemajuan sing luar biasa! Apa sampeyan pengin nyoba maneh?"
Loro-lorone ngirim informasi sing padha, nanging pengaruh emosional beda. Pesen sing sepisanan bakal nggawe pangguna rumangsa depresi lan bakal mandheg. Pesen kapindho ngrayakake apa sing wis digayuh lan alon-alon nyengkuyung pangguna kanggo nyoba maneh. Tantangan Desain Sistem Streak Sadurunge kita pindhah menyang spesifik teknis mbangun sistem streak, sampeyan kudu ngerti tantangan sing bisa sampeyan adhepi. Prekara bisa dadi rumit, kaya sing dikarepake. Nangani Zona Wektu Ana alesan ngapa nangani wektu lan tanggal minangka salah sawijining konsep sing paling angel ditindakake para pangembang. Ana format, internasionalisasi, lan liya-liyane sing kudu dipikirake. Ayo kula takon sampeyan iki: Apa counts minangka dina? Kita ngerti jagad iki mlaku ing zona wektu sing beda-beda, lan kaya-kaya ora cukup, sawetara wilayah duwe Daylight Saving Time (DST) sing kedadeyan kaping pindho saben taun. Ngendi sampeyan malah miwiti nangani kasus pinggiran iki? Apa sing dianggep minangka "wiwitan" sesuk? Sawetara pangembang nyoba ngindhari iki kanthi nggunakake zona wektu tengah, kayata UTC. Kanggo sawetara pangguna, iki bakal ngasilake asil sing bener, nanging kanggo sawetara, bisa mati sajrone jam, rong jam, utawa luwih. Inkonsistensi iki ngrusak pengalaman pangguna. Pangguna ora peduli carane sampeyan nangani wektu ing mburi layar; kabeh padha nyana yen padha nindakake tumindak streak ing 11:40, banjur kudu ndhaftar ing wektu sing tepat, ing konteks. Sampeyan kudu nemtokake "sedina" adhedhasar zona wektu lokal pangguna, dudu wektu server. Mesthi, sampeyan bisa njupuk gampangrute lan ngreset streaks global kanggo kabeh pangguna ing tengah wengi UTC, nanging sampeyan banget nggawe ora adil. Wong ing California mesthi duwe wolung jam ekstra kanggo ngrampungake tugase tinimbang wong sing manggon ing London. Iki minangka cacat desain sing ora adil sing ngukum pangguna tartamtu amarga lokasine. Lan kepiye yen wong ing London mung ngunjungi, ngrampungake tugas, banjur bali menyang zona wektu liyane? Salah sawijining solusi sing efektif kanggo kabeh iki yaiku takon pangguna supaya nyetel zona wektu kanthi jelas sajrone onboarding (luwih disenengi sawise otentikasi pisanan). Apike kanggo nyakup cathetan subtle sing nyedhiyakake informasi zona wektu mung digunakake kanggo aplikasi kanggo nglacak kemajuan kanthi akurat, tinimbang digunakake minangka data sing bisa dingerteni kanthi pribadi. Lan iku apike liyane kanggo nggawe setelan sing bisa diganti. Aku menehi saran supaya sapa wae supaya ora langsung nangani logika zona wektu ing app. Gunakake perpustakaan tanggal nyoba-lan-bener, kaya Moment.js utawa pytz (Python), etc. Ana ora perlu reinvent setir kanggo soko rumit kaya iki. Dina Kantun Lan Kasus Edge Tantangan liyane sing kudu sampeyan kuwatir yaiku kasus pinggir sing ora bisa dikendhaleni kaya pangguna oversleeping, downtime server, lag, kegagalan jaringan, lan liya-liyane. Nggunakake gagasan mekanisme sih-rahmat, kaya sing kita rembugan sadurunge, bisa mbantu. Jendhela sih-rahmat rong jam bisa mbantu pangguna lan pangembang, amarga pangguna ora diukum kanthi kaku amarga kahanan urip sing ora bisa dikendhaleni. Kanggo pangembang, windows sih-rahmat mbiyantu ing wektu sing ora bisa dikendhaleni nalika server mudhun ing tengah wengi. Ndhuwur kabeh, aja ngandelake klien. Tansah validasi ing sisih server. Server kudu dadi sumber siji bebener. Nyegah ngapusi Maneh, aku ora bisa kaku cukup: Priksa manawa kanggo ngesyahke kabeh server-side. Pangguna iku manungsa, lan manungsa bisa ngapusi yen diwenehi kesempatan. Iku ora bisa diendhani. Sampeyan bisa uga nyoba:
Nyimpen kabeh tumindak nganggo cap wektu UTC. Klien bisa ngirim wektu lokal, nanging server bisa langsung ngonversi menyang UTC lan validasi marang wektu server. Mangkono, yen stempel wektu klien curiga adoh, sistem bisa nolak minangka kesalahan, lan UI bisa nanggapi. Nggunakake pelacakan adhedhasar acara. Kanthi tembung liyane, simpen rekaman saben tumindak kanthi metadata kalebu informasi kaya ID pangguna, jinis tumindak sing ditindakake, lan cap wektu lan zona wektu. Iki mbantu karo validasi.
Nggawe Mesin Sistem Streak Iki dudu tutorial kode, mula aku ora bakal mbuwang akeh kode ing sampeyan. Aku bakal tetep iki praktis lan njlèntrèhaké carane iku umume operate engine sistem streak minangka adoh arsitektur, aliran, lan linuwih. Arsitektur Inti Kaya sing wis dakkandhakake kaping pirang-pirang, nggawe server minangka sumber bebener kanggo data streak. Arsitektur bisa kaya iki ing server:
Simpen data saben pangguna ing basis data. Simpen nyimpen streak saiki (standar minangka 0) minangka integer. Simpen preferensi zona wektu, yaiku, string IANA Timezone (sacara implisit saka cap wektu lokal utawa kanthi jelas kanthi njaluk pangguna milih zona wektu). Contone, "Amerika / New_York". Nangani kabeh logika kanggo nemtokake manawa streak terus utawa rusak, kanthi mriksa zona wektu sing ana hubungane karo zona wektu lokal pangguna.
Kangge, ing sisih klien:
Tampilake streak saiki, biasane dijupuk saka server. Kirimi tumindak rampung ing wangun metadata kanggo server kanggo ngesyahke apa pangguna bener rampung tumindak streak kualifikasi. Nyedhiyakake umpan balik visual adhedhasar respon server.
Dadi, cendhak, otak ana ing server, lan klien kanggo tujuan tampilan lan ngirim acara. Iki ngirit akeh kegagalan lan kasus pinggiran, uga nggawe nganyari lan ndandani luwih gampang. Aliran Logika Ayo simulasi langkah-langkah babagan carane mesin sistem streak efisien minimal nalika pangguna ngrampungake tumindak:
Pangguna ngrampungake tumindak streak kualifikasi. Klien ngirim acara menyang server minangka metadata. Iki bisa uga "Panganggo X rampung tumindak Y ing timestamp Z". Server nampa acara iki lan nindakake validasi dhasar. Apa iki pangguna nyata? Apa dheweke wis dikonfirmasi? Apa tumindak kasebut sah? Apa zona wektu konsisten? Yen iki liwati, server njupuk data streak pangguna saka database. Banjur, ngowahi cap wektu tumindak sing ditampa menyang zona wektu lokal pangguna. Ayo server mbandhingake tanggal tanggalan (dudu cap wektu) ing zona wektu lokal pangguna: Yen dina sing padha, banjur tumindak keluwih lan ora ana owah-owahan ingstreak. Yen dina sabanjure, streak kasebut ngluwihi lan nambah 1. Yen ana longkangan luwih saka siji dina, streak break. Nanging, ing kene sampeyan bisa ngetrapake mekanika sih-rahmat. Yen mekanisme sih-rahmat ora kejawab, banjur reset streak dadi 1.
Yen sampeyan milih nyimpen data historis kanggo prestasi tonggak sejarah, banjur nganyari variabel kaya "streak paling dawa" utawa "total dina aktif". Server banjur nganyari database lan nanggapi klien. Kaya iki:
{ "current_streak": 48, "streak_paling dawa": 50, "total_active_days": 120, "streak_extended": bener, }
Minangka langkah luwih, server kudu nyoba maneh utawa nolak lan ngabari klien yen ana sing gagal sajrone proses kasebut. Bangunan Kanggo Ketahanan Kaya sing wis kasebut sadurunge, pangguna kelangan streak amarga kewan omo utawa server downtime yaiku UX sing elek, lan pangguna ora ngarep-arep bakal tiba. Dadi, sistem streak sampeyan kudu duwe perlindungan kanggo skenario kasebut. Yen server mudhun kanggo pangopènan (utawa alesan apa wae), nimbang ngidini jendhela sauntara jam tambahan kanggo ndandani supaya tumindak bisa dikirim telat lan isih diitung. Sampeyan uga bisa milih kanggo menehi kabar marang pangguna, utamane yen kahanan bisa mengaruhi streak sing terus-terusan. Cathetan: Nggawe backdoor admin ing ngendi data bisa dibalekake kanthi manual. Kewan omo ora bisa dihindari, lan sawetara pangguna bakal nelpon app sampeyan utawa njaluk dhukungan supaya streak kasebut rusak amarga ora bisa dikontrol. Sampeyan kudu bisa mulihake garis kanthi manual yen, sawise diselidiki, pangguna bener. Kesimpulan Siji bab tetep cetha: Streaks pancen kuat amarga cara psikologi manungsa bisa digunakake ing tingkat dhasar. Sistem streak sing paling apik yaiku sing pangguna ora mikir kanthi sadar. Wis dadi rutinitas asil langsung utawa kemajuan sing katon, kaya gosok untu, sing dadi kebiasaan biasa. Lan aku mung bakal ngomong: Ora kabeh produk mbutuhake sistem streak. Apa sampeyan kudu meksa konsistensi mung amarga sampeyan pengin pangguna aktif saben dina? Jawaban kasebut bisa uga "ora".