Ishonchim komilki, siz chiziqlar haqida eshitgansiz yoki bitta ilovadan foydalangansiz. Lekin hech qachon o'ylab ko'rganmisiz, nega chiziqlar shunchalik mashhur va kuchli? Ilovalar sizning e'tiboringizni iloji boricha ko'proq jalb qilishni istashi aniq, ammo bundan tashqari, mashhur Duolingo o'quv ilovasi chiziqlarni ko'rsatish uchun iOS vidjetlarini taqdim etganida, foydalanuvchi majburiyati 60% ga oshganini bilasizmi. Oltmish foiz - bu xatti-harakatlarning katta o'zgarishi va "chiziq" naqshlaridan ishtirok etish va foydalanishni oshirish uchun qanday foydalanish mumkinligini ko'rsatadi. Eng asosiysi, chiziq - bu foydalanuvchi ma'lum bir faoliyatni bajargan ketma-ket kunlar soni. Ba'zi odamlar buni "o'yinlashtirilgan" odat yoki doimiy foydalanishni rag'batlantirish uchun mo'ljallangan ko'rsatkich sifatida ham belgilaydilar. Lekin chiziqlar ilovadagi o'lchov yoki rekord bo'lishdan tashqariga chiqadi; bu ko'proq psixologik. Inson instinktlariga to'g'ri omillar bilan ta'sir qilish oson. Ushbu uchta omilni ko'rib chiqing: taraqqiyot, mag'rurlik va o'tkazib yuborish qo'rquvi (odatda FOMO deb ataladi). Bularning barchasida qanday umumiylik bor? Harakat. Biror narsaga qanchalik ko'p kuch sarflasangiz, u sizning shaxsiyatingizni shunchalik ko'p shakllantiradi va shunday qilib chiziqlar xulq-atvor psixologiyasi olamiga o'tadi. Endi, katta kuch bilan katta mas'uliyat keladi va shu sababli, chiziqlarning qorong'u tomoni bor. Ushbu maqolada biz samarali chiziq tizimini yaratish ortidagi psixologiya, UX va dizayn tamoyillarini ko'rib chiqamiz. Biz (1) nega bizning miyamiz deyarli instinktiv ravishda chiziqli faollikka javob berishini, (2) foydalanuvchilarga chinakam yordam beradigan tarzda chiziqlarni qanday loyihalashni va (3) chiziq naqshini yaratish bilan bog'liq texnik ishlarni ko'rib chiqamiz. Chiziqlar ortidagi psixologiya Samarali chiziq tizimini loyihalash va qurish uchun biz uning miyamiz qanday bog'langaniga qanday mos kelishini tushunishimiz kerak. Masalan, biz o'z chiziqlarimizni himoya qilish uchun shunchalik kuchli fidoyilikni his qilishimiz uchun uni shunchalik samarali qiladi? Chiziqlarni shunchalik kuchli va o'ziga qaram qilishini qo'llab-quvvatlaydigan uchta qiziqarli, yaxshi hujjatlashtirilgan psixologiya tamoyillari mavjud. Yo'qotishdan voz kechish Bu, ehtimol, chiziqlar ortidagi eng kuchli kuchdir. Men buni aytaman, chunki ko'pincha hayotda bundan qochib qutula olmaysiz. Buni o'ylab ko'ring: agar do'stingiz sizga 100 dollar bersa, baxtli bo'lasiz. Ammo agar siz hamyoningizdan 100 dollar yo'qotsangiz, bu ko'proq zarar keltiradi. Bunday vaziyatlarning hissiy og'irligi teng emas. Yo'qotish yaxshi his qilishdan ko'ra ko'proq zarar keltiradi. Keling, buni davom ettiraylik va men sizga 100 dollar beraman va sizdan qimor o'ynashingizni so'rayman. Yana 100 dollar yutib olish ehtimoli 50% va original 100 dollarni yo‘qotish ehtimoli 50%. Qabul qilasizmi? qilmasdim. Aksariyat odamlar buni xohlamaydilar. Bu yo'qotishdan voz kechish. O‘ylab ko‘rsangiz, mantiqiy, tushunarli, insoniy. Yo'qotishdan voz kechish tushunchasi shundan iboratki, biz nimanidir yo'qotish og'rig'ini teng qiymatga ega bo'lgan narsaga ega bo'lish zavqidan ikki baravar ko'p his qilamiz. Psixologik nuqtai nazardan, yo'qotish daromaddan ko'ra ko'proq davom etadi. Ehtimol, bu chiziqlar bilan qanday bog'liqligini ko'rgansiz. Sezilarli chiziqni qurish uchun u harakat talab qiladi; chiziq o'sishi bilan uning orqasida turtki so'na boshlaydi; yoki aniqrog'i, ikkinchi darajali bo'lishni boshlaydi. Mana bir misol: Aytaylik, do'stingiz Apple Watch-dagi "Ko'chirish uzuklarini" yopib qo'ygan uch kunlik chiziqqa ega. Ular o'z maqsadlariga erishish va izchil bo'lishni xohlashdan boshqa hech narsa yo'qotmaydilar. Shu bilan birga, sizda 219 kunlik ta'sirchan seriya bor. Ehtimol, siz uni yo'qotish qo'rquviga tushib qolgansiz. Katta ehtimol bilan siz bu yutuq haqida o'ylamaysiz; bu sizning investitsiya qilingan sa'y-harakatlaringizni himoya qilish bilan bog'liq va bu yo'qotishdan qochishdir. Duolingo yo'qotishdan voz kechish foydalanuvchining hatto eng dangasa kunlarida ham uzoq davom etishni istamasligiga qanday hissa qo'shishini tushuntiradi. Qaysidir ma'noda, yo'qotishdan nafratlanish paydo bo'lganda, chiziq odatga aylanishi mumkin. Fogg xatti-harakati modeli (B = MAP) Endi biz uzoqroq chiziqlarga sarflangan sa'y-harakatlarni yo'qotish qo'rquvini tushunganimizdan so'ng, yana bir savol tug'iladi: bizni birinchi navbatda, kundan-kunga, hatto chiziq ko'payishidan oldin nima qilishga majbur qiladi? Fogg xulq-atvori modeli aynan mana shu. Bu nisbatan oddiy. Xulq-atvor (B) faqat uchta omil - Motivatsiya (M), Qobiliyat (A) va Tezkor (P) bir vaqtning o'zida moslashganda yuzaga keladi. Shunday qilib, tenglama B=MAP. Agar ushbu omillardan biri, hatto bittasi ham o'sha paytda etishmayotgan bo'lsa, xatti-harakatlar sodir bo'lmaydi. Shunday qilib, chiziqli tizim samarali va takroriy bo'lishi uchun uchta omil mavjud bo'lishi kerak: MotivatsiyaBu mo'rt va doimiy ravishda mavjud bo'ladigan narsa emas. Siz bo'lgan kunlar borispan tilini o'rganish uchun pompalanasiz va kunlar davomida siz tilni o'rganish uchun zarracha irodani his qilmaysiz. Odatni shakllantirish uchun motivatsiyaning o'zi ishonchsiz va birinchi kundanoq mag'lub bo'ladi. Motivatsiya cheklovlarini qoplash qobiliyati, qobiliyat juda muhimdir. Shu nuqtai nazardan, qobiliyat harakatning qulayligini anglatadi, ya'ni harakat shunchalik osonki, buni mumkin emas deb aytish haqiqatga to'g'ri kelmaydi. Aksariyat ilovalar buni ataylab ishlatadilar. Apple Fitnessga bir soat ichida bir daqiqa turishingiz kerak bo'lib, o'z maqsadingizga erishishingiz mumkin. Duolingo uchun faqat bitta tugallangan dars kerak. Bu vazifalar unchalik ko'p harakat talab qilmaydi. To'siq shunchalik pastki, hatto eng yomon kunlarda ham buni qila olasiz. Ammo davom etayotgan seriyaning birgalikdagi harakatlari o'sha seriyani yo'qotish g'oyasi paydo bo'ladi. PromptBu tenglamani to'ldiradigan narsa. Insonlar tabiatan unutuvchan, shuning uchun ha, qobiliyat bizni 90% ga olib kelishi mumkin. Ammo ogohlantirish bizga harakat qilishni eslatadi. Chiziqlar dizayni bo'yicha doimiydir, shuning uchun foydalanuvchilarga doimo harakat qilish kerakligini eslatib turish kerak. Ko'rsatma qanchalik kuchli ekanligini ko'rish uchun Duolingo ilova belgisidagi qizil nishon doimiy foydalanishni oshirganligini aniqlash uchun A/B testini o'tkazdi. Bu kunlik faol foydalanuvchilarning 6 foizga o'sishiga olib keldi. Faqat qizil nishon. Model cheklovlari Bularning barchasi Fogg modelida cheklov mavjud bo'lib, tanqidchilar va zamonaviy tadqiqotlar tajovuzkor bildirishnomalar kabi ko'rsatmalarga juda ko'p tayanadigan dizayn aqliy charchoqni keltirib chiqarishi mumkinligini payqashdi. Doimiy bildirishnomalar va qo'shimcha ish vaqti foydalanuvchilarning noroziligiga olib kelishi mumkin. Shunday ekan, bunga ehtiyot bo'ling. Zeigarnik effekti Loyiha topshirig'ini yarim tugagandan so'ng o'zingizni qanday his qilasiz? Bu ko'pchilikni bezovta qiladi, chunki tugallanmagan vazifalar biz bajargan narsalarga qaraganda ko'proq aqliy joyni egallaydi. Biror narsa tugagach, biz uni unutishga moyilmiz. Agar biror narsa bekor qilinsa, u bizning ongimizga og'irlik qiladi. Aynan shuning uchun raqamli mahsulotlar foydalanuvchiga o'z profilining "60% to'liq" ekanligini bildirish uchun Upworkning profilni to'ldirish paneli kabi sun'iy rivojlanish ko'rsatkichlaridan foydalanadi. Bu foydalanuvchini boshlagan ishini tugatishga undaydi.

