Համոզված եմ, որ լսել եք շերտերի մասին կամ օգտագործել եք որևէ հավելված: Բայց երբևէ մտածել եք, թե ինչու են շերտերն այդքան հայտնի և հզոր: Դե, ակնհայտ է, որ հավելվածները հնարավորինս մեծ ուշադրություն են պահանջում, բայց բացի դրանից, դուք գիտեի՞ք, որ երբ հանրահայտ Duolingo ուսումնական հավելվածը ներկայացրեց iOS վիջեթները՝ շերտերը ցուցադրելու համար, օգտատերերի նվիրվածությունն աճեց 60%-ով։ Վաթսուն տոկոսը վարքի զանգվածային փոփոխություն է և ցույց է տալիս, թե ինչպես կարելի է օգտագործել «շերտավոր» օրինաչափությունները ներգրավվածությունը մեծացնելու և օգտագործումը խթանելու համար: Ամենակարևոր ձևով շարանը անընդմեջ օրերի քանակն է, երբ օգտատերը կատարում է որոշակի գործողություն: Որոշ մարդիկ նաև դա սահմանում են որպես «խաղացված» սովորություն կամ չափիչ, որը նախատեսված է հետևողական օգտագործումը խրախուսելու համար: Բայց շերտերը գերազանցում են չափիչ կամ ռեկորդ լինելը հավելվածում. դա ավելի հոգեբանական է, քան դա: Մարդկային բնազդների վրա հեշտ է ազդել ճիշտ գործոններով: Նայեք այս երեք գործոններին՝ առաջընթաց, հպարտություն և բաց թողնելու վախ (սովորաբար կոչվում է FOMO): Ի՞նչ ընդհանուր բան ունեն այս ամենը: Ջանք. Որքան ավելի շատ ջանք եք գործադրում ինչ-որ բանի վրա, այնքան այն ավելի է ձևավորում ձեր ինքնությունը, և այդ կերպ շերտերը անցնում են վարքագծային հոգեբանության աշխարհ: Այժմ, մեծ ուժի հետ միասին մեծ պատասխանատվություն է գալիս, և դրա պատճառով էլ շերտերի մութ կողմը կա: Այս հոդվածում մենք կանդրադառնանք հոգեբանության, UX-ի և դիզայնի սկզբունքներին, որոնք հետևում են արդյունավետ շերտային համակարգի կառուցմանը: Մենք կանդրադառնանք (1) թե ինչու է մեր ուղեղը գրեթե բնազդաբար արձագանքում շղթայի ակտիվությանը, (2) ինչպես ձևավորել շերտերն այնպես, որ իսկապես օգնում են օգտատերերին, և (3) տեխնիկական աշխատանքը, որը ներգրավված է գծերի գծապատկեր ստեղծելու համար: Հոգեբանությունը շերտերի հետևում Արդյունավետ շերտավոր համակարգ նախագծելու և կառուցելու համար մենք պետք է հասկանանք, թե ինչպես է այն համընկնում մեր ուղեղի միացման հետ: Օրինակ՝ ի՞նչն է դարձնում այն ​​այդքան արդյունավետ այնքանով, որքանով մենք զգում ենք այդքան ինտենսիվ նվիրվածություն՝ պաշտպանելու մեր շերտերը: Կան երեք հետաքրքիր, լավ փաստագրված հոգեբանական սկզբունքներ, որոնք աջակցում են այն բանին, թե ինչն է դարձնում շերտերն այդքան հզոր և կախվածություն առաջացնող: Կորստի հակակրանք Սա թերևս ամենաուժեղ ուժն է շերտերի հետևում: Ես սա ասում եմ, որովհետև շատ դեպքերում կյանքում գրեթե չես կարող խուսափել դրանից: Մտածեք դրա մասին այսպես. Եթե ընկերը ձեզ 100 դոլար տա, դուք երջանիկ կլինեք: Բայց եթե ձեր դրամապանակից կորցնեիք 100 դոլար, դա ավելի շատ կվնասի: Այդ իրավիճակների զգացմունքային կշիռը հավասար չէ: Կորուստն ավելի շատ ցավ է պատճառում, քան շահույթը: Եկեք ավելի հեռուն տանենք և ասենք, որ ես ձեզ տալիս եմ 100 դոլար և խնդրում եմ ձեզ մոլախաղ խաղալ: Կա 50% հավանականություն, որ դուք շահեք ևս 100 դոլար և 50% հավանականություն, որ կորցնեք սկզբնական $100-ը: Կվերցնեի՞ք։ ես չէի անի: Մարդկանց մեծամասնությունը չի անի: Դա կորստի զզվանք է: Եթե ​​մտածես, տրամաբանական է, հասկանալի է, մարդկային է։ Կորուստից զզվելու հիմքում ընկած հայեցակարգն այն է, որ մենք ինչ-որ բան կորցնելու ցավը կրկնակի ավելի ենք զգում, քան հավասար արժեք ունեցող բան ձեռք բերելու հաճույքը: Հոգեբանական առումով կորուստն ավելի շատ է ձգձգվում, քան շահույթը: Դուք հավանաբար տեսնում եք, թե ինչպես է դա կապված շերտերի հետ: Նկատելի շղթա կառուցելու համար ջանք է պահանջվում. քանի որ շերտը մեծանում է, դրա հետևում ընկած մոտիվացիան սկսում է մարել. ավելի ճիշտ՝ սկսում է երկրորդական դառնալ։ Ահա մի օրինակ․ ասեք, որ ձեր ընկերն ունի եռօրյա շարան՝ փակելով իր «Move Rings»-ն իր Apple Watch-ում։ Նրանք գրեթե ոչինչ չունեն կորցնելու իրենց նպատակին հասնելու և հետևողական լինելու ցանկությունից բացի: Միևնույն ժամանակ, դուք ունեք 219-օրյա տպավորիչ շարք: Հավանական է, որ դուք հայտնվել եք այն կորցնելու վախի թակարդում: Դուք, ամենայն հավանականությամբ, այս պահին չեք մտածում ձեռքբերումների մասին. դա ավելի շատ վերաբերում է ձեր ներդրած ջանքերը պաշտպանելուն, և դա կորուստների զզվանքն է: Duolingo-ն բացատրում է, թե ինչպես է կորուստների հանդեպ զզվանքը նպաստում օգտատերերի դժկամությանը ընդհատելու երկար շարանը, նույնիսկ նրանց ամենածույլ օրերին: Ինչ-որ կերպ, շարանը կարող է վերածվել սովորության, երբ կորցնելու զզվանքը հաստատվի: Ֆոգի վարքագծի մոդելը (B = MAP) Այժմ, երբ մենք հասկանում ենք ավելի երկար շարքերի վրա ներդրված ջանքերը կորցնելու վախը, մեկ այլ հարց է. Ի՞նչն է մեզ ստիպում առաջին հերթին անել այդ բանը, օրեցօր, նույնիսկ նախքան շարքը մեծանալը: Ահա թե ինչի մասին է Fogg Behavior Model-ը: Դա համեմատաբար պարզ է. Վարքագիծը (B) տեղի է ունենում միայն այն դեպքում, երբ երեք գործոն՝ մոտիվացիա (M), ունակություն (A) և հուշում (P) - համընկնում են նույն պահին: Այսպիսով, B=MAP հավասարումը: Եթե ​​այդ գործոններից որևէ մեկը, թեկուզ մեկը, բացակայում է այդ պահին, վարքագիծը տեղի չի ունենա: Այսպիսով, շերտային համակարգը արդյունավետ և կրկնվող լինելու համար պետք է ներկա լինեն բոլոր երեք գործոնները. ՄոտիվացիաՍա փխրուն է և ոչ մի բան, որը մշտապես առկա է: Կան օրեր, երբ դու եսմղված է սովորել իսպաներեն, և օրերում դուք նույնիսկ մի փոքր կամքի ուժ չեք զգում լեզուն սովորելու համար: Սովորություն ստեղծելու մոտիվացիան ինքնին անհուսալի է և պարտվողական պայքար առաջին իսկ օրվանից: Մոտիվացիայի սահմանափակումները փոխհատուցելու ունակությունը կարևոր է: Այս համատեքստում կարողությունը նշանակում է գործելու հեշտություն, այսինքն՝ ջանքերն այնքան հեշտ են, որ անիրատեսական է ասել, որ դա հնարավոր չէ: Հավելվածների մեծ մասը միտումնավոր օգտագործում է սա: Apple Fitness-ին անհրաժեշտ է, որ մեկ ժամվա ընթացքում կանգնեք մեկ րոպե՝ ձեր Stand-ի նպատակին հասնելու համար: Duolingo-ին անհրաժեշտ է ընդամենը մեկ ավարտված դաս: Այս առաջադրանքները այդքան մեծ ջանք չեն պահանջում։ Արգելքն այնքան ցածր է, որ նույնիսկ ձեր ամենավատ օրերին կարող եք դա անել: Բայց շարունակական շարքի համատեղ ջանքերն այն է, որտեղ սկիզբ է առնում այդ շարքը կորցնելու գաղափարը: PromptՍա այն է, ինչ լրացնում է հավասարումը: Մարդիկ բնականաբար մոռացկոտ են, ուստի, այո, կարողությունը կարող է մեզ 90%-ով հասցնել այնտեղ: Բայց հուշումը հիշեցնում է մեզ գործել: Շերտերը ձևավորվելով կայուն են, ուստի օգտատերերին անհրաժեշտ է անընդհատ հիշեցնել, որ գործեն: Տեսնելու համար, թե որքան հզոր կարող է լինել հուշումը, Duolingo-ն A/B թեստ արեց՝ տեսնելու, թե արդյոք հավելվածի պատկերակի վրա մի փոքր կարմիր կրծքանշանն ավելացնում է հետևողական օգտագործումը: Այն առաջացրել է ամենօրյա ակտիվ օգտատերերի 6% աճ: Պարզապես կարմիր կրծքանշան: Մոդելի սահմանափակումներ Այս ամենն ասված է, որ Ֆոգգի մոդելի սահմանափակում կա, որի համաձայն քննադատները և ժամանակակից հետազոտությունները նկատել են, որ դիզայնը, որը շատ է հենվում հուշումների վրա, ինչպիսիք են ագրեսիվ ծանուցումները, վտանգում է մտավոր հոգնածություն առաջացնել: Անընդհատ ծանուցումները և արտաժամյա աշխատանքը կարող են օգտատերերի խափանումների պատճառ դառնալ: Այսպիսով, զգույշ եղեք դրա համար: Զեյգարնիկի էֆեկտը Ի՞նչ եք զգում, երբ կիսատ եք թողնում նախագծի առաջադրանքը: Դա նյարդայնացնում է շատերին, քանի որ անավարտ առաջադրանքները ավելի շատ մտավոր տեղ են զբաղեցնում, քան այն, ինչ մենք ավարտում ենք: Երբ ինչ-որ բան արվում և անհետանում է, մենք հակված ենք մոռանալ այն: Երբ ինչ-որ բան մնում է անկատար, այն հակված է ծանրաբեռնել մեր մտքերը: Հենց սա է պատճառը, որ թվային արտադրանքներն օգտագործում են արհեստական ​​առաջընթացի ցուցիչներ, ինչպես, օրինակ, Upwork-ի պրոֆիլի լրացման գիծը, որպեսզի օգտագործողին իմանա, որ իրենց պրոֆիլը միայն «60%-ով» է: Այն մղում է օգտագործողին ավարտելու այն, ինչ սկսել է:

