మీరు స్ట్రీక్ల గురించి విన్నారని లేదా దానితో యాప్ని ఉపయోగించారని నేను ఖచ్చితంగా అనుకుంటున్నాను. కానీ స్ట్రీక్స్ ఎందుకు చాలా ప్రజాదరణ మరియు శక్తివంతమైనవి అని ఎప్పుడైనా ఆలోచిస్తున్నారా? సరే, యాప్లు మీ దృష్టిని వీలైనంత ఎక్కువగా కోరుకునే స్పష్టమైనది ఒకటి ఉంది, కానీ అది పక్కన పెడితే, ప్రముఖ లెర్నింగ్ యాప్ డ్యుయోలింగో స్ట్రీక్లను ప్రదర్శించడానికి iOS విడ్జెట్లను ప్రవేశపెట్టినప్పుడు, వినియోగదారు నిబద్ధత 60% పెరిగిందని మీకు తెలుసా. అరవై శాతం అనేది ప్రవర్తనలో భారీ మార్పు మరియు ఎంగేజ్మెంట్ మరియు డ్రైవ్ వినియోగాన్ని పెంచడానికి "స్ట్రీక్" నమూనాలను ఎలా ఉపయోగించవచ్చో చూపిస్తుంది. అత్యంత ప్రాథమికంగా, స్ట్రీక్ అనేది వినియోగదారు నిర్దిష్ట కార్యాచరణను పూర్తి చేసే వరుస రోజుల సంఖ్య. కొంతమంది దీనిని "గేమిఫైడ్" అలవాటుగా లేదా స్థిరమైన వినియోగాన్ని ప్రోత్సహించడానికి రూపొందించిన మెట్రిక్గా కూడా నిర్వచించారు. కానీ స్ట్రీక్లు యాప్లో మెట్రిక్ లేదా రికార్డ్ని మించి ఉంటాయి; ఇది దాని కంటే మానసికమైనది. మానవ ప్రవృత్తులు సరైన కారకాలతో ప్రభావితం చేయడం సులభం. ఈ మూడు కారకాలను చూడండి: పురోగతి, అహంకారం మరియు తప్పిపోతుందనే భయం (సాధారణంగా FOMO అని పిలుస్తారు). వీటన్నింటికీ ఉమ్మడిగా ఏమి ఉంది? ప్రయత్నం. మీరు దేనికోసం ఎంత ఎక్కువ కృషి చేస్తే, అది మీ గుర్తింపును మరింతగా రూపొందిస్తుంది మరియు ప్రవర్తనా మనస్తత్వశాస్త్రం యొక్క ప్రపంచంలోకి గీతలు ఎలా ప్రవేశిస్తాయి. ఇప్పుడు, గొప్ప శక్తితో గొప్ప బాధ్యత వస్తుంది మరియు దాని కారణంగా, గీతలకు చీకటి కోణం ఉంది. ఈ కథనంలో, మేము సమర్థవంతమైన స్ట్రీక్ సిస్టమ్ను నిర్మించడం వెనుక ఉన్న మనస్తత్వశాస్త్రం, UX మరియు డిజైన్ సూత్రాలకు వెళతాము. మేము (1) స్ట్రీక్ యాక్టివిటీకి మన మెదళ్ళు దాదాపు సహజంగా ఎందుకు ప్రతిస్పందిస్తాయో, (2) వినియోగదారులకు నిజంగా సహాయపడే మార్గాల్లో స్ట్రీక్లను ఎలా డిజైన్ చేయాలి మరియు (3) స్ట్రీక్ ప్యాటర్న్ను రూపొందించడంలో పాల్గొన్న సాంకేతిక పనిని పరిశీలిస్తాము. ది సైకాలజీ బిహైండ్ స్ట్రీక్స్ ప్రభావవంతమైన స్ట్రీక్ సిస్టమ్ను రూపొందించడానికి మరియు నిర్మించడానికి, అది మన మెదడు ఎలా వైర్ చేయబడిందో దానితో ఎలా సమలేఖనం చేస్తుందో మనం అర్థం చేసుకోవాలి. ఇలా, మన స్ట్రీక్లను రక్షించుకోవడానికి మనం చాలా తీవ్రమైన అంకితభావాన్ని అనుభవించేంత వరకు ఇది ఎంత ప్రభావవంతంగా ఉంటుంది? మూడు ఆసక్తికరమైన, చక్కగా నమోదు చేయబడిన మనస్తత్వశాస్త్ర సూత్రాలు ఉన్నాయి, ఇవి స్ట్రీక్లను చాలా శక్తివంతంగా మరియు వ్యసనపరుడైనవిగా చేస్తాయి. నష్టం విరక్తి ఇది బహుశా స్ట్రీక్స్ వెనుక ఉన్న బలమైన శక్తి. నేను ఇలా చెప్తున్నాను ఎందుకంటే చాలా సార్లు, మీరు దీన్ని జీవితంలో దాదాపుగా నివారించలేరు. ఈ విధంగా ఆలోచించండి: ఒక స్నేహితుడు మీకు $100 ఇస్తే, మీరు సంతోషంగా ఉంటారు. కానీ మీరు మీ వాలెట్ నుండి $100 పోగొట్టుకుంటే, అది మరింత బాధిస్తుంది. ఆ పరిస్థితుల యొక్క భావోద్వేగ బరువు సమానంగా ఉండదు. లాభం కంటే నష్టమే ఎక్కువ బాధిస్తుంది. దాన్ని మరింత ముందుకు తీసుకెళ్లి, నేను మీకు $100 ఇస్తాను మరియు జూదం ఆడమని అడుగుతాను. మీరు మరో $100 గెలుచుకునే అవకాశం 50% మరియు అసలు $100ని కోల్పోయే అవకాశం 50% ఉంది. మీరు తీసుకుంటారా? నేను చేయను. చాలా మంది చేయరు. అది నష్ట విరక్తి. మీరు దాని గురించి ఆలోచిస్తే, ఇది లాజికల్, ఇది అర్థమవుతుంది, ఇది మానవీయమైనది. నష్ట విరక్తి వెనుక ఉన్న భావన ఏమిటంటే, సమానమైన విలువైనదాన్ని పొందడం వల్ల కలిగే ఆనందానికి రెండింతలు మనం ఏదైనా కోల్పోయినప్పుడు బాధను అనుభవిస్తాము. మానసిక పరంగా, లాభాల కంటే నష్టమే ఎక్కువగా ఉంటుంది. ఇది స్ట్రీక్స్తో ఎలా సంబంధం కలిగి ఉందో మీరు బహుశా చూడవచ్చు. గుర్తించదగిన స్ట్రీక్ నిర్మించడానికి, అది ప్రయత్నం అవసరం; ఒక పరంపర పెరిగేకొద్దీ, దాని వెనుక ఉన్న ప్రేరణ మసకబారడం ప్రారంభమవుతుంది; లేదా మరింత ఖచ్చితంగా, ఇది ద్వితీయంగా మారడం ప్రారంభమవుతుంది. ఇక్కడ ఒక ఉదాహరణ ఉంది: మీ స్నేహితుడికి వారి ఆపిల్ వాచ్లో వారి "మూవ్ రింగ్స్" మూసివేసే మూడు రోజుల పరంపర ఉందని చెప్పండి. వారి లక్ష్యాన్ని సాధించడానికి మరియు స్థిరంగా ఉండాలని కోరుకోవడం కంటే వారు కోల్పోయేది దాదాపు ఏమీ లేదు. అదే సమయంలో, మీరు ఆకట్టుకునే 219-రోజుల పరంపరను కలిగి ఉన్నారు. దాన్ని కోల్పోతామనే భయంతో మీరు చిక్కుకునే అవకాశాలు ఉన్నాయి. మీరు ఈ సమయంలో సాధించిన విజయం గురించి ఎక్కువగా ఆలోచించడం లేదు; ఇది మీ పెట్టుబడి ప్రయత్నాన్ని రక్షించడం గురించి ఎక్కువ, మరియు అది నష్ట విరక్తి. డుయోలింగో వారి సోమరి రోజులలో కూడా సుదీర్ఘ పరంపరను విచ్ఛిన్నం చేయడానికి వినియోగదారు యొక్క అయిష్టతకు నష్టం విరక్తి ఎలా దోహదపడుతుందో వివరిస్తుంది. ఒక విధంగా, నష్టం విరక్తి స్థిరపడినప్పుడు ఒక పరంపర అలవాటుగా మారుతుంది. ఫాగ్ బిహేవియర్ మోడల్ (B = MAP) పొడవైన స్ట్రీక్స్లో పెట్టుబడి పెట్టిన కృషిని కోల్పోతామనే భయాన్ని ఇప్పుడు మనం అర్థం చేసుకున్నాము, మరొక ప్రశ్న: స్ట్రీక్ పెద్దది కాకముందే, రోజు తర్వాత రోజు మనం మొదటి స్థానంలో ఏమి చేస్తుంది? ఫాగ్ బిహేవియర్ మోడల్ అంటే ఇదే. ఇది సాపేక్షంగా సులభం. ప్రేరణ (M), ఎబిలిటీ (A), మరియు ప్రాంప్ట్ (P) అనే మూడు కారకాలు ఒకే సమయంలో సమలేఖనం అయినప్పుడు మాత్రమే ప్రవర్తన (B) సంభవిస్తుంది. అందువలన, సమీకరణం B=MAP. ఈ కారకాలు ఏవైనా, ఆ సమయంలో ఒకటి తప్పిపోయినట్లయితే, ప్రవర్తన జరగదు. కాబట్టి, స్ట్రీక్ సిస్టమ్ సమర్థవంతంగా మరియు పునరావృతం కావాలంటే, మూడు అంశాలు తప్పనిసరిగా ఉండాలి: ప్రేరణఇది పెళుసుగా ఉంటుంది మరియు స్థిరంగా ఉండే విషయం కాదు. మీరు ఉన్న రోజులు ఉన్నాయిస్పానిష్ నేర్చుకోవడం కోసం పంపబడింది, మరియు ఆ భాషను నేర్చుకోవాలనే సంకల్ప శక్తి మీకు లేని రోజులు. ఒక అలవాటును నిర్మించుకోవడానికి దానికదే ప్రేరణ అనేది నమ్మదగనిది మరియు మొదటి రోజు నుండి ఓడిపోయే యుద్ధం. ప్రేరణ యొక్క పరిమితులను భర్తీ చేసే సామర్థ్యం, సామర్థ్యం కీలకం. ఈ సందర్భంలో, సామర్థ్యం అంటే చర్య యొక్క సౌలభ్యం, అనగా, ప్రయత్నం చాలా సులభం, అది సాధ్యం కాదని చెప్పడం అవాస్తవికం. చాలా యాప్లు దీనిని ఉద్దేశపూర్వకంగా ఉపయోగిస్తాయి. Apple ఫిట్నెస్కి మీరు మీ స్టాండ్ లక్ష్యం వైపు టిక్ను సంపాదించడానికి గంటలో ఒక నిమిషం పాటు నిలబడాలి. Duolingoకి పూర్తి చేసిన ఒక పాఠం మాత్రమే అవసరం. ఈ పనులకు అంత శ్రమ అవసరం లేదు. అవరోధం చాలా తక్కువగా ఉంది, మీ చెత్త రోజులలో కూడా మీరు దీన్ని చేయగలరు. కానీ కొనసాగుతున్న పరంపర యొక్క మిశ్రమ ప్రయత్నం ఏమిటంటే, ఆ పరంపరను కోల్పోవాలనే ఆలోచన వస్తుంది. ప్రాంప్ట్ ఇది సమీకరణాన్ని పూర్తి చేస్తుంది. మానవులు సహజంగా మతిమరుపు కలిగి ఉంటారు, కాబట్టి అవును, సామర్థ్యం మనల్ని 90% పొందగలదు. కానీ ఒక ప్రాంప్ట్ మనకు పని చేయమని గుర్తు చేస్తుంది. స్ట్రీక్స్ డిజైన్ ద్వారా స్థిరంగా ఉంటాయి, కాబట్టి వినియోగదారులు పని చేయడానికి నిరంతరం గుర్తు చేయాలి. ప్రాంప్ట్ ఎంత శక్తివంతమైనదో చూడటానికి, యాప్ చిహ్నంపై కొద్దిగా ఎరుపు రంగు బ్యాడ్జ్ స్థిరమైన వినియోగాన్ని పెంచుతుందో లేదో తెలుసుకోవడానికి Duolingo A/B పరీక్ష చేసింది. ఇది రోజువారీ క్రియాశీల వినియోగదారులలో 6% పెరుగుదలను ఉత్పత్తి చేసింది. కేవలం ఎరుపు రంగు బ్యాడ్జ్. మోడల్ పరిమితులు ఇవన్నీ చెప్పబడుతున్నాయి, ఫాగ్ మోడల్కు ఒక పరిమితి ఉంది, దీని ద్వారా విమర్శకులు మరియు ఆధునిక పరిశోధనలు దూకుడు నోటిఫికేషన్ల వంటి ప్రాంప్ట్లపై ఎక్కువగా ఆధారపడే డిజైన్ మానసిక అలసటను సృష్టించే ప్రమాదం ఉందని గమనించారు. స్థిరమైన నోటిఫికేషన్లు మరియు ఓవర్టైమ్లు వినియోగదారులను గందరగోళానికి గురి చేస్తాయి. కాబట్టి, దాని కోసం చూడండి. ది జీగార్నిక్ ప్రభావం మీరు ప్రాజెక్ట్ యొక్క పనిని సగంలో వదిలేసినప్పుడు మీకు ఎలా అనిపిస్తుంది? ఇది చాలా మందికి చికాకు కలిగిస్తుంది ఎందుకంటే మనం పూర్తి చేసే పనుల కంటే అసంపూర్తి పనులు ఎక్కువ మానసిక స్థలాన్ని ఆక్రమిస్తాయి. ఏదైనా పని చేసి పోయినప్పుడు, మనం దానిని మరచిపోతాము. ఏదైనా పని చేయకుండా వదిలేసినప్పుడు, అది మన మనస్సుపై బరువుగా ఉంటుంది. అందుకే డిజిటల్ ఉత్పత్తులు తమ ప్రొఫైల్ కేవలం “60% పూర్తయ్యాయని” వినియోగదారుకు తెలియజేయడానికి Upwork ప్రొఫైల్ కంప్లీషన్ బార్ వంటి కృత్రిమ పురోగతి సూచికలను ఉపయోగిస్తాయి. వారు ప్రారంభించిన దాన్ని పూర్తి చేయమని ఇది వినియోగదారుని నెట్టివేస్తుంది.
మరొక ఉదాహరణ చూద్దాం. మీరు చేయవలసిన పనుల జాబితా యాప్లో ఐదు టాస్క్లు ఉన్నాయి మరియు రోజు చివరిలో, మీరు వాటిలో నాలుగింటిని మాత్రమే పూర్తి చేసినట్లు తనిఖీ చేస్తారు. ఆ ఒక్క అసంపూర్తి పని వల్ల మనలో చాలామంది అసంపూర్తిగా భావిస్తారు. అది, అక్కడే, జీగార్నిక్ ప్రభావం. Zeigarnik ప్రభావం మనస్తత్వవేత్త బ్లూమా Zeigarnik చేత ప్రదర్శించబడింది, మేము పూర్తి చేసిన పనుల కంటే అసంపూర్ణమైన పనులను మన జ్ఞాపకశక్తిలో చురుకుగా ఉంచుకుంటామని వివరించాడు. UX డిజైన్లో స్ట్రీక్ ప్యాటర్న్ సహజంగా దీన్ని ట్యాప్ చేస్తుంది. మీరు నేర్చుకునే క్రమంలో 63వ రోజులో ఉన్నారని అనుకుందాం. ఆ సమయంలో, మీరు అసంపూర్తిగా కొనసాగుతున్న వ్యాపారంలో ఉన్నారు. మీ మెదడు మీ మనస్సు వెనుక కూర్చున్నందున దాని గురించి చాలా అరుదుగా మరచిపోతుంది. ఈ సమయంలో, మీ మెదడు మీకు నోటిఫికేషన్లను పంపుతుంది. మీరు ఈ మానసిక శక్తులను కలిపి ఉంచినప్పుడు, స్ట్రీక్లు కేవలం సాధారణ అనువర్తన లక్షణం ఎందుకు కాదో మీరు నిజంగా అర్థం చేసుకోవడం ప్రారంభిస్తారు; వారు మానవ ప్రవర్తనను పునర్నిర్మించగలరు. కానీ ఎక్కడో ఒక చోట - ఇది ప్రతి ఒక్కరికీ భిన్నంగా ఉంటుంది కాబట్టి నేను ఖచ్చితంగా ఎప్పుడు చెప్పలేను - విషయాలు "సరదా" నుండి మీరు కోల్పోయే స్థోమత లేని స్థితికి మారే స్థితికి చేరుకుంటాయి. 58 రోజుల శ్రమ వృధా కావడానికి మీకు ఇష్టం లేదు, అవునా? అదే స్ట్రీక్ సిస్టమ్ను ప్రభావవంతంగా చేస్తుంది. సరిగ్గా చేస్తే, స్ట్రీక్లు వినియోగదారులకు లక్ష్యాన్ని సాధించే అద్భుతమైన అలవాట్లను రూపొందించడంలో సహాయపడతాయి. ఇది ప్రతిరోజూ చదవడం లేదా జిమ్కు స్థిరంగా కొట్టడం కావచ్చు. ఈ పునరావృత చర్యలు (కొన్నిసార్లు చిన్నవి) కాలక్రమేణా సమ్మేళనం మరియు మన రోజువారీ జీవితంలో స్పష్టంగా కనిపిస్తాయి. అయితే ప్రతి నాణేనికి రెండు వైపులా ఉంటాయి. అలవాటు మరియు బలవంతం మధ్య సన్నని గీత మీరు అనుసరిస్తూ ఉంటే, స్ట్రీక్ సిస్టమ్లకు చీకటి కోణం ఉందని మీరు ఇప్పటికే చెప్పగలరు. అలవాటు ఏర్పడటం అనేది పునరావృత లక్ష్యంతో స్థిరత్వం గురించి. అయితే, బలవంతం అనేది ఇకపై అవసరం లేని లక్ష్యంపై పని చేయడం యొక్క స్థిరత్వం, కానీ భయం లేదా ఒత్తిడి నుండి దూరంగా ఉంటుంది. ఇది రేజర్-సన్నని గీత. మీరు ఆలోచించకుండా ప్రతి ఉదయం పళ్ళు తోముకుంటారు; ఇది స్వయంచాలకంగా మరియు సహజమైనది, మంచి శ్వాసను కలిగి ఉండాలనే స్పష్టమైన లక్ష్యంతో ఉంటుంది. ఇది ఒక మంచి అలవాటును ఏర్పరుస్తుంది. ఎథికల్ స్ట్రీక్ సిస్టమ్ వినియోగదారులకు శ్వాస తీసుకోవడానికి స్థలాన్ని ఇస్తుంది. కొన్ని కారణాల వల్ల, మీరు ఉదయం బ్రష్ చేయకపోతే, మీరు మధ్యాహ్నం బ్రష్ చేయవచ్చు. సుదీర్ఘ ప్రయత్నాన్ని కోల్పోయే భయం లేకుండా అసంపూర్ణత అనుమతించబడుతుంది. బలవంతం వ్యతిరేక మార్గాన్ని తీసుకుంటుంది, దీని ద్వారా ఒక పరంపర మిమ్మల్ని ఆందోళనకు గురి చేస్తుంది, మీరు అపరాధ భావన లేదా అలసిపోయినట్లు అనిపిస్తుంది, మరియు కొన్నిసార్లు, మీరు ఏమి చేసినప్పటికీ, మీరు ఏమీ సాధించనట్లు అనిపిస్తుంది.పని. మీరు పని చేయాలనుకుంటున్నారు కాబట్టి కాదు, కానీ మీ పురోగతిని సున్నాకి రీసెట్ చేయడం చూసి మీరు ఉపచేతనంగా భయపడుతున్నారు. ఎవరో దీన్ని సరిగ్గా వర్ణించారు, "నేను మోసం చేస్తున్నానని నేను భావించాను, కానీ పట్టించుకోలేదు. నా పరంపర లేకుండా నేను ఏమీ కాదు". ఇది ఒక వ్యక్తిపై విపరీతమైన హోల్డ్ స్ట్రీక్లను చూపుతుంది. వినియోగదారులు తమ స్వీయ-విలువను అసలు లక్ష్యం లేదా కారణానికి బదులుగా ఏకపక్ష మెట్రిక్తో ముడిపెట్టడం ప్రారంభించినంత వరకు వారు మొదటి స్థానంలో పరంపరను ప్రారంభించారు. పరంపర వారు చేసేది మాత్రమే కాదు, వారు ఎవరో అవుతుంది. బాగా రూపొందించబడిన ఎథికల్ స్ట్రీక్ సిస్టమ్ వినియోగదారుని ప్రోత్సాహంలా భావించాలి, ఒత్తిడి లేదా బాధ్యత కాదు. ఇది అంతర్గత మరియు బాహ్య ప్రేరణ యొక్క సమతుల్యతకు సంబంధించినది. బాహ్య ప్రేరణ (బాహ్య బహుమతులు, శిక్షను నివారించడం) వినియోగదారులను ప్రారంభించవచ్చు, కానీ అంతర్గత ప్రేరణ (స్పానిష్ నేర్చుకోవడం వంటి వ్యక్తిగత లక్ష్యం కోసం పని చేయడం, ఎందుకంటే మీరు నిజంగా ప్రియమైన వారితో కమ్యూనికేట్ చేయాలనుకుంటున్నారు) దీర్ఘకాల నిశ్చితార్థం కోసం బలంగా ఉంటుంది. ఒక మంచి వ్యవస్థ బాహ్య మూలకాలను జాగ్రత్తగా ఉపయోగించడంతో అంతర్గత ప్రేరణ వైపు ఆకర్షితులై ఉండాలి, అనగా, వినియోగదారులు ఎంత దూరం వచ్చారో గుర్తుచేయాలి, వారు కోల్పోయే వాటితో వారిని బెదిరించకూడదు. మళ్ళీ, ఇది చక్కటి లైన్. స్ట్రీక్ సిస్టమ్ను డిజైన్ చేసేటప్పుడు ఒక సాధారణ పరీక్ష ఏమిటంటే, వాస్తవానికి కొంత సమయం తీసుకొని, మీ ఉత్పత్తి సృష్టించిన ఆందోళనకు పరిష్కారాలను విక్రయించడం ద్వారా మీ ఉత్పత్తులు డబ్బు సంపాదిస్తాయో లేదో ఆలోచించడం. అవును అయితే, మీరు వినియోగదారులను దోపిడీ చేసే అవకాశం ఎక్కువగా ఉంటుంది. కాబట్టి తదుపరి ప్రశ్న ఏమిటంటే, నేను స్ట్రీక్ని ఉపయోగించాలని ఎంచుకుంటే, వినియోగదారులు తమ లక్ష్యాలను సాధించడంలో నిజంగా సహాయపడే విధంగా నేను దానిని ఎలా డిజైన్ చేయాలి? గుడ్ స్ట్రీక్ సిస్టమ్ డిజైన్ యొక్క UX ఇక్కడే చాలా ప్రాజెక్ట్లు ప్రభావవంతమైన స్ట్రీక్ సిస్టమ్ను నెయిల్ లేదా పూర్తిగా గందరగోళానికి గురిచేస్తాయని నేను నమ్ముతున్నాను. మంచి స్ట్రీక్ డిజైన్ కోసం కొన్ని UX సూత్రాలను చూద్దాం. అప్రయత్నంగా ఉంచండి మీరు దీన్ని ఇంతకు ముందు బహుశా అటామిక్ హ్యాబిట్స్ వంటి పుస్తకాల నుండి విని ఉండవచ్చు, కానీ చర్యను చిన్నదిగా మరియు తేలికగా చేయడం ద్వారా అలవాట్లు ఏర్పడటానికి సులభమైన మార్గాలలో ఒకటి అని చెప్పడం విలువ. ఇది మేము ఫాగ్ బిహేవియర్ మోడల్ నుండి చర్చించిన సామర్థ్య కారకాన్ని పోలి ఉంటుంది. ఏదైనా స్ట్రీక్ డిజైన్ యొక్క మొదటి నియమం పురోగతిని సాధించేటప్పుడు అవసరమైన చర్యను మానవీయంగా సాధ్యమైనంత చిన్నదిగా చేయడం. రోజువారీ చర్య పూర్తి కావడానికి సంకల్ప శక్తి అవసరమైతే, ఆ చర్య ఐదు రోజులు గడిచిపోదు. ఎందుకు? మీరు వరుసగా ఐదు రోజులు ప్రేరణ పొందలేరు. కేస్ ఇన్ పాయింట్: మీరు మెడిటేషన్ యాప్ని రన్ చేస్తే, స్ట్రీక్ను కొనసాగించడానికి మీరు వినియోగదారులను 20 నిమిషాల సెషన్లో పాల్గొనేలా చేయాల్సిన అవసరం లేదు. ఒక నిమిషం ప్రయత్నించండి, బదులుగా ముప్పై సెకన్ల చిన్నది కూడా కావచ్చు. సామెత చెప్పినట్లుగా, చిన్న నీటి చుక్కలు శక్తివంతమైన సముద్రాన్ని చేస్తాయి). చిన్న ప్రయత్నాలు కాలక్రమేణా పెద్ద విజయాలుగా సంకలనం చేయబడతాయి. అది లక్ష్యం అయి ఉండాలి: రాపిడిని తొలగించండి, ముఖ్యంగా క్షణం కష్టంగా ఉన్నప్పుడు. వినియోగదారులు ఒత్తిడికి లోనైనప్పుడు లేదా ఒత్తిడికి లోనైనప్పుడు, కేవలం కొన్ని సెకన్ల పాటు కనిపించడం కూడా ప్రయత్నంగా పరిగణించబడుతుందని వారికి తెలియజేయండి. స్పష్టమైన దృశ్యమాన అభిప్రాయాన్ని అందించండి మానవులు ప్రకృతి ద్వారా దృశ్యమానంగా ఉంటారు. చాలా సార్లు, మనం నమ్మడానికి ఏదైనా చూడాలి; విషయాలను బాగా అర్థం చేసుకోవడానికి మరియు విషయాలను దృక్కోణంలో ఉంచడానికి వాటిని దృశ్యమానం చేయడం అవసరం. అందుకే స్ట్రీక్ నమూనాలు తరచుగా ప్రయత్నాన్ని దృశ్యమానం చేయడానికి గ్రాఫ్లు, చెక్మార్క్లు, ప్రోగ్రెస్ రింగ్లు మరియు గ్రిడ్ల వంటి విజువల్ ఎలిమెంట్లను ఉపయోగిస్తాయి. GitHub యొక్క సహకార గ్రాఫ్ను చూడండి. ఇది స్థిరత్వం యొక్క సాధారణ విజువలైజేషన్. ఇంకా డెవలపర్లు ఆక్సిజన్ లాగా ఊపిరి పీల్చుకుంటారు.
స్ట్రీక్ సిస్టమ్ను వియుక్తంగా భావించడం ప్రధానం కాదు. ఇది నిజమైన మరియు సంపాదించిన అనుభూతి ఉండాలి. ఉదాహరణకు, Duolingo మరియు Apple యొక్క ఫిట్నెస్ యాక్టివిటీ రింగ్లు స్ట్రీక్ పూర్తయిన తర్వాత క్లీన్ యానిమేషన్ డిజైన్లను ఉపయోగిస్తాయి మరియు GitHub కాలక్రమేణా వినియోగదారు యొక్క స్థిరత్వం యొక్క చారిత్రక డేటాను చూపుతుంది.
మంచి టైమింగ్ ఉపయోగించండి మానవులు సాధారణంగా స్వభావరీత్యా మతిమరుపు కలిగి ఉంటారని నేను ముందే చెప్పాను మరియు ఫార్వర్డ్ మొమెంటమ్ని కొనసాగించడంలో ప్రాంప్ట్లు సహాయపడతాయని. ప్రాంప్ట్లు లేకుండా, చాలా మంది కొత్త వినియోగదారులు కొనసాగించడం మర్చిపోతారు. జీవితం బిజీగా ఉంటుంది, ప్రేరణ అదృశ్యమవుతుంది మరియు విషయాలు జరుగుతాయి. దీర్ఘ-కాల వినియోగదారులు కూడా ప్రాంప్ట్ల నుండి ప్రయోజనం పొందుతారు, అయినప్పటికీ చాలా సార్లు, వారు ఇప్పటికే అలవాటు లూప్ లోపల లాక్ చేయబడి ఉన్నారు. అయినప్పటికీ, అత్యంత నిబద్ధత కలిగిన వ్యక్తి కూడా అనుకోకుండా ఒక రోజును కోల్పోవచ్చు. మీ స్ట్రీక్ సిస్టమ్కు ఖచ్చితంగా రిమైండర్లు అవసరం. ఎక్కువగా ఉపయోగించే ప్రాంప్ట్ రిమైండర్లు పుష్ నోటిఫికేషన్లు. పుష్ నోటిఫికేషన్లతో పని చేస్తున్నప్పుడు సమయం చాలా ముఖ్యం. యాప్ రకం కూడా ముఖ్యం. "మీరు ఈరోజు ప్రాక్టీస్ చేయలేదు" అని ఉదయం 9 గంటలకు నోటిఫికేషన్ పంపడం అనేది లెర్నింగ్ యాప్కి వింతగా ఉంటుంది, ఎందుకంటే చాలా మంది పాఠాన్ని పూర్తి చేయడం గురించి ఆలోచించే ముందు రోజులో చేయాల్సి ఉంటుంది. మేము ఫిట్నెస్ యాప్ గురించి మాట్లాడుతుంటే, అదిసహేతుకమైనది మరియు ముందు రోజులో గుర్తుకు రావాలని కూడా ఆశించవచ్చు. యాప్ వర్గాన్ని బట్టి పుష్ నోటిఫికేషన్లు గణనీయంగా మారుతూ ఉంటాయి. ఫిట్నెస్ యాప్లు, ఉదాహరణకు, ఉదయాన్నే నోటిఫికేషన్లతో (7–8 AM) అధిక ఎంగేజ్మెంట్ను చూస్తాయి, అయితే ఉత్పాదకత యాప్లు మధ్యాహ్నం ప్రారంభంలో మెరుగ్గా పని చేస్తాయి. అన్నీ ఒకే పరిమాణానికి సరిపోతాయని భావించడం కంటే మీ వినియోగదారుల ప్రవర్తనల ఆధారంగా మీ యాప్ యొక్క సమయాన్ని A/B పరీక్షించడం కీలకం. మెడిటేషన్ యాప్కి ఏది పని చేస్తుందో అది కోడింగ్ ట్రాకర్కి పని చేయకపోవచ్చు. ఇతర ప్రాంప్ట్ పద్ధతులు యాప్ చిహ్నంపై ఎరుపు చుక్కలు మరియు యాప్ విడ్జెట్లు కూడా. అధ్యయనాలు మారుతూ ఉంటాయి, కానీ సగటు వ్యక్తి తమ పరికరాన్ని రోజుకు 50-150 సార్లు అన్లాక్ చేస్తారు (PDF). వినియోగదారు తమ ఫోన్ని అన్లాక్ చేసిన ప్రతిసారీ కరెంట్ స్ట్రీక్ను సూచించే యాప్ లేదా విడ్జెట్లో ఎరుపు చుక్కను చూసినట్లయితే, అది నిబద్ధతను పెంచుతుంది. జస్ట్ అది overdo లేదు; ప్రాంప్ట్ నాగ్గా కాకుండా రిమైండర్గా ఉపయోగపడుతుంది. మైలురాళ్లను జరుపుకోండి స్ట్రీక్ సిస్టమ్ భావోద్వేగాలను పునరుజ్జీవింపజేయడానికి మైలురాళ్లను జరుపుకోవడానికి ప్రయత్నించాలి, ప్రత్యేకించి స్ట్రీక్లో లోతైన వినియోగదారులకు. వినియోగదారు 7వ రోజు, 30వ రోజు, 50వ రోజు, 100వ రోజు, 365వ రోజును తాకినప్పుడు, మీరు దాని నుండి పెద్ద ఒప్పందం చేసుకోవాలి. విజయాలను గుర్తించండి — ముఖ్యంగా దీర్ఘకాల వినియోగదారుల కోసం.
మేము ఇంతకు ముందు చూసినట్లుగా, Duolingo దీన్ని గుర్తించింది మరియు కాన్ఫెట్టితో మైలురాళ్లను జరుపుకునే యానిమేటెడ్ గ్రాఫిక్ను అమలు చేసింది. కొన్ని ప్లాట్ఫారమ్లు వినియోగదారుల ప్రయత్నాలను ధృవీకరించే గణనీయమైన బోనస్ రివార్డ్లను కూడా అందిస్తాయి. మరియు ఇది యాప్లకు ప్రయోజనకరంగా ఉంటుంది, అంటే వినియోగదారులు తమ మైలురాళ్లను సోషల్ మీడియాలో పబ్లిక్గా పంచుకుంటారు. మైలురాళ్లను చేరుకోవడానికి ముందు వచ్చే నిరీక్షణ మరో ప్రయోజనం. ఇది పరంపరను అనంతంగా సజీవంగా ఉంచడం మాత్రమే కాదు; వినియోగదారులు ఎదురుచూడడానికి ఏదో ఉంది. గ్రేస్ మెకానిజమ్స్ ఉపయోగించండి జీవితం అనూహ్యమైనది. ప్రజలు పరధ్యానంలో పడతారు. ఏదైనా మంచి స్ట్రీక్ సిస్టమ్ అసంపూర్ణతను ఆశించాలి. స్ట్రీక్ సిస్టమ్కు అతిపెద్ద మానసిక ముప్పులలో ఒకటి కేవలం ఒక్క రోజు తప్పిన తర్వాత సున్నాకి రీసెట్ చేయడం. "నైతిక" స్ట్రీక్ సిస్టమ్ వినియోగదారుకు కొంత స్లాక్ని అందించాలి. మీకు 90 రోజుల చెస్ నేర్చుకునే పరంపర ఉందని అనుకుందాం. మీరు మూడు మంచి నెలల పాటు స్థిరంగా ఉన్నారు మరియు ఒక రోజు, ప్రయాణిస్తున్నప్పుడు మీ ఫోన్ చనిపోతుంది మరియు అదే విధంగా, 90 0 అవుతుంది - ప్రతిదీ, ఆ ప్రయత్నమంతా తొలగించబడుతుంది మరియు పురోగతి అదృశ్యమవుతుంది. వినియోగదారు పూర్తిగా నాశనమై ఉండవచ్చు. మొదటి నుండి దానిని పునర్నిర్మించాలనే ఆలోచన చాలా నిరుత్సాహపరుస్తుంది, ప్రయత్నం విలువైనది కాదు. చెత్తగా, విఫలమైనట్లు భావించిన తర్వాత వినియోగదారు యాప్ను వదిలివేయవచ్చు. మీ స్ట్రీక్ సిస్టమ్కు "గ్రేస్" మెకానిజంను జోడించడాన్ని పరిగణించండి:
స్ట్రీక్ ఫ్రీజ్ వినియోగదారులను ఉద్దేశపూర్వకంగా జరిమానాలు లేకుండా ఒక రోజు కోల్పోయేలా అనుమతించండి. అదనపు సమయం రీసెట్ని ట్రిగ్గర్ చేయడానికి ముందు సాధారణ గడువు దాటిన కొన్ని గంటలను (2–3) అనుమతించండి. డికే మోడల్స్ హార్డ్ రీసెట్కు బదులుగా, స్ట్రీక్ చిన్న మొత్తంలో తగ్గుతుంది, ఉదా., మిస్డ్ డేకి 10 రోజులు స్ట్రీక్ నుండి తీసివేయబడుతుంది.
ప్రోత్సాహకరమైన స్వరాన్ని ఉపయోగించండి స్ట్రీక్ బ్రేక్ అయినప్పుడు వినియోగదారులకు చూపబడే రెండు సందేశాలను సరిపోల్చండి:
"మీరు మీ 42-రోజుల పరంపరను కోల్పోయారు. మళ్లీ ప్రారంభించండి." "మీరు నేరుగా 42 రోజులు కనిపించారు. ఇది అద్భుతమైన పురోగతి! మరొకసారి ప్రయత్నించాలనుకుంటున్నారా?"
రెండూ ఒకే సమాచారాన్ని తెలియజేస్తాయి, కానీ భావోద్వేగ ప్రభావం భిన్నంగా ఉంటుంది. మొదటి సందేశం వినియోగదారుని నిరుత్సాహపరిచిన అనుభూతిని కలిగిస్తుంది మరియు వారు నిష్క్రమించేలా చేస్తుంది. రెండవ సందేశం ఇప్పటికే సాధించిన దాన్ని జరుపుకుంటుంది మరియు మళ్లీ ప్రయత్నించమని వినియోగదారుని సున్నితంగా ప్రోత్సహిస్తుంది. స్ట్రీక్ సిస్టమ్స్ డిజైన్ సవాళ్లు మేము స్ట్రీక్ సిస్టమ్ను నిర్మించే సాంకేతిక ప్రత్యేకతలకు వెళ్లే ముందు, మీరు ఎదుర్కొనే సవాళ్ల గురించి మీరు తెలుసుకోవాలి. మీరు ఊహించిన విధంగా విషయాలు క్లిష్టంగా మారవచ్చు. సమయ మండలాలను నిర్వహించడం డెవలపర్లు వ్యవహరించే అత్యంత క్లిష్టమైన భావనలలో సమయం మరియు తేదీని నిర్వహించడం ఎందుకు ఒక కారణం. ఫార్మాటింగ్, అంతర్జాతీయీకరణ మరియు పరిగణించవలసిన మరెన్నో ఉన్నాయి. నేను మిమ్మల్ని ఇలా అడుగుతాను: ఒక రోజుగా ఏది లెక్కించబడుతుంది? ప్రపంచం వేర్వేరు సమయ మండలాలపై నడుస్తుందని మాకు తెలుసు మరియు అది సరిపోదు కాబట్టి, కొన్ని ప్రాంతాలలో సంవత్సరానికి రెండుసార్లు జరిగే డేలైట్ సేవింగ్ టైమ్ (DST) ఉంటుంది. మీరు ఈ ఎడ్జ్ కేసులను ఎక్కడ నిర్వహించడం ప్రారంభిస్తారు? రేపటి "ప్రారంభం"గా ఏది పరిగణించబడుతుంది? కొంతమంది డెవలపర్లు UTC వంటి ఒక సెంట్రల్ టైమ్జోన్ని ఉపయోగించడం ద్వారా దీనిని నివారించడానికి ప్రయత్నిస్తారు. కొంతమంది వినియోగదారులకు, ఇది సరైన ఫలితాలను ఇస్తుంది, కానీ కొందరికి ఇది గంట, రెండు గంటలు లేదా అంతకంటే ఎక్కువ సమయం ఆపివేయబడవచ్చు. ఈ అస్థిరత వినియోగదారు అనుభవాన్ని నాశనం చేస్తుంది. మీరు తెరవెనుక సమయాన్ని ఎలా నిర్వహించాలో వినియోగదారులు తక్కువ శ్రద్ధ వహిస్తారు; వారు ఆశించేది ఏమిటంటే, వారు 11:40 p.m.కి స్ట్రీక్ యాక్షన్ చేస్తే, అది వారి సందర్భంలో, ఆ ఖచ్చితమైన సమయంలో నమోదు చేసుకోవాలి. మీరు వినియోగదారు యొక్క స్థానిక సమయమండలి ఆధారంగా "ఒక రోజు"ని నిర్వచించాలి, సర్వర్ సమయం కాదు. ఖచ్చితంగా, మీరు సులభంగా తీసుకోవచ్చుఅర్ధరాత్రి UTCలో వినియోగదారులందరికీ ప్రపంచవ్యాప్తంగా మార్గాన్ని మరియు రీసెట్ స్ట్రీక్లను రీసెట్ చేయండి, కానీ మీరు చాలా అన్యాయాన్ని సృష్టిస్తున్నారు. లండన్లో నివసించే వారి కంటే కాలిఫోర్నియాలోని ఎవరైనా తమ పనిని పూర్తి చేయడానికి ఎల్లప్పుడూ ఎనిమిది అదనపు గంటలను కలిగి ఉంటారు. ఇది అన్యాయమైన డిజైన్ లోపం, ఇది కొంతమంది వినియోగదారులను వారి స్థానం కారణంగా శిక్షిస్తుంది. మరియు లండన్లో ఉన్న వ్యక్తి మాత్రమే సందర్శిస్తున్నట్లయితే, ఒక పనిని పూర్తి చేసి, మరొక సమయ మండలికి తిరిగి వస్తే? వీటన్నింటికీ ఒక సమర్థవంతమైన పరిష్కారం ఏమిటంటే, ఆన్బోర్డింగ్ సమయంలో (ప్రాధాన్యంగా మొదటి ప్రామాణీకరణ తర్వాత) వారి సమయ మండలిని స్పష్టంగా సెట్ చేయమని వినియోగదారులను అడగడం. టైమ్జోన్ సమాచారాన్ని అందించడం అనేది వ్యక్తిగతంగా గుర్తించదగిన డేటాగా ఉపయోగించబడకుండా, పురోగతిని ఖచ్చితంగా ట్రాక్ చేయడానికి యాప్ కోసం మాత్రమే ఉపయోగించబడుతుంది అనే సూక్ష్మ గమనికను చేర్చడం మంచిది. మరియు దానిని మార్చగల సెట్టింగ్గా మార్చడం మరొక మంచి ఆలోచన. ఎవరైనా యాప్లో టైమ్జోన్ లాజిక్ని నేరుగా హ్యాండిల్ చేయకూడదని నేను సూచిస్తున్నాను. Moment.js లేదా pytz (Python) మొదలైన ప్రయత్నించిన మరియు నిజమైన తేదీ లైబ్రరీలను ఉపయోగించండి. ఇలాంటి సంక్లిష్టమైన వాటి కోసం చక్రాన్ని మళ్లీ ఆవిష్కరించాల్సిన అవసరం లేదు. మిస్డ్ డేస్ మరియు ఎడ్జ్ కేసులు మీరు ఆందోళన చెందాల్సిన మరో సవాలు ఏమిటంటే, వినియోగదారులు అతిగా నిద్రపోవడం, సర్వర్ డౌన్టైమ్, లాగ్, నెట్వర్క్ వైఫల్యాలు మొదలైనవాటిని నియంత్రించలేని ఎడ్జ్ కేసులు. గ్రేస్ మెకానిజమ్ల ఆలోచనను ఉపయోగించడం, మనం ఇంతకు ముందు చర్చించినట్లుగా, సహాయపడవచ్చు. రెండు గంటల గ్రేస్ విండో వినియోగదారు మరియు డెవలపర్ ఇద్దరికీ సహాయపడవచ్చు, అంటే వినియోగదారులు నియంత్రించలేని జీవిత పరిస్థితులకు కఠినంగా శిక్షించబడరు. డెవలపర్ల కోసం, అర్ధరాత్రి సర్వర్ డౌన్ అయినప్పుడు నియంత్రించలేని క్షణాల్లో గ్రేస్ విండోలు సహాయపడతాయి. అన్నింటికంటే, క్లయింట్ను ఎప్పుడూ నమ్మవద్దు. సర్వర్ వైపు ఎల్లప్పుడూ ధృవీకరించండి. సర్వర్ సత్యానికి ఒకే మూలంగా ఉండాలి. మోసం నివారణ మళ్ళీ, నేను దీన్ని తగినంతగా నొక్కి చెప్పలేను: సర్వర్ వైపు ప్రతిదీ ధృవీకరించాలని నిర్ధారించుకోండి. వినియోగదారులు మనుషులు, అవకాశం ఇస్తే మనుషులు మోసం చేయవచ్చు. ఇది తప్పించుకోలేనిది. మీరు ప్రయత్నించవచ్చు:
UTC టైమ్స్టాంప్లతో అన్ని చర్యలను నిల్వ చేయడం. క్లయింట్ వారి స్థానిక సమయాన్ని పంపవచ్చు, కానీ సర్వర్ వెంటనే దానిని UTCకి మార్చగలదు మరియు సర్వర్ సమయానికి వ్యతిరేకంగా ధృవీకరించగలదు. ఆ విధంగా, క్లయింట్ యొక్క టైమ్స్టాంప్ అనుమానాస్పదంగా ఉన్నట్లయితే, సిస్టమ్ దానిని లోపంగా తిరస్కరించవచ్చు మరియు UI తదనుగుణంగా ప్రతిస్పందించవచ్చు. ఈవెంట్-ఆధారిత ట్రాకింగ్ని ఉపయోగించడం. మరో మాటలో చెప్పాలంటే, వినియోగదారు ID, చేసిన చర్య రకం మరియు టైమ్స్టాంప్ మరియు టైమ్జోన్ వంటి సమాచారంతో సహా మెటాడేటాతో ప్రతి చర్య యొక్క రికార్డ్ను నిల్వ చేయండి. ఇది ధ్రువీకరణకు సహాయపడుతుంది.
స్ట్రీక్ సిస్టమ్ ఇంజిన్ను నిర్మించడం ఇది కోడ్ ట్యుటోరియల్ కాదు, కాబట్టి నేను మీపై కొంత కోడ్ డంప్ చేయడాన్ని నివారిస్తాను. నేను దీన్ని ఆచరణాత్మకంగా ఉంచుతాను మరియు ఆర్కిటెక్చర్, ఫ్లో మరియు విశ్వసనీయత వంటి విషయాలు సాధారణంగా స్ట్రీక్ సిస్టమ్ ఇంజిన్ను ఎలా ఆపరేట్ చేస్తాయో వివరిస్తాను. కోర్ ఆర్కిటెక్చర్ నేను చాలాసార్లు చెప్పినట్లుగా, స్ట్రీక్ డేటా కోసం సర్వర్ను సత్యం యొక్క ఏకైక మూలంగా మార్చండి. ఆర్కిటెక్చర్ సర్వర్లో ఇలా ఉంటుంది:
ప్రతి వినియోగదారు డేటాను డేటాబేస్లో నిల్వ చేయండి. ప్రస్తుత స్ట్రీక్ స్టోర్ను (డిఫాల్ట్ 0గా) పూర్ణాంకంగా నిల్వ చేయండి. టైమ్జోన్ ప్రాధాన్యతను నిల్వ చేయండి, అంటే IANA టైమ్జోన్ స్ట్రింగ్ (స్థానిక టైమ్స్టాంప్ నుండి పరోక్షంగా లేదా వారి టైమ్జోన్ని ఎంచుకోమని వినియోగదారుని స్పష్టంగా అడగడం ద్వారా). ఉదాహరణకు, "America/New_York". వినియోగదారు స్థానిక సమయమండలికి సంబంధించి టైమ్జోన్ చెక్తో, పరంపర కొనసాగుతోందా లేదా విరిగిపోతుందో తెలుసుకోవడానికి అన్ని లాజిక్లను నిర్వహించండి.
ఇంతలో, క్లయింట్ వైపు:
సాధారణంగా సర్వర్ నుండి పొందబడిన ప్రస్తుత శ్రేణిని ప్రదర్శించండి. వినియోగదారు వాస్తవానికి క్వాలిఫైయింగ్ స్ట్రీక్ చర్యను పూర్తి చేశారో లేదో ధృవీకరించడానికి సర్వర్కు మెటాడేటా రూపంలో చేసిన చర్యను పంపండి. సర్వర్ ప్రతిస్పందనల ఆధారంగా దృశ్యమాన అభిప్రాయాన్ని అందించండి.
కాబట్టి, సంక్షిప్తంగా, మెదడు సర్వర్లో ఉంది మరియు క్లయింట్ ప్రదర్శన ప్రయోజనాల కోసం మరియు ఈవెంట్లను సమర్పించడం. ఇది మీకు చాలా వైఫల్యాలు మరియు ఎడ్జ్ కేసులను ఆదా చేస్తుంది మరియు అప్డేట్లు మరియు పరిష్కారాలను సులభతరం చేస్తుంది. లాజికల్ ఫ్లో వినియోగదారు ఒక చర్యను పూర్తి చేసినప్పుడు కనిష్ట సమర్థవంతమైన స్ట్రీక్ సిస్టమ్ ఇంజిన్ ఎలా పని చేస్తుందనే దాని యొక్క నడకను అనుకరించండి:
వినియోగదారు క్వాలిఫైయింగ్ స్ట్రీక్ చర్యను పూర్తి చేసారు. క్లయింట్ ఒక ఈవెంట్ను మెటాడేటాగా సర్వర్కి పంపుతుంది. ఇది "సమయ ముద్ర Z వద్ద వినియోగదారు X పూర్తి చేసిన చర్య Y" కావచ్చు. సర్వర్ ఈ ఈవెంట్ను స్వీకరిస్తుంది మరియు ప్రాథమిక ధృవీకరణను చేస్తుంది. ఇది నిజమైన వినియోగదారునా? అవి ప్రామాణీకరించబడ్డాయా? చర్య చెల్లుతుందా? టైమ్జోన్ స్థిరంగా ఉందా? ఇది పాస్ అయినట్లయితే, సర్వర్ డేటాబేస్ నుండి వినియోగదారు యొక్క స్ట్రీక్ డేటాను తిరిగి పొందుతుంది. ఆపై, అందుకున్న చర్య టైమ్స్టాంప్ను వినియోగదారు స్థానిక సమయమండలికి మార్చండి. వినియోగదారు స్థానిక టైమ్జోన్లో క్యాలెండర్ తేదీలను (టైమ్స్టాంప్లు కాదు) పోల్చడానికి సర్వర్ని అనుమతించండి: అదే రోజు అయితే, చర్య అనవసరంగా ఉంటుంది మరియు దానిలో ఎటువంటి మార్పు ఉండదుగీత. అది మరుసటి రోజు అయితే, స్ట్రీక్ విస్తరిస్తుంది మరియు 1 పెరుగుతుంది. ఒకటి కంటే ఎక్కువ రోజులు గ్యాప్ ఉంటే, స్ట్రీక్ బ్రేక్ అవుతుంది. అయితే, ఇక్కడే మీరు గ్రేస్ మెకానిక్స్ దరఖాస్తు చేసుకోవచ్చు. గ్రేస్ మెకానిజం మిస్ అయినట్లయితే, స్ట్రీక్ను 1కి రీసెట్ చేయండి.
మీరు మైలురాయి విజయాల కోసం చారిత్రక డేటాను సేవ్ చేయాలని ఎంచుకుంటే, "పొడవైన స్ట్రీక్" లేదా "మొత్తం క్రియాశీల రోజులు" వంటి వేరియబుల్లను అప్డేట్ చేయండి. సర్వర్ డేటాబేస్ను అప్డేట్ చేస్తుంది మరియు క్లయింట్కు ప్రతిస్పందిస్తుంది. ఇలాంటివి:
{ "కరెంట్_స్ట్రీక్": 48, "పొడవైన_స్త్రీ": 50, "total_active_days": 120, "streak_extended": నిజం, }
తదుపరి చర్యగా, ప్రాసెస్ సమయంలో ఏదైనా విఫలమైనప్పుడు సర్వర్ మళ్లీ ప్రయత్నించాలి లేదా తిరస్కరించాలి మరియు క్లయింట్కు తెలియజేయాలి. స్థితిస్థాపకత కోసం భవనం ముందే చెప్పినట్లుగా, బగ్లు లేదా సర్వర్ డౌన్టైమ్ కారణంగా వినియోగదారులు పరంపరను కోల్పోవడం భయంకరమైన UX, మరియు వినియోగదారులు దాని కోసం పతనాన్ని ఆశించరు. అందువల్ల, మీ స్ట్రీక్ సిస్టమ్ ఆ దృశ్యాలకు రక్షణగా ఉండాలి. నిర్వహణ కోసం సర్వర్ డౌన్లో ఉంటే (లేదా ఏ కారణం అయినా), దాన్ని పరిష్కరించడానికి అదనపు గంటల తాత్కాలిక విండోను అనుమతించడాన్ని పరిగణించండి, తద్వారా చర్యలు ఆలస్యంగా సమర్పించబడతాయి మరియు ఇప్పటికీ లెక్కించబడతాయి. మీరు వినియోగదారులకు తెలియజేయడానికి కూడా ఎంచుకోవచ్చు, ప్రత్యేకించి పరిస్థితి కొనసాగుతున్న పరంపరను ప్రభావితం చేయగలిగితే. గమనిక: డేటాను మాన్యువల్గా పునరుద్ధరించగలిగే అడ్మిన్ బ్యాక్డోర్ను ఏర్పాటు చేయండి. బగ్లు అనివార్యం, మరియు కొంతమంది వినియోగదారులు మీ యాప్కు కాల్ చేస్తారు లేదా వారు నియంత్రించలేని కారణంగా వారి పరంపర విరిగిపోయిందని మద్దతునిస్తారు. విచారణ తర్వాత, వినియోగదారు సరైనది అయితే మీరు స్ట్రీక్లను మాన్యువల్గా పునరుద్ధరించగలరు. తీర్మానం ఒక విషయం స్పష్టంగా ఉంది: మానవ మనస్తత్వశాస్త్రం ప్రాథమిక స్థాయిలో ఎలా పనిచేస్తుందనే కారణంగా స్ట్రీక్స్ నిజంగా శక్తివంతమైనవి. వినియోగదారులు స్పృహతో ఆలోచించని ఉత్తమ స్ట్రీక్ సిస్టమ్. పళ్ళు తోముకోవడం వంటి తక్షణ ఫలితాలు లేదా కనిపించే పురోగతికి ఇది ఒక రొటీన్గా మారింది, ఇది సాధారణ అలవాటుగా మారుతుంది. మరియు నేను ఇప్పుడే చెప్పబోతున్నాను: అన్ని ఉత్పత్తులకు స్ట్రీక్ సిస్టమ్ అవసరం లేదు. మీరు రోజువారీ క్రియాశీల వినియోగదారులను కోరుకుంటున్నందున మీరు నిజంగా స్థిరత్వాన్ని బలవంతం చేయాలా? సమాధానం చాలా బాగా "లేదు" కావచ్చు.