Keling, boshqa misolni ko'rib chiqaylik. Vazifalar ro'yxati ilovasida beshta vazifangiz bor va kun oxirida siz ulardan faqat to'rttasini bajarilganligini tekshirasiz. Ko'pchiligimiz o'sha tugallanmagan vazifa tufayli o'zimizni bajarilmagandek his qilamiz. Aynan shu erda, Zeigarnik effekti. Zeigarnik effektini psixolog Bluma Zeigarnik ko'rsatdi, u biz tugallanmagan vazifalarni bajarilgan ishlardan ko'ra ko'proq xotiramizda faol saqlashimizni ta'kidladi. Chiziqli naqsh UX dizaynida bunga tabiiy ravishda tegadi. Aytaylik, siz o'quv seriyasining 63-kunidasiz. O'sha paytda siz tugallanmagan biznesning davom etayotgan namunasidasiz. Sizning miyangiz bu haqda kamdan-kam unutadi, chunki u ongingizning orqa qismida o'tiradi. Bu vaqtda sizning miyangiz sizga bildirishnomalarni yuboradigan odamga aylanadi. Ushbu psixologik kuchlarni birlashtirganingizda, nima uchun chiziqlar oddiy dastur xususiyati emasligini haqiqatdan ham tushuna boshlaysiz; ular inson xulq-atvorini qayta shakllantirishga qodir. Ammo qayerdadir - men aniq qachon ayta olmayman, chunki bu hamma uchun farq qiladi - ishlar shunday nuqtaga etadiki, chiziq "qiziqarli" dan siz yo'qotishingiz mumkin emas deb hisoblagan narsaga o'tadi. Siz 58 kunlik mehnatingiz behuda ketishini xohlamaysiz, shunday emasmi? Bu chiziq tizimini samarali qiladi. Agar to'g'ri bajarilgan bo'lsa, chiziqlar foydalanuvchilarga maqsadga erishadigan hayratlanarli odatlarni shakllantirishga yordam beradi. Bu har kuni o'qish yoki doimiy ravishda sport zaliga borish bo'lishi mumkin. Bu takrorlanadigan harakatlar (ba'zan kichik) vaqt o'tishi bilan birlashadi va kundalik hayotimizda namoyon bo'ladi. Lekin har bir tanganing ikki tomoni bor. Odat va majburlash o'rtasidagi nozik chiziq Agar siz buni kuzatib borgan bo'lsangiz, tizimlarni buzishning qorong'u tomoni borligini allaqachon aytishingiz mumkin. Odatni shakllantirish - bu takroriy maqsadga muvofiqlikdir. Majburiylik esa endi kerak bo'lmagan, ammo qo'rquv yoki bosim tufayli erishilgan maqsad ustida ishlashning izchilligidir. Bu ustaradek nozik chiziq. Siz har kuni ertalab o'ylamasdan tishlaringizni yuvasiz; u avtomatik va instinktiv bo'lib, yaxshi nafas olishni aniq maqsad qiladi. Bu yaxshi odatni shakllantiradigan chiziq. Axloqiy chiziq tizimi foydalanuvchilarga nafas olish uchun joy beradi. Agar biron sababga ko'ra ertalab cho'tkasi bo'lmasa, tushda cho'tkasi mumkin. Nomukammallikka uzoq harakatni yo'qotishdan qo'rqmasdan ruxsat beriladi. Majburlash teskari yo'lni bosib o'tadi, buning natijasida bir qator sizni tashvishga soladi, o'zingizni aybdor his qilasiz yoki hatto charchagan bo'lasiz va ba'zida barcha harakatlaringizga qaramay, hech narsaga erisha olmagandek bo'lasiz.ish. Siz o'zingiz xohlaganingiz uchun emas, balki ongsiz ravishda taraqqiyotingiz nolga qaytarilishini ko'rishdan qo'rqib ketganingiz uchun harakat qilasiz. Hatto kimdir buni juda yaxshi ta'riflagan: "Men o'zimni aldayotganimni his qildim, lekin shunchaki parvo qilmadim. Men o'zimning chizig'imsiz hech kim emasman". Bu odamda haddan tashqari ushlab turish chizig'ini ko'rsatadi. Foydalanuvchilar o'zlarining qadr-qimmatini asl maqsad yoki birinchi navbatda boshlangan sababga emas, balki o'zboshimchalik bilan bog'lashni boshlaydilar. Chiziq ular qilgan ishlari emas, balki kim ekanligiga aylanadi. Yaxshi ishlab chiqilgan axloqiy chiziq tizimi bosim yoki majburiyat emas, balki foydalanuvchini rag'batlantirish kabi his qilishi kerak. Bu ichki va tashqi motivatsiyaning muvozanati bilan bog'liq. Tashqi motivatsiya (tashqi mukofotlar, jazodan qochish) foydalanuvchilarni ishga tushirishi mumkin, ammo ichki motivatsiya (ispan tilini o'rganish kabi shaxsiy maqsad uchun vazifani bajarish, chunki siz chin dildan sevganingiz bilan muloqot qilishni xohlaysiz) uzoq muddatli hamkorlik uchun kuchliroqdir. Yaxshi tizim tashqi elementlardan ehtiyotkorlik bilan foydalanish bilan ichki motivatsiyaga yo'naltirilishi kerak, ya'ni foydalanuvchilarga qanchalik uzoqqa borganliklarini eslatib turishi kerak, ularni yo'qotishi mumkin bo'lgan narsalar bilan tahdid qilmasligi kerak. Shunga qaramay, bu nozik chiziq. Chiziqli tizimni loyihalashda oddiy sinov - bu biroz vaqt talab qilish va mahsulotingiz yaratgan tashvishlarga yechimlarni sotish orqali mahsulotingiz pul ishlash yoki yo'qligini o'ylashdir. Ha bo'lsa, foydalanuvchilarni ekspluatatsiya qilish ehtimoli yuqori. Shunday qilib, keyingi savol: Agar men chiziqdan foydalanishni tanlasam, uni qanday qilib foydalanuvchilarga o'z maqsadlariga erishishga yordam beradigan tarzda loyihalashtiraman? Yaxshi Streak tizimi dizaynining UX O'ylaymanki, bu erda ko'pchilik loyihalar samarali chiziq tizimini yaratadi yoki uni butunlay buzadi. Keling, yaxshi chiziqli dizaynning ba'zi UX tamoyillarini ko'rib chiqaylik. Uni qiyinchiliksiz saqlang Siz buni avval ham eshitgan bo'lsangiz kerak, ehtimol Atom odatlari kabi kitoblardan, lekin shuni ta'kidlash kerakki, odatlarni shakllantirishning eng oson usullaridan biri bu harakatni mayda va oson qilishdir. Bu biz Fogg xulq-atvor modelida muhokama qilgan qobiliyat omiliga o'xshaydi. Har qanday chiziqli dizaynning birinchi qoidasi, kerakli harakatni inson tomonidan imkon qadar kichikroq qilish va hali ham taraqqiyotga erishishdir. Agar kunlik harakatni bajarish uchun iroda kuchi kerak bo'lsa, bu harakat besh kundan keyin ham o'tib ketmaydi. Nega? Siz besh kun ketma-ket motivatsiya qila olmaysiz. Masalaning misoli: Agar siz meditatsiya dasturini ishga tushirsangiz, bu ketma-ketlikni saqlab qolish uchun foydalanuvchilarni 20 daqiqalik seansdan o‘tkazishga majbur qilishingiz shart emas. Buning o'rniga bir daqiqa, hatto o'ttiz soniya kabi kichik bir narsani sinab ko'ring. Aytishlaricha, kichik suv tomchilari qudratli okeanni yaratadi). Kichik harakatlar vaqt o'tishi bilan katta yutuqlarga aylanadi. Maqsad shu bo'lishi kerak: ishqalanishni olib tashlang, ayniqsa qiyin payt. Foydalanuvchilar stressga duchor bo'lganlarida yoki haddan tashqari ko'p bo'lganlarida, ularga bir necha soniya bo'lsa ham, shunchaki ko'rsatish harakat sifatida hisoblanishini bildiring. Aniq vizual fikr-mulohazalarni taqdim eting Inson tabiatan ingl. Ko'pincha, biz ishonish uchun biror narsani ko'rishimiz kerak; ularni yaxshiroq tushunish va narsalarni istiqbolga qo'yish uchun narsalarni tasavvur qilish kerak. Shuning uchun chiziq naqshlari ko'pincha harakatlarni tasavvur qilish uchun grafiklar, tasdiq belgilari, progress halqalari va panjara kabi vizual elementlardan foydalanadi. GitHub-ning hissa grafigiga qarang. Bu izchillikning oddiy vizualizatsiyasi. Ammo ishlab chiquvchilar uni kislorod kabi nafas olishadi.