Դիտարկենք մեկ այլ օրինակ. Դուք ունեք հինգ առաջադրանք անելիքների ցանկի հավելվածում, և օրվա վերջում դուք ստուգում եք դրանցից միայն չորսը որպես կատարված: Մեզանից շատերը իրենց չկատարված կզգան այդ մեկ անավարտ գործի պատճառով: Դա հենց այնտեղ է Զեյգարնիկի էֆեկտը: Զեյգարնիկի էֆեկտը ցուցադրել է հոգեբան Բլումա Զեյգարնիկը, ով նկարագրել է, որ մենք հակված ենք թերի առաջադրանքները ակտիվ պահել մեր հիշողության մեջ ավելի երկար, քան ավարտված առաջադրանքները: Շերտավոր նախշը, բնականաբար, ներգործում է UX ձևավորման մեջ: Ենթադրենք, որ դուք սովորելու 63-րդ օրն եք: Այդ պահին դուք գտնվում եք անավարտ գործերի շարունակական օրինաչափության մեջ: Ձեր ուղեղը հազվադեպ է մոռանում դրա մասին, քանի որ այն նստած է ձեր մտքի հետևում: Այս պահին ձեր ուղեղը դառնում է ձեզ ծանուցումներ ուղարկողը: Երբ դուք միավորում եք այս հոգեբանական ուժերը, սկսում եք իսկապես հասկանալ, թե ինչու շերտերը պարզապես հավելվածի սովորական հատկանիշ չեն. նրանք ի վիճակի են վերափոխել մարդու վարքը: Բայց ինչ-որ տեղ գծի երկայնքով, ես չեմ կարող հստակ ասել, թե երբ, քանի որ դա տարբեր է բոլորի համար, ամեն ինչ հասնում է մի կետի, որտեղ մի շարանը «զվարճանքից» տեղափոխվում է մի բան, որը զգում ես, որ չես կարող քեզ թույլ տալ կորցնել: Չե՞ք ուզում, որ 58 օրվա ջանք թափվի, չէ՞: Հենց դա է արդյունավետ դարձնում շղթայի համակարգը: Եթե ​​ճիշտ արվի, շերտերն օգնում են օգտատերերին ձևավորել ապշեցուցիչ սովորություններ, որոնք հասնում են նպատակին: Դա կարող է լինել ամեն օր կարդալը կամ մարզասրահ հաճախելը: Այս կրկնվող գործողությունները (երբեմն փոքր) բարդանում են ժամանակի ընթացքում և ակնհայտ են դառնում մեր առօրյա կյանքում: Բայց յուրաքանչյուր մետաղադրամի երկու կողմ կա: Բարակ գիծը սովորության և պարտադրանքի միջև Եթե հետևել եք նրան, արդեն կարող եք ասել, որ գծային համակարգերի մութ կողմը կա: Սովորությունների ձևավորումը կրկնվող նպատակին հետևողականության մասին է: Այնուամենայնիվ, հարկադրանքը նպատակի վրա աշխատելու հետևողականությունն է, որն այլևս անհրաժեշտ չէ, բայց պահպանվում է վախից կամ ճնշումից: Այն ածելիի պես բարակ գիծ է։ Դուք խոզանակում եք ձեր ատամները ամեն առավոտ առանց մտածելու. այն ավտոմատ է և բնազդային՝ լավ շունչ ունենալու հստակ նպատակով: Դա լավ սովորություն ձևավորող շղթա է: Էթիկական շերտերի համակարգը օգտվողներին շնչելու հնարավորություն է տալիս: Եթե ​​ինչ-ինչ պատճառներով չեք մաքրում առավոտյան, կարող եք խոզանակել կեսօրին: Անկատարությունը թույլատրվում է առանց երկար ջանքերը կորցնելու վախի։ Հարկադրանքը գնում է հակառակ ճանապարհով, որտեղ մի շարանը ձեզ ստիպում է անհանգստանալ, մեղավոր եք զգում կամ նույնիսկ ուժասպառ, և երբեմն թվում է, թե ոչինչ չեք հասել, չնայած ձեր բոլոր գործողություններին:աշխատանք։ Դուք գործում եք ոչ թե այն պատճառով, որ ցանկանում եք, այլ որովհետև ենթագիտակցորեն սարսափում եք տեսնելով, որ ձեր առաջընթացը զրոյացված է: Ինչ-որ մեկը նույնիսկ դա հիանալի նկարագրեց. «Ես զգում էի, որ խաբում եմ, բայց ուղղակի հոգ չէի տանում, ես ոչինչ եմ առանց իմ շղթայի»: Սա ցույց է տալիս, թե որ ծայրահեղ գծերը կարող են ունենալ անհատի վրա: Այնքանով, որքանով օգտատերերը սկսում են կապել իրենց ինքնագնահատականը կամայական չափման, այլ ոչ թե սկզբնական նպատակի կամ պատճառի հետ, որով նրանք սկսել են շարանը: Շերտը դառնում է այն, ինչ նրանք են, ոչ թե միայն այն, ինչ անում են: Լավ մշակված էթիկական շերտերի համակարգը պետք է օգտագործողի համար խրախուսանք լինի, այլ ոչ թե ճնշում կամ պարտավորություն: Սա վերաբերում է ներքին և արտաքին մոտիվացիայի հավասարակշռությանը: Արտաքին մոտիվացիան (արտաքին պարգևներ, պատժից խուսափելը) կարող է օգտատերերին սկսել, բայց ներքին մոտիվացիան (առաջադրանքը կատարելը անձնական նպատակի համար, ինչպիսին է իսպաներեն սովորելը, քանի որ դուք իսկապես ցանկանում եք շփվել սիրելիի հետ) ավելի ուժեղ է երկարաժամկետ ներգրավվածության համար: Լավ համակարգը պետք է ձգվի դեպի ներքին մոտիվացիա՝ արտաքին տարրերի զգույշ օգտագործմամբ, այսինքն՝ հիշեցնի օգտատերերին, թե որքան հեռու են նրանք հասել, այլ ոչ թե սպառնա նրանց, թե ինչով կարող են կորցնել: Կրկին, դա նուրբ գիծ է: Շերտային համակարգ նախագծելիս պարզ փորձություն է իրականում որոշ ժամանակ հատկացնել և մտածել, թե արդյոք ձեր արտադրանքը գումար է վաստակում ձեր արտադրանքի ստեղծած անհանգստության լուծումները վաճառելով: Եթե ​​այո, ապա մեծ հավանականություն կա, որ դուք շահագործում եք օգտվողներին: Այսպիսով, հաջորդ հարցը դառնում է. Եթե ես ընտրեմ օգտագործել streak-ը, ինչպե՞ս կարող եմ այն ​​ձևավորել այնպես, որ իսկապես օգնի օգտվողներին հասնել իրենց նպատակներին: Good Streak System Design-ի UX-ը Կարծում եմ, որ սա այն վայրն է, որտեղ նախագծերի մեծ մասը կա՛մ ամրացնում է արդյունավետ շերտային համակարգը, կա՛մ ամբողջովին խառնում է այն: Եկեք անցնենք մի քանի UX սկզբունքների վրա, որոնք վերաբերում են լավ շերտերի ձևավորմանը: Պահպանեք այն առանց ջանքերի Դուք հավանաբար նախկինում լսել եք սա, գուցե Ատոմային սովորությունների նման գրքերից, բայց հարկ է նշել, որ սովորությունների ձևավորման ամենահեշտ ձևերից մեկը գործողությունը փոքր և հեշտ դարձնելն է: Սա նման է ունակության գործոնին, որը մենք քննարկել ենք Ֆոգգի վարքագծի մոդելից: Ցանկացած շղթայի նախագծման առաջին կանոնը պետք է լինի անհրաժեշտ գործողությունները հնարավորինս փոքրացնելը, մինչդեռ դեռևս առաջընթաց է գրանցվել: Եթե ​​ամենօրյա գործողությունը ավարտելու համար կամքի ուժ է պահանջում, ապա այդ գործողությունը չի անցնի հինգ օրվա ընթացքում: Ինչո՞ւ։ Դուք չեք կարող մոտիվացված լինել հինգ օր անընդմեջ: Օրինակ. Եթե դուք գործարկում եք մեդիտացիայի հավելված, ապա ձեզ հարկավոր չէ ստիպել օգտատերերին 20 րոպեանոց սեսիա անցնել միայն շարանը պահպանելու համար: Փոխարենը փորձեք մեկ րոպե, գուցե նույնիսկ երեսուն վայրկյանի փոքր մի բան: Ինչպես ասում են, ջրի փոքրիկ կաթիլները ստեղծում են հզոր օվկիանոս): Փոքր ջանքերը ժամանակի ընթացքում վերածվում են մեծ ձեռքբերումների: Դա պետք է լինի նպատակը՝ հեռացնել շփումը, հատկապես, երբ պահը կարող է դժվար լինել: Երբ օգտատերերը սթրեսի մեջ են կամ ծանրաբեռնված, տեղեկացրեք նրանց, որ պարզապես ներկայանալը, նույնիսկ մի քանի վայրկյանով, համարվում է ջանք: Տրամադրել հստակ տեսողական արձագանք Մարդիկ իրենց բնույթով տեսողական են: Շատ անգամ մենք պետք է ինչ-որ բան տեսնենք հավատալու համար. անհրաժեշտություն կա պատկերացնել իրերը՝ դրանք ավելի լավ հասկանալու և իրերը ընկալելու համար: Սա է պատճառը, որ շերտերի օրինաչափությունները հաճախ օգտագործում են տեսողական տարրեր, ինչպիսիք են գրաֆիկները, նշագրերը, առաջընթացի օղակները և ցանցերը՝ ջանքերը պատկերացնելու համար: Նայեք GitHub-ի ներդրման գրաֆիկին: Դա հետևողականության պարզ պատկերացում է: Այնուամենայնիվ, մշակողները շնչում են այն, ինչպես թթվածինը:

Բանալին այն է, որ շերտային համակարգը վերացական չզգա: Այն պետք է իրական և վաստակած զգա: Օրինակ՝ Duolingo-ի և Apple-ի ֆիթնես-ակտիվության օղակները օգտագործում են մաքուր անիմացիոն ձևավորումներ շարանը ավարտելուց հետո, իսկ GitHub-ը ցույց է տալիս ժամանակի ընթացքում օգտագործողի հետևողականության պատմական տվյալները:

Օգտագործեք լավ ժամանակացույց Ես ավելի վաղ նշել էի, որ մարդիկ, ընդհանուր առմամբ, իրենց բնույթով մոռացկոտ են, և որ հուշումները կարող են օգնել պահպանել առաջընթացը: Առանց հուշումների, նոր օգտվողների մեծ մասը մոռանում է շարունակել: Կյանքը կարող է զբաղված լինել, մոտիվացիան անհետանում է, և ինչ-որ բան տեղի է ունենում: Նույնիսկ երկարաժամկետ օգտվողները օգտվում են հուշումներից, թեև շատ դեպքերում նրանք արդեն արգելափակված են սովորության օղակում: Այնուամենայնիվ, նույնիսկ ամենանվիրված մարդը կարող է պատահաբար բաց թողնել մեկ օր։ Ձեր շերտավոր համակարգը, անկասկած, հիշեցումների կարիք ունի: Ամենաշատ օգտագործվող արագ հիշեցումները push ծանուցումներն են: Ժամանակն իսկապես կարևոր է push ծանուցումների հետ աշխատելիս: Հավելվածի տեսակը նույնպես կարևոր է: Առավոտյան ժամը 9-ին ծանուցում ուղարկելը «Դուք այսօր չեք մարզվել» պարզապես տարօրինակ է ուսումնական հավելվածի համար, քանի որ շատերն անելիքներ ունեն մեկ օրվա ընթացքում, նախքան նրանք նույնիսկ կմտածեն դասը ավարտելու մասին: Այնուամենայնիվ, եթե մենք խոսում ենք ֆիթնես հավելվածի մասին, դախելամիտ է և, հնարավոր է, նույնիսկ ակնկալվում է հիշեցնել ավելի վաղ օրվա ընթացքում: Push ծանուցումները զգալիորեն տարբերվում են ըստ հավելվածների կատեգորիայի: Ֆիթնես հավելվածները, օրինակ, տեսնում են ավելի մեծ ներգրավվածություն վաղ առավոտյան ծանուցումների միջոցով (7-8 AM), մինչդեռ արտադրողականության հավելվածները կարող են ավելի լավ գործել կեսօրվա սկզբին: Հիմնական բանն այն է, որ A/B-ն փորձարկի ձեր հավելվածի ժամանակը՝ հիմնվելով ձեր օգտատերերի վարքագծի վրա, այլ ոչ թե ենթադրելու, որ ամեն ինչ բոլորին հարմար է: Այն, ինչ աշխատում է մեդիտացիայի հավելվածի համար, կարող է չաշխատել կոդավորման հետագծման համար: Մյուս հրատապ մեթոդներն են կարմիր կետերը հավելվածի պատկերակի վրա և նույնիսկ հավելվածի վիդջեթները: Ուսումնասիրությունները տարբեր են, բայց միջին հաշվով մարդն իր սարքը բացում է օրական 50-150 անգամ (PDF): Եթե ​​օգտատերը տեսնում է կարմիր կետ հավելվածի կամ վիջեթի վրա, որը ցույց է տալիս ընթացիկ շերտը ամեն անգամ, երբ նրանք բացում են հեռախոսը, դա մեծացնում է նվիրվածությունը: Պարզապես մի չափազանցեք այն; հուշումը պետք է ծառայի որպես հիշեցում, այլ ոչ թե բարկություն: Նշեք Milestones Շերտի համակարգը պետք է փորձի նշել կարևոր իրադարձություններ՝ զգացմունքները բորբոքելու համար, հատկապես այն օգտատերերի համար, ովքեր խորը շղթայի մեջ են: Երբ օգտատերը հարվածում է Օր 7, Օր 30, Օր 50, Օր 100, Օր 365, դուք պետք է մեծ գործարք կատարեք դրանից: Ճանաչեք ձեռքբերումները, հատկապես երկար ժամանակ օգտագործողների համար:

Ինչպես տեսանք ավելի վաղ, Duolingo-ն հասկացավ դա և իրականացրեց անիմացիոն գրաֆիկա, որը նշում է կարևոր իրադարձությունները կոնֆետիով: Որոշ հարթակներ նույնիսկ տալիս են զգալի բոնուսային պարգևներ, որոնք վավերացնում են օգտատերերի ջանքերը: Եվ դա կարող է օգտակար լինել հավելվածների համար, այնպես որ օգտատերերը հակված են հրապարակայնորեն կիսվել իրենց նշաձողերով սոցիալական լրատվամիջոցներում: Մեկ այլ առավելություն այն ակնկալիքն է, որը գալիս է նախքան կարևոր կետերի հասնելը: Դա պարզապես շարանը անվերջ պահելը չէ. օգտատերերը անհամբեր սպասելու բան ունեն: Օգտագործեք Grace մեխանիզմները Կյանքն անկանխատեսելի է. Մարդիկ շեղվում են։ Ցանկացած լավ շերտային համակարգ պետք է սպասի անկատարության: Շերտի համակարգի ամենամեծ հոգեբանական սպառնալիքներից մեկը միայն մեկ բաց թողնված օրից հետո կոշտ զրոյականացումն է: «Էթիկական» շերտային համակարգը պետք է օգտագործողին որոշակի թուլացում ապահովի: Ենթադրենք, դուք ունեք 90-օրյա շախմատի ուսուցման շարան: Դուք հետևողական եք եղել երեք լավ ամիս, և մի օր ձեր հեռախոսը մահանում է ճանապարհորդելիս, և հենց այդպես, 90-ը դառնում է 0, ամեն ինչ, այդ ամբողջ ջանքերը ջնջվում են, և առաջընթացը անհետանում է: Օգտագործողը կարող է ամբողջովին ավերված լինել: Այն զրոյից վերակառուցելու միտքն այնքան բարոյալքող է, որ ջանքերը չարժեն: Վատագույն դեպքում օգտատերը կարող է լքել հավելվածը ձախողված զգալուց հետո: Մտածեք «շնորհք» մեխանիզմ ավելացնելու ձեր շերտային համակարգին.