Asosiysi, chiziq tizimini mavhum his qilmaslikdir. Bu haqiqiy va qo'lga kiritilgandek tuyulishi kerak. Misol uchun, Duolingo va Apple’ning Fitness faolligi uzuklari ketma-ketlikni yakunlashda toza animatsiya dizaynlaridan foydalanadi va GitHub foydalanuvchining vaqt o'tishi bilan izchilligi haqidagi tarixiy ma'lumotlarni ko'rsatadi.

Yaxshi vaqtdan foydalaning Yuqorida aytib o'tganmanki, odamlar tabiatan odatda unutuvchan bo'lib, ko'rsatmalar oldinga siljishni saqlashga yordam beradi. Ko'rsatmalarsiz ko'pchilik yangi foydalanuvchilar davom etishni unutishadi. Hayot band bo'lishi mumkin, motivatsiya yo'qoladi va voqealar sodir bo'ladi. Hatto uzoq vaqtdan beri ishlayotgan foydalanuvchilar ham ko'rsatmalardan foyda ko'radilar, garchi ko'pincha ular allaqachon odat davri ichida qulflangan. Shunga qaramay, hatto eng sodiq odam ham tasodifan bir kunni o'tkazib yuborishi mumkin. Sizning chiziqli tizimingiz, albatta, eslatmalarga muhtoj. Eng ko'p ishlatiladigan tezkor eslatmalar push-bildirishnomalardir. Push-bildirishnomalar bilan ishlashda vaqt juda muhim. Ilovaning turi ham muhimdir. Soat 9:00 da “Siz bugun mashq qilmagansiz” deb bildirishnoma yuborish o‘quv ilovasi uchun shunchaki g‘alati, chunki ko‘pchilik darsni yakunlash haqida o‘ylamasdan bir kun oldin qiladigan ishlari bor. Agar biz fitnes ilovasi haqida gapiradigan bo'lsak, buBu o'rinli va hatto kunning boshida eslatilishi ham mumkin. Push-bildirishnomalar ilovalar toifasiga qarab sezilarli darajada farq qiladi. Masalan, fitnes ilovalari erta tongda bildirishnomalar (7–8:00) bilan yuqori faollikni ko‘radi, unumdorlik ilovalari esa peshin vaqtida yaxshiroq ishlashi mumkin. Asosiysi, A/B ilovangiz vaqtini hamma narsaga mos keladi deb o'ylamasdan, foydalanuvchilarning xatti-harakatlari asosida sinab ko'rishdir. Meditatsiya ilovasi uchun ishlaydigan narsa kodlash kuzatuvchisi uchun ishlamasligi mumkin. Boshqa tezkor usullar - ilova belgisidagi qizil nuqta va hatto ilova vidjetlari. Tadqiqotlar har xil, ammo o'rtacha odam kuniga 50-150 marta o'z qurilmasini qulfdan chiqaradi (PDF). Agar foydalanuvchi har safar telefonini qulfdan chiqarganida joriy chiziqni ko‘rsatuvchi ilova yoki vidjetda qizil nuqta ko‘rsa, bu majburiyatni oshiradi. Faqat haddan oshib ketmang; so'rov nag emas, balki eslatma bo'lib xizmat qilishi kerak. Marosimlarni nishonlang Streak tizimi hissiyotlarni qayta yoqish uchun muhim bosqichlarni nishonlashga harakat qilishi kerak, ayniqsa foydalanuvchilar uchun. Agar foydalanuvchi 7-kun, 30-kun, 50-kun, 100-kun, 365-kunni urganida, siz undan katta foyda olishingiz kerak. Yutuqlarni e'tirof eting - ayniqsa uzoq vaqtdan beri foydalanuvchilar uchun.