Streak FreezeԹույլ տվեք օգտվողներին դիտավորյալ բաց թողնել մեկ օր առանց տուգանքների: Լրացուցիչ ժամանակ Թույլատրել մի քանի ժամ (2–3) անցնել սովորական վերջնաժամկետը, նախքան վերակայումը սկսելը: Քայքայվող մոդելներ Կոշտ զրոյացման փոխարեն շարանը փոքր-ինչ նվազում է, օրինակ՝ մեկ բաց թողնված օրվա համար շերտից հանվում է 10 օր:

Օգտագործեք խրախուսող տոն Եկեք համեմատենք երկու հաղորդագրություն, որոնք ցուցադրվում են օգտատերերին, երբ շարանը ընդհատվում է.

«Դուք կորցրել եք ձեր 42-օրյա շարքը: Սկսեք նորից»: «Դուք ներկայացել եք 42 օր անընդմեջ: Դա անհավանական առաջընթաց է: Ուզու՞մ եք նորից փորձել»:

Երկուսն էլ փոխանցում են նույն տեղեկատվությունը, բայց զգացմունքային ազդեցությունը տարբեր է: Առաջին հաղորդագրությունը, ամենայն հավանականությամբ, կստիպի օգտվողին բարոյալքված զգալ և ստիպել նրան հեռանալ: Երկրորդ հաղորդագրությունը նշում է այն, ինչ արդեն ձեռք է բերվել և նրբորեն խրախուսում է օգտագործողին նորից փորձել: Շերտային համակարգերի նախագծման մարտահրավերներ Նախքան շերտավոր համակարգի կառուցման տեխնիկական առանձնահատկություններին անցնելը, դուք պետք է տեղյակ լինեք այն մարտահրավերներին, որոնց կարող եք հանդիպել: Ամեն ինչ կարող է բարդանալ, ինչպես դուք կարող եք ակնկալել: Ժամային գոտիների կառավարում Կա պատճառ, թե ինչու ժամանակի և ամսաթվի հետ աշխատելը ամենադժվար հասկացություններից է, որով զբաղվում են մշակողները: Կան ձևավորում, միջազգայնացում և շատ ավելին, որոնք պետք է հաշվի առնել: Թույլ տվեք հարցնել ձեզ սա. Ի՞նչն է համարվում օր: Մենք գիտենք, որ աշխարհն աշխատում է տարբեր ժամային գոտիներում, և կարծես դա բավարար չէ, որոշ տարածաշրջաններում գործում է ամառային ժամանակ (DST), որը տեղի է ունենում տարին երկու անգամ: Որտեղի՞ց եք նույնիսկ սկսում զբաղվել այս ծայրամասային գործերով: Ի՞նչն է համարվում վաղվա «մեկնարկը»: Որոշ մշակողներ փորձում են խուսափել դրանից՝ օգտագործելով մեկ կենտրոնական ժամային գոտի, օրինակ՝ UTC: Որոշ օգտատերերի համար դա ճիշտ արդյունքներ կտա, բայց ոմանց համար այն կարող է անջատվել մեկ ժամով, երկու ժամով կամ ավելի: Այս անհամապատասխանությունը փչացնում է օգտագործողի փորձը: Օգտատերերին ավելի քիչ է հետաքրքրում, թե ինչպես եք տնօրինում կուլիսների հետևում անցած ժամանակը. Ընդամենը նրանք ակնկալում են, որ եթե 23:40-ին կատարեն շղթայական գործողություն, ապա դա գրանցվի հենց այդ ժամին՝ իրենց համատեքստում։ Դուք պետք է սահմանեք «մեկ օր»՝ ելնելով օգտագործողի տեղական ժամային գոտուց, ոչ թե սերվերի ժամանակից: Իհարկե, դուք կարող եք հեշտությամբ վերցնելերթուղի և վերակայել գլոբալ շերտերը բոլոր օգտատերերի համար կեսգիշերին UTC-ին, բայց դուք մեծապես անարդարություն եք ստեղծում: Կալիֆոռնիայում ինչ-որ մեկը միշտ ունի ութ լրացուցիչ ժամ իր առաջադրանքը կատարելու համար, քան Լոնդոնում ապրող մեկը: Սա անարդար դիզայնի թերություն է, որը պատժում է որոշ օգտվողների՝ իրենց գտնվելու վայրի պատճառով: Իսկ եթե այդ մարդը Լոնդոնում միայն այցելում է, կատարում առաջադրանքը, հետո վերադառնում մեկ այլ ժամային գոտի: Այս ամենի արդյունավետ լուծումներից մեկն այն է, որ օգտատերերը բացահայտորեն սահմանեն իրենց ժամային գոտին միացման ժամանակ (ցանկալի է առաջին իսկորոշումից հետո): Լավ գաղափար է ներառել նուրբ նշում, որ ժամային գոտու մասին տեղեկատվություն տրամադրելը օգտագործվում է միայն հավելվածի համար՝ առաջընթացը ճշգրիտ հետևելու համար, այլ ոչ թե որպես անձնապես ճանաչելի տվյալներ: Եվ ևս մեկ լավ գաղափար է դա դարձնել փոփոխական կարգավորում: Ես առաջարկում եմ, որ որևէ մեկը խուսափի հավելվածում ժամանակային գոտու տրամաբանությունից անմիջապես օգտվելուց: Օգտագործեք փորձված և ճշմարիտ ամսաթվերի գրադարաններ, ինչպիսիք են Moment.js-ը կամ pytz-ը (Python) և այլն: Կարիք չկա նորից հորինել անիվը նման բարդ բանի համար: Missed Days And Edge Cases Մեկ այլ մարտահրավեր, որի մասին դուք պետք է անհանգստանաք, անվերահսկելի եզրային դեպքերն են, ինչպիսիք են օգտվողների քունը, սերվերի խափանումը, հետաձգումը, ցանցի խափանումները և այլն: Օգտագործելով շնորհի մեխանիզմների գաղափարը, ինչպես նախկինում քննարկեցինք, կարող է օգնել: Երկու ժամ տևողությամբ շնորհի պատուհանը կարող է օգնել և՛ օգտագործողին, և՛ մշակողին, այն առումով, որ օգտվողները խստորեն չեն պատժվում անվերահսկելի կյանքի հանգամանքների համար: Ծրագրավորողների համար Grace windows-ը օգտակար է այն անվերահսկելի պահերին, երբ սերվերն անջատվում է գիշերվա կեսին: Ամենից առաջ, երբեք մի վստահեք հաճախորդին: Միշտ հաստատեք սերվերի կողմից: Սերվերը պետք է լինի ճշմարտության միակ աղբյուրը: Խաբեության կանխարգելում Կրկին, ես չեմ կարող բավականաչափ շեշտել սա. Համոզվեք, որ հաստատեք ամեն ինչ սերվերի կողմից: Օգտագործողները մարդիկ են, և մարդիկ կարող են խաբել, եթե հնարավորություն տրվի: Դա անխուսափելի է։ Դուք կարող եք փորձել.

Բոլոր գործողությունների պահպանում UTC ժամանակի դրոշմակնիքներով: Հաճախորդը կարող է ուղարկել իր տեղական ժամանակը, բայց սերվերը կարող է անմիջապես փոխարկել այն UTC-ի և վավերացնել սերվերի ժամանակի համեմատ: Այդ կերպ, եթե հաճախորդի ժամանակացույցը կասկածելիորեն հեռու է, համակարգը կարող է մերժել այն որպես սխալ, և UI-ն կարող է համապատասխանաբար արձագանքել: Օգտագործելով իրադարձությունների վրա հիմնված հետևում: Այլ կերպ ասած, պահեք յուրաքանչյուր գործողության գրառումը մետատվյալներով, ներառյալ այնպիսի տեղեկություններ, ինչպիսիք են օգտվողի ID-ն, կատարված գործողության տեսակը և ժամանակի դրոշմակնիքն ու ժամային գոտին: Սա օգնում է վավերացմանը:

Շերտավոր համակարգի շարժիչի կառուցում Սա կոդերի ուսուցում չէ, ուստի ես կխուսափեմ ձեզ վրա կոդի մի խումբ թափելուց: Ես կպահեմ սա գործնականում և նկարագրեմ, թե ինչպես են իրերը սովորաբար գործում շերտային համակարգի շարժիչով այնքանով, որքանով ճարտարապետությունը, հոսքը և հուսալիությունը: Հիմնական ճարտարապետություն Ինչպես ես մի քանի անգամ ասել եմ, սերվերը դարձրեք ճշմարտության միակ աղբյուրը շերտերի տվյալների համար: Ճարտարապետությունը կարող է նման բան լինել սերվերի վրա.