Yuqorida ko'rganimizdek, Duolingo buni aniqladi va konfeti bilan muhim bosqichlarni nishonlaydigan animatsion grafikni amalga oshirdi. Ba'zi platformalar hatto foydalanuvchilarning sa'y-harakatlarini tasdiqlovchi katta bonus mukofotlarini ham beradi. Va bu ilovalar uchun foydali bo'lishi mumkin, shuning uchun foydalanuvchilar o'zlarining muhim bosqichlarini ijtimoiy tarmoqlarda ochiq baham ko'rishadi. Yana bir afzallik - marralarga erishishdan oldin keladigan kutish. Bu shunchaki chiziqni cheksiz saqlab qolish emas; foydalanuvchilar orziqib kutadigan narsaga ega. Grace mexanizmlaridan foydalaning Hayot oldindan aytib bo'lmaydi. Odamlar chalg'ishadi. Har qanday yaxshi chiziq tizimi nomukammallikni kutishi kerak. Chiziq tizimi uchun eng katta psixologik tahdidlardan biri bu o'tkazib yuborilgan bir kundan keyin nolga qattiq o'rnatishdir. "Axloqiy" chiziq tizimi foydalanuvchini biroz bo'shashtirishi kerak. Aytaylik, sizda 90 kunlik shaxmat o'rganish seriyangiz bor. Siz uchta yaxshi oy davomida izchil bo'ldingiz va bir kun sayohat paytida telefoningiz o'ladi va xuddi shunday, 90 0 ga aylanadi - hamma narsa, barcha urinishlar o'chiriladi va taraqqiyot yo'qoladi. Foydalanuvchi butunlay vayron bo'lishi mumkin. Uni noldan qayta tiklash fikri shunchalik ruhiy tushkunlikka tushadiki, bu harakat bunga loyiq emas. Eng yomoni, foydalanuvchi o'zini muvaffaqiyatsizlikka uchraganidan keyin ilovani tark etishi mumkin. Streak tizimiga "inoyat" mexanizmini qo'shishni o'ylab ko'ring:

Streak FreezeFoydalanuvchilarga jazosiz bir kunni qasddan o'tkazib yuborishga ruxsat bering. Qo'shimcha vaqt Qayta o'rnatishni boshlashdan oldin odatdagi muddatdan bir necha soat (2-3) o'tib ketishiga ruxsat bering. Decay Models Qattiq qayta o'rnatish o'rniga, chiziq kichik miqdorga kamayadi, masalan, o'tkazib yuborilgan kun uchun chiziqdan 10 kun chegiriladi.

Rag'batlantiruvchi ohangdan foydalaning Keling, chiziq uzilganda foydalanuvchilarga ko'rsatilgan ikkita xabarni taqqoslaylik:

"Siz 42 kunlik seriyangizni yo'qotdingiz. Qaytadan boshlang." "Siz 42 kun ketma-ket keldingiz. Bu ajoyib muvaffaqiyat! Yana bir urinib ko'rmoqchimisiz?"

Ikkalasi ham bir xil ma'lumotni etkazib beradi, ammo hissiy ta'sir boshqacha. Birinchi xabar, ehtimol, foydalanuvchini ruhiy tushkunlikka olib keladi va uni tark etishga majbur qiladi. Ikkinchi xabar allaqachon erishilgan narsalarni nishonlaydi va muloyimlik bilan foydalanuvchini qayta urinib ko'rishga undaydi. Streak tizimlarini loyihalash muammolari Chiziqli tizimni qurishning texnik xususiyatlariga kirishdan oldin, siz duch kelishi mumkin bo'lgan qiyinchiliklardan xabardor bo'lishingiz kerak. Ishlar siz kutganingizdek murakkablashishi mumkin. Vaqt zonalari bilan ishlash Vaqt va sana bilan ishlash ishlab chiquvchilar bilan shug'ullanadigan eng qiyin tushunchalar qatoriga kirishining sababi bor. Formatlash, xalqarolashtirish va boshqa ko'p narsalarni hisobga olish kerak. Sizdan so'rayman: bir kun nima hisoblanadi? Biz bilamizki, dunyo turli vaqt zonalarida ishlaydi va bu etarli emasdek, ba'zi hududlarda yiliga ikki marta bo'ladigan yozgi vaqt (DST) mavjud. Ushbu chekka holatlarni qayerdan boshlaysiz? Ertangi kunning "boshlanishi" nima hisoblanadi? Ba'zi ishlab chiquvchilar UTC kabi bitta markaziy vaqt zonasidan foydalanib, bundan qochishga harakat qilishadi. Ba'zi foydalanuvchilar uchun bu to'g'ri natijalar beradi, ammo ba'zilari uchun u bir soat, ikki soat yoki undan ko'proq vaqtga o'chirilishi mumkin. Ushbu nomuvofiqlik foydalanuvchi tajribasini buzadi. Foydalanuvchilar parda ortidagi vaqtni qanday boshqarishingizga ahamiyat bermaydilar; ular kutgan narsa shundan iboratki, agar ular soat 23:40 da chiziqli harakatni amalga oshirsalar, u o'sha vaqtda, ularning kontekstida ro'yxatdan o'tishi kerak. Siz “bir kun”ni server vaqtiga emas, balki foydalanuvchining mahalliy vaqt mintaqasiga qarab belgilashingiz kerak. Albatta, siz osonlikcha qabul qilishingiz mumkinUTC yarim tunida barcha foydalanuvchilar uchun global miqyosda chiziqlarni yo'naltiring va qayta o'rnating, lekin siz juda adolatsizlik yaratyapsiz. Kaliforniyadagi kimdir Londonda yashovchiga qaraganda har doim o'z vazifasini bajarish uchun sakkiz qo'shimcha soatga ega. Bu ma'lum foydalanuvchilarni joylashuvi tufayli jazolaydigan nohaq dizayn nuqsonidir. Va agar u Londonga tashrif buyursa, biror vazifani bajarib, keyin boshqa vaqt mintaqasiga qaytsa-chi? Bularning barchasi uchun samarali echimlardan biri foydalanuvchilardan bortga kirish paytida vaqt mintaqasini aniq belgilashni so'rashdir (afzal birinchi autentifikatsiyadan keyin). Vaqt mintaqasi ma'lumotlarini taqdim etish shaxsiy identifikatsiya qilinadigan ma'lumotlar sifatida ishlatilmaydi, balki faqat taraqqiyotni aniq kuzatish uchun ilova uchun ishlatilishi haqida nozik eslatma qo'shsangiz yaxshi bo'ladi. Va buni o'zgaruvchan sozlama qilish yana bir yaxshi fikr. Men har kimga ilovada vaqt mintaqasi mantig'ini bevosita ishlatishdan qochishni tavsiya qilaman. Moment.js yoki pytz (Python) va boshqalar kabi sinab ko'rilgan va haqiqiy sanalar kutubxonalaridan foydalaning. Bu kabi murakkab narsa uchun g'ildirakni qayta ixtiro qilishning hojati yo'q. O'tkazib yuborilgan kunlar va chekka holatlar Siz tashvishlanishingiz kerak bo'lgan yana bir qiyinchilik - bu foydalanuvchilarning haddan tashqari uxlab qolishi, serverning ishlamay qolishi, kechikish, tarmoqdagi nosozliklar va hokazolar kabi boshqarib bo'lmaydigan holatlar. Ilgari muhokama qilganimiz kabi inoyat mexanizmlari g'oyasidan foydalanish yordam berishi mumkin. Ikki soatlik imtiyozli oyna foydalanuvchiga ham, ishlab chiquvchiga ham yordam berishi mumkin, ya'ni foydalanuvchilar nazoratsiz hayot sharoitlari uchun qattiq jazolanmaydi. Tunning yarmida server ishlamay qolganda, ishlab chiquvchilar uchun grace windows nazorat qilib bo'lmaydigan daqiqalarda yordam beradi. Eng muhimi, mijozga hech qachon ishonmang. Har doim server tomonida tasdiqlang. Server haqiqatning yagona manbai bo'lishi kerak. Aldashning oldini olish Yana shuni ta'kidlay olmayman: hamma narsani server tomonida tekshirishga ishonch hosil qiling. Foydalanuvchilar odamlardir va agar imkoniyat berilsa, odamlar aldashlari mumkin. Bu muqarrar. Siz sinab ko'rishingiz mumkin:

Barcha amallarni UTC vaqt belgilari bilan saqlash. Mijoz oʻz mahalliy vaqtini yuborishi mumkin, lekin server uni darhol UTC ga oʻzgartirib, server vaqtiga nisbatan tekshirishi mumkin. Shunday qilib, agar mijozning vaqt tamg'asi shubhali darajada uzoq bo'lsa, tizim uni xato sifatida rad qilishi mumkin va UI shunga mos ravishda javob berishi mumkin. Voqealarga asoslangan kuzatuvdan foydalanish. Boshqacha qilib aytganda, foydalanuvchi identifikatori, bajarilgan harakat turi, vaqt tamg'asi va vaqt mintaqasi kabi ma'lumotlarni o'z ichiga olgan metama'lumotlar bilan har bir harakatning rekordini saqlang. Bu tasdiqlashda yordam beradi.

Streak tizimi dvigatelini yaratish Bu kod bo'yicha qo'llanma emas, shuning uchun men sizga bir nechta kodni tashlab qo'ymayman. Men buni amalda qo'llab-quvvatlayman va arxitektura, oqim va ishonchlilik nuqtai nazaridan narsalar odatda chiziqli tizim dvigateli qanday ishlashini tasvirlab beraman. Asosiy arxitektura Men bir necha bor aytganimdek, serverni chiziqli ma'lumotlar uchun yagona haqiqat manbaiga aylantiring. Arxitektura serverda shunday bo'lishi mumkin:

Har bir foydalanuvchi ma'lumotlarini ma'lumotlar bazasida saqlang. Joriy chiziqli do'konni (standart 0) butun son sifatida saqlang. Soat mintaqasi parametrlarini, ya'ni IANA vaqt mintaqasi qatorini saqlang (mahalliy vaqt belgisidan yoki foydalanuvchidan o'z vaqt mintaqasini tanlashni so'rash orqali). Masalan, "Amerika/Nyu_York". Chiziq davom etishi yoki uzilishini aniqlash uchun barcha mantiqlardan foydalaning va foydalanuvchining mahalliy vaqt mintaqasiga nisbatan vaqt mintaqasini tekshiring.

Shu bilan birga, mijoz tomonida:

Odatda serverdan olinadigan joriy chiziqni ko'rsatish. Metamaʼlumotlar koʻrinishida bajarilgan amalni serverga yuboring. Server javoblari asosida vizual fikr-mulohazalarni taqdim eting.

Xulosa qilib aytganda, miya serverda, mijoz esa namoyish qilish va voqealarni yuborish uchun. Bu sizga ko'plab nosozliklar va nosozliklarni saqlaydi, shuningdek, yangilanishlar va tuzatishlarni osonlashtiradi. Mantiqiy oqim Keling, foydalanuvchi biror amalni bajarganida minimal samarali chiziqli tizim mexanizmi qanday ishlashini taqlid qilaylik:

Foydalanuvchi saralash chizig'i harakatini yakunlaydi. Mijoz hodisani serverga metadata sifatida yuboradi. Bu “X foydalanuvchi Z vaqt tamg‘asida Y amalini bajardi” bo‘lishi mumkin. Server ushbu hodisani qabul qiladi va asosiy tekshirishni amalga oshiradi. Bu haqiqiy foydalanuvchimi? Ular autentifikatsiya qilinganmi? Amal amal qiladimi? Vaqt mintaqasi izchilmi? Agar bu o'tib ketsa, server ma'lumotlar bazasidan foydalanuvchining chiziqli ma'lumotlarini oladi. Keyin, qabul qilingan harakat vaqt tamg'asini foydalanuvchining mahalliy vaqt mintaqasiga aylantiring. Serverga foydalanuvchining mahalliy vaqt mintaqasidagi kalendar sanalarini (vaqt belgilarini emas) solishtirishga ruxsat bering: Agar xuddi shu kun bo'lsa, unda harakat ortiqcha bo'ladi va hech qanday o'zgarish bo'lmaydichiziq. Agar keyingi kun bo'lsa, chiziq uzayadi va 1 ga ortadi. Agar bir kundan ortiq bo'shliq bo'lsa, chiziq buziladi. Biroq, bu erda siz inoyat mexanikasini qo'llashingiz mumkin. Agar inoyat mexanizmi o'tkazib yuborilgan bo'lsa, chiziqni 1 ga qaytaring.

Agar siz erishilgan yutuqlar uchun tarixiy maʼlumotlarni saqlashni tanlasangiz, “eng uzun chiziq” yoki “jami faol kunlar” kabi oʻzgaruvchilarni yangilang. Keyin server ma'lumotlar bazasini yangilaydi va mijozga javob beradi. Shunga o'xshash narsa:

{ "current_streak": 48, "eng uzun_chiziq": 50, "jami_faol_kunlar": 120, "streak_extended": rost, }

Keyingi chora sifatida server qayta urinib ko'rishi yoki rad etishi va jarayon davomida biror narsa bajarilmasa, mijozni xabardor qilishi kerak. Bardoshlilik uchun qurilish Yuqorida aytib o'tilganidek, xatolar yoki serverning ishlamay qolishi tufayli foydalanuvchilar seriyasini yo'qotish dahshatli UX hisoblanadi va foydalanuvchilar buning uchun yiqilishni kutishmaydi. Shunday qilib, sizning chiziq tizimingiz ushbu stsenariylar uchun himoya vositalariga ega bo'lishi kerak. Agar server texnik xizmat ko'rsatish uchun ishlamay qolgan bo'lsa (yoki biron sababga ko'ra), uni tuzatish uchun vaqtinchalik qo'shimcha soatlarga ruxsat berishni o'ylab ko'ring, shunda harakatlar kechikib yuborilishi va hali ham hisobga olinishi mumkin. Bundan tashqari, foydalanuvchilarni xabardor qilishni tanlashingiz mumkin, ayniqsa vaziyat davom etayotgan chiziqqa ta'sir qilishi mumkin bo'lsa. Eslatma: Ma'lumotlarni qo'lda tiklash mumkin bo'lgan administrator orqa eshiklarini o'rnating. Xatolar muqarrar va ba'zi foydalanuvchilar sizning ilovangizga qo'ng'iroq qilishadi yoki ular nazorat qila olmagan sabablarga ko'ra ularning chizig'i buzilganligini qo'llab-quvvatlash uchun murojaat qilishadi. Agar tekshiruvdan so'ng foydalanuvchi to'g'ri bo'lsa, siz chiziqlarni qo'lda tiklashingiz kerak. Xulosa Bir narsa aniqligicha qolmoqda: Streaks inson psixologiyasi fundamental darajada qanday ishlashi tufayli haqiqatan ham kuchli. Eng yaxshi chiziq tizimi foydalanuvchilar ongli ravishda o'ylamaydigan tizimdir. Bu muntazam odat bo'lib qolgan tishlarni cho'tkalash kabi darhol natijalar yoki ko'zga ko'rinadigan taraqqiyotning odatiy holiga aylandi. Va men shunchaki aytaman: barcha mahsulotlarga chiziq tizimi kerak emas. Kundalik faol foydalanuvchilarni xohlayotganingiz uchun haqiqatan ham izchillikni majburlash kerakmi? Javob "yo'q" bo'lishi mumkin.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free