Պահպանեք յուրաքանչյուր օգտագործողի տվյալները տվյալների բազայում: Պահպանեք ընթացիկ շերտի պահեստը (կանխադրված որպես 0) որպես ամբողջ թիվ: Պահպանեք ժամային գոտու նախապատվությունը, այսինքն՝ IANA Ժամային գոտու տողը (կամ անուղղակիորեն տեղական ժամանակի դրոշմից կամ բացահայտորեն՝ խնդրելով օգտվողին ընտրել իր ժամային գոտին): Օրինակ՝ «Ամերիկա/Նյու_Յորք»։ Կառավարեք ողջ տրամաբանությունը՝ որոշելու համար, թե արդյոք շարանը շարունակվում է, թե ընդհատվում է՝ ժամային գոտու ստուգմամբ, որը հարաբերական է օգտատիրոջ տեղական ժամային գոտուն:

Միևնույն ժամանակ, հաճախորդի կողմից.

Ցուցադրել ընթացիկ շերտը, որը սովորաբար բերվում է սերվերից: Ուղարկեք մետատվյալների տեսքով կատարված գործողությունը սերվերին՝ հաստատելու համար, թե արդյոք օգտագործողը իրականում կատարել է որակավորման շերտի գործողություն: Տրամադրել տեսողական արձագանք՝ հիմնված սերվերի պատասխանների վրա:

Այսպիսով, մի խոսքով, ուղեղը սերվերի վրա է, իսկ հաճախորդը ցուցադրման նպատակներով և իրադարձություններ ներկայացնելու համար: Սա ձեզ փրկում է բազմաթիվ ձախողումներից և եզրային դեպքերից, ինչպես նաև հեշտացնում է թարմացումներն ու ուղղումները: Տրամաբանական հոսք Եկեք պատկերացնենք, թե ինչպես կգործի նվազագույն արդյունավետ շերտային համակարգի շարժիչը, երբ օգտատերը կատարի գործողությունը.

Օգտագործողը ավարտում է որակավորման փուլի գործողությունը: Հաճախորդը իրադարձություն է ուղարկում սերվերին որպես մետատվյալ: Սա կարող է լինել «X օգտվողը ավարտեց գործողությունը Y ժամը Ժամկետանիշի Z-ում»: Սերվերը ստանում է այս իրադարձությունը և կատարում է հիմնական վավերացում: Արդյո՞ք սա իրական օգտատեր է: Արդյո՞ք դրանք վավերացված են: Արդյո՞ք գործողությունը վավեր է: Արդյո՞ք ժամային գոտին համահունչ է: Եթե ​​դա անցնի, սերվերը վերականգնում է օգտատիրոջ շերտի տվյալները տվյալների բազայից: Այնուհետև ստացված գործողության ժամանակացույցը փոխարկեք օգտագործողի տեղական ժամային գոտու: Թող սերվերը համեմատի օրացուցային ամսաթվերը (ոչ թե ժամային դրոշմանիշները) օգտագործողի տեղական ժամային գոտում. Եթե նույն օրն է, ապա ակցիան ավելորդ է և փոփոխություն չկաշերտագիծ. Եթե դա հաջորդ օրն է, ապա շարանը երկարում է և ավելանում 1-ով: Եթե մեկ օրից ավելի ընդմիջում կա, ապա շարանը ընդհատվում է: Այնուամենայնիվ, սա այն վայրն է, որտեղ դուք կարող եք կիրառել շնորհի մեխանիկա: Եթե շնորհի մեխանիզմը բաց է թողնվել, ապա վերակայեք շերտը 1-ի:

Եթե որոշեք պահպանել պատմական տվյալները՝ կարևոր ձեռքբերումների համար, ապա թարմացրեք փոփոխականները, ինչպիսիք են «ամենաերկար շարանը» կամ «ընդհանուր ակտիվ օրերը»: Այնուհետև սերվերը թարմացնում է տվյալների բազան և պատասխանում հաճախորդին: Նման մի բան.

{ "current_streak": 48, «ամենաերկար_շերտ»՝ 50, «ընդհանուր_ակտիվ_օրեր»՝ 120, «streak_extended»: ճշմարիտ, }

Որպես լրացուցիչ միջոց, սերվերը պետք է կամ նորից փորձի, կամ մերժի և տեղեկացնի հաճախորդին, երբ գործընթացի ընթացքում որևէ բան ձախողվի: Շենք դիմացկունության համար Ինչպես նշվեց նախկինում, օգտատերերը, որոնք կորցնում են շարքը սխալների կամ սերվերի խափանումների պատճառով, սարսափելի UX է, և օգտատերերը չեն ակնկալում, որ անկում կկատարեն դրա համար: Այսպիսով, ձեր շերտային համակարգը պետք է երաշխիքներ ունենա այդ սցենարների համար: Եթե ​​սերվերը խափանված է սպասարկման պատճառով (կամ որևէ այլ պատճառով), մտածեք, որ թույլատրեք լրացուցիչ ժամերի ժամանակավոր պատուհան՝ այն շտկելու համար, որպեսզի գործողությունները կարողանան ուշ ուղարկել և դեռևս հաշվվել: Կարող եք նաև ընտրել՝ ծանուցել օգտատերերին, հատկապես, եթե իրավիճակը ի վիճակի է ազդել շարունակվող շղթայի վրա: Նշում. Ստեղծեք ադմինիստրատորի հետևի դուռ, որտեղ տվյալները կարող են ձեռքով վերականգնվել: Սխալներն անխուսափելի են, և որոշ օգտատերեր կկանչեն ձեր հավելվածը կամ կապ հաստատեն՝ աջակցելու, որ իրենց շարանը ընդհատվել է այն պատճառով, որ իրենք չեն կարողացել վերահսկել: Դուք պետք է կարողանաք ձեռքով վերականգնել շերտերը, եթե հետաքննությունից հետո օգտագործողը իրավացի է: Եզրակացություն Մի բան մնում է պարզ. շերտերն իսկապես հզոր են այն պատճառով, թե ինչպես է աշխատում մարդու հոգեբանությունը հիմնարար մակարդակում: Լավագույն շերտային համակարգն այն է, որի մասին օգտատերերը գիտակցաբար չեն մտածում: Այն դարձել է անմիջական արդյունքների կամ տեսանելի առաջընթացի ռեժիմ, ինչպես ատամները խոզանակելը, որը սովորական սովորություն է դառնում: Եվ ես պարզապես կասեմ դա. ոչ բոլոր ապրանքներին անհրաժեշտ է շերտավոր համակարգ: Արդյո՞ք դուք իսկապես պետք է հետևողականություն պարտադրեք միայն այն պատճառով, որ ցանկանում եք ամենօրյա ակտիվ օգտվողներ: Պատասխանը կարող է շատ լավ լինել «ոչ»:

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