زه ډاډه یم چې تاسو د سټریکونو په اړه اوریدلي وي یا د یو سره اپلیکیشن کارولی وي. مګر کله مو فکر کړی چې ولې سټریکونه دومره مشهور او پیاوړي دي؟ ښه ، دلته یو څرګند دی چې ایپس ستاسو د امکان تر حده ډیر پام غواړي ، مګر د دې سربیره ، ایا تاسو پوهیږئ کله چې د زده کړې مشهور ایپ ډوولینګو د سټریکونو ښودلو لپاره iOS ویجټونه معرفي کړل ، د کارونکي ژمنتیا 60٪ لوړه شوه. شپیته سلنه په چلند کې لوی بدلون دی او ښیې چې څنګه د "سټریک" نمونې د ښکیلتیا او چلولو کارولو لپاره کارول کیدی شي. په خورا بنسټیز ډول، سټریک د پرله پسې ورځو شمیر دی چې یو کاروونکي یو ځانګړی فعالیت بشپړوي. ځینې خلک دا د "ګام شوي" عادت یا د ثابت کارونې هڅولو لپاره ډیزاین شوي میټریک په توګه هم تعریفوي. مګر سټریکس په اپلیکیشن کې د میټریک یا ریکارډ څخه هاخوا تیریږي؛ دا د هغې په پرتله ډیر رواني دی. د انسان جبلتونه د سمو عواملو سره د نفوذ کولو لپاره اسانه دي. دې درې فکتورونو ته وګورئ: پرمختګ، ویاړ، او د ورکیدو ویره (عموما د FOMO په نوم یادیږي). دا ټول څه مشترکات لري؟ هڅه. هرڅومره چې تاسو په یو څه کې ډیرې هڅې کوئ ، هومره دا ستاسو هویت ته شکل ورکوي ، او دا څنګه د چلند ارواپوهنې نړۍ ته لیکې تیریږي. اوس ، د لوی ځواک سره لوی مسؤلیت راځي ، او د دې له امله ، د لیکو لپاره تیاره اړخ شتون لري. پدې مقاله کې ، موږ به د اغیزمن سټریک سیسټم رامینځته کولو شاته اروا پوهنې ، UX او ډیزاین اصولو ته لاړ شو. موږ به وګورو (1) ولې زموږ مغز تقریبا په مستقیم ډول د سټریک فعالیت ته ځواب ورکوي، (2) څنګه د سټریکونو ډیزاین کول په داسې طریقو کې چې په ریښتینې توګه د کاروونکو سره مرسته کوي، او (3) تخنیکي کار چې د سټریک نمونې په جوړولو کې ښکیل دي. د سټریکس تر شا رواني پوهه د اغیزمن سټریک سیسټم ډیزاین او رامینځته کولو لپاره ، موږ اړتیا لرو پوه شو چې دا څنګه زموږ د دماغونو تار سره سمون لري. لکه، څه شی دا دومره اغیزمن کوي تر څو چې موږ د خپلو لیکو د ساتنې لپاره خورا شدید وقف احساس کوو؟ دلته درې په زړه پورې، ښه مستند شوي ارواپوهنې اصول شتون لري چې د هغه څه ملاتړ کوي چې سټریکس خورا پیاوړي او روږدي کوي. د تاوان مخنیوی دا شاید د سټریکس تر شا قوي ځواک وي. زه دا وایم ځکه چې ډیری وختونه ، تاسو نږدې نشئ کولی په ژوند کې له دې څخه مخنیوی وکړئ. د دې په اړه فکر وکړئ: که یو ملګری تاسو ته 100 ډالر درکړي، تاسو به خوشحاله شئ. مګر که تاسو د خپل بټو څخه $ 100 له لاسه ورکړي، نو دا به ډیر زیان ورسوي. د دې شرایطو احساساتي وزن مساوي ندي. تاوان د ګټې په پرتله ډیر درد کوي. راځئ چې دا نور هم واخلو او ووایه چې زه تاسو ته 100 ډالر درکوم او له تاسو څخه د قمار کولو غوښتنه کوم. 50% چانس شته چې تاسو نور $100 وګټئ او 50% چانس چې تاسو اصلي $100 له لاسه ورکړئ. ته به یې واخلې؟ زه به نه. ډیری خلک به نه وي. دا د تاوان مخنیوی دی. که تاسو په دې اړه فکر وکړئ، دا منطقي دی، دا د پوهیدو وړ دی، دا انسان دی. له لاسه ورکولو څخه د نفرت تر شا مفهوم دا دی چې موږ د یو څه له لاسه ورکولو درد دوه چنده د مساوي ارزښت ترلاسه کولو خوښۍ احساس کوو. په رواني شرایطو کې، زیان د لاسته راوړنو په پرتله ډیر دوام لري. تاسو شاید وګورئ چې دا څنګه د لیکونو سره تړاو لري. د پام وړ سلسله رامینځته کولو لپاره، دا هڅې ته اړتیا لري؛ لکه څنګه چې یو لیک وده کوي، د هغې تر شا انګیزه له منځه ځي؛ یا ډیر په سمه توګه، دا د ثانوي کیدو پیل کوي. دلته یو مثال دی: ووایه چې ستاسو ملګری د دوی په ایپل واچ کې د دوی "حرکت حلقې" بندولو لپاره درې ورځنۍ لړۍ لري. دوی د خپل هدف ترلاسه کولو او ثابت پاتې کیدو څخه پرته له لاسه ورکولو لپاره نږدې هیڅ نه لري. په ورته وخت کې، تاسو د 219 ورځو په زړه پورې جریان لرئ. امکانات دا دي چې تاسو د دې له لاسه ورکولو ویره کې ځړول شوي یاست. تاسو ډیری احتمال پدې وخت کې د لاسته راوړنې په اړه فکر نه کوئ؛ دا ستاسو د پانګې اچونې هڅې د ساتنې په اړه ډیر څه دي، او دا د تاوان مخنیوی دی. ډوولینګو تشریح کوي چې څنګه د زیان څخه نفرت د یو کارونکي لیوالتیا سره مرسته کوي چې د اوږدې لړۍ ماتولو لپاره ، حتی د دوی په خورا سست ورځو کې. په یو ډول، یو سټریک کولی شي په یو عادت بدل شي کله چې د ضایع کیدو څخه ډډه وشي. د فوګ چلند ماډل (B = MAP) اوس چې موږ په اوږده لیکو کې د پانګونې هڅې له لاسه ورکولو ویره پوهیږو، بله پوښتنه دا ده: څه شی موږ ته اړوي چې په لومړي ځای کې، ورځ په ورځ، حتی مخکې له دې چې سټریک لوی شي؟ دا هغه څه دي چې د فوګ چلند ماډل په اړه دی. دا نسبتا ساده ده. یو سلوک (B) یوازې هغه وخت رامینځته کیږي کله چې درې فکتورونه - هڅونه (M) ، وړتیا (A) ، او پرامپټ (P) - په ورته وخت کې سره سمون لري. په دې توګه، مساوات B=MAP. که چیرې د دې فکتورونو څخه کوم یو، حتی یو هم په دې وخت کې ورک وي، چلند به پیښ نشي. نو، د دې لپاره چې د سټریک سیسټم اغیزمن او تکرار شي، ټول درې فاکتورونه باید شتون ولري: هڅونه دا نازکه ده او نه هغه څه چې په دوامداره توګه شتون لري. داسې ورځې شتون لري کله چې تاسو یاستد هسپانوي زده کولو لپاره پمپ شوی، او هغه ورځې چې تاسو حتی د ژبې زده کولو لپاره د ارادې ځواک احساس نه کوئ. د عادت جوړولو لپاره پخپله هڅونه د باور وړ نه ده او له لومړۍ ورځې څخه یوه بایلونکې جګړه ده. د هڅونې د محدودیتونو د جبران کولو لپاره وړتیا، وړتیا مهمه ده. په دې شرایطو کې، وړتیا د عمل آسانتیا معنی لري، د بیلګې په توګه، هڅه دومره اسانه ده چې دا غیر واقعیت لري چې ووایی دا ممکنه نه ده. ډیری اطلاقات په قصدي توګه دا کاروي. د ایپل فټنس تاسو ته اړتیا لري چې په یو ساعت کې د یوې دقیقې لپاره ودریږئ ترڅو ستاسو د سټینډ هدف ته ټیک ترلاسه کړئ. Duolingo یوازې یو بشپړ شوي درس ته اړتیا لري. دا دندې دومره هڅو ته اړتیا نلري. خنډ دومره ټیټ دی چې حتی ستاسو په بدو ورځو کې تاسو کولی شئ دا ترسره کړئ. مګر د روانې لړۍ ګډه هڅه هغه ځای دی چیرې چې د دې سټریک له لاسه ورکولو مفکوره مینځ ته راځي. دا هغه څه دي چې مساوي بشپړوي. انسانان په طبیعي ډول هیر دي، نو هو، وړتیا موږ ته 90٪ ترلاسه کولی شي. مګر یو سمدستي موږ ته د عمل کولو یادونه کوي. سټریکونه د ډیزاین لخوا دوام لري، نو کاروونکي باید په دوامداره توګه د عمل کولو لپاره یادونه وکړي. د دې لپاره چې وګورئ چې پرامپټ څومره ځواکمن کیدی شي ، ډوولینګو د A/B ازموینه ترسره کړه ترڅو وګوري چې ایا د اپلیکیشن آئیکون کې یو څه سور بیج ثابت کارول ډیر کړي. دا په ورځني فعال کاروونکو کې 6٪ زیاتوالی رامینځته کړی. یوازې یو سور بیج. د ماډل محدودیتونه دا ټول ویل کیږي، د فوګ ماډل لپاره یو محدودیت شتون لري چیرې چې منتقدین او عصري څیړنې په ګوته کړي چې داسې ډیزاین چې خورا ډیر په اشارو باندې تکیه کوي، لکه تیریدونکي خبرتیاوې، د ذهني ستړیا خطر لري. دوامداره خبرتیاوې او اضافي وخت کولی شي د کاروونکو د مینځلو لامل شي. نو، دې ته پام وکړئ. د زیګرنیک اغیز تاسو څنګه احساس کوئ کله چې تاسو یوه پروژه نیمه سرته پریږدئ؟ دا ډیری خلک خپه کوي ځکه چې نیمګړې دندې د هغه شیانو په پرتله چې موږ یې بشپړ کوو ډیر ذهني ځای نیسي. کله چې یو څه ترسره شي او لاړ شي، موږ یې هیر کوو. کله چې یو څه پاتې شي، دا زموږ په ذهنونو وزن کوي. همدا لامل دی چې ډیجیټل محصولات د مصنوعي پرمختګ شاخصونه کاروي، لکه د Upwork د پروفایل بشپړولو بار، ترڅو یو کارونکي ته خبر ورکړي چې د دوی پروفایل یوازې "60٪ بشپړ شوی" دی. دا کارونکي ته هڅوي چې هغه څه پای ته ورسوي چې دوی پیل کړي.
راځئ چې یو بل مثال وګورو. تاسو د ترسره کولو لیست ایپ کې پنځه دندې لرئ، او د ورځې په پای کې، تاسو یوازې څلور یې وګورئ لکه څنګه چې بشپړ شوي. زموږ څخه ډیری به د دې یوې نیمګړې دندې له امله د نیمګړتیا احساس وکړي. دا، په سمه توګه، د زیګرینیک اثر دی. د زیګارنیک تاثیر د ارواپوه بلوما زیګارنیک لخوا ښودل شوی ، هغه ویلي چې موږ د بشپړ شوي کارونو په پرتله نیمګړې دندې په خپل حافظه کې فعال ساتو. د سټریک نمونه په طبیعي ډول د UX ډیزاین کې دې ته نلیږي. راځئ چې ووایو تاسو د زده کړې لړۍ په 63 مه ورځ یاست. په دې وخت کې، تاسو د نامکمل سوداګرۍ په روانه بڼه کې یاست. ستاسو دماغ به په ندرت سره د دې په اړه هیر کړي ځکه چې دا ستاسو د ذهن په شا کې ناست دی. پدې مرحله کې ، ستاسو دماغ هغه څوک کیږي چې تاسو ته خبرتیاوې لیږي. کله چې تاسو دا رواني ځواکونه یوځای کړئ، تاسو په ریښتیا پوهیدل پیل کوئ چې ولې سټریکس یوازې د منظم اپلیکیشن ځانګړتیا نه ده؛ دوی د انساني چلند د بدلولو توان لري. مګر د کرښې په اوږدو کې چیرې - زه دقیقا نه شم ویلای کله چې دا د هرچا لپاره توپیر لري - شیان داسې یوې مرحلې ته رسي چیرې چې سټریک له "تفریح" څخه هغه څه ته بدلیږي چې تاسو یې احساس کوئ تاسو یې له لاسه ورکولو توان نه لرئ. تاسو نه غواړئ چې د 58 ورځو هڅې ضایع شي، ایا تاسو؟ دا هغه څه دي چې د سټریک سیسټم اغیزمن کوي. که سم ترسره شي، سټریکس د کاروونکو سره د حیرانتیا وړ عادتونو رامینځته کولو کې مرسته کوي چې هدف پوره کړي. دا کیدی شي هره ورځ لوستل یا په دوامداره توګه جم ته وهل وي. دا تکراري کړنې (کله ناکله کوچني) د وخت په تیریدو سره ترکیب کیږي او زموږ په ورځني ژوند کې څرګندیږي. مګر د هرې سکې دوه اړخونه شتون لري. د عادت او مجبوریت تر منځ پتلی کرښه که تاسو تعقیب کوئ، تاسو کولی شئ دمخه ووایاست چې د سیسټمونو سیسټمونو لپاره تیاره اړخ شتون لري. د عادت جوړول د تکرار هدف سره د دوام په اړه دي. په هرصورت، اجباري، په داسې هدف باندې د کار کولو دوام دی چې نور اړتیا نلري مګر د ویرې یا فشار څخه بهر ساتل کیږي. دا یو پتلی کرښه ده. تاسو هر سهار پرته له فکر کولو خپل غاښونه برش کړئ؛ دا اتوماتیک او عصبي دی، د ښه ساه اخیستلو روښانه هدف سره. دا یو سلسله ده چې یو ښه عادت جوړوي. د اخلاقي سټریک سیسټم کاروونکو ته د تنفس کولو ځای ورکوي. که، د کوم دلیل لپاره، تاسو په سهار کې برش نه کوئ، تاسو کولی شئ په ماسپښین کې برش کړئ. نیمګړتیا د اوږدې هڅې له لاسه ورکولو له ویرې پرته اجازه لري. مجبوریت برعکس لاره غوره کوي، په کوم کې چې یو سلسله تاسو اندیښمن کوي، تاسو د ګناه یا حتی ستړیا احساس کوئ، او ځینې وختونه داسې احساس کوي چې تاسو د هر څه سره سره هیڅ شی نه دی ترسره کړی.کار تاسو عمل نه کوئ ځکه چې تاسو غواړئ، مګر دا چې تاسو په غیر شعوري توګه ویره لرئ چې ستاسو پرمختګ صفر ته بیرته راګرځیدلی. یو چا حتی دا په بشپړ ډول بیان کړی، "ما احساس کاوه چې زه درغلۍ کوم، مګر په ساده ډول یې پروا نه کوله. زه پرته له خپل لیکه هیڅ نه یم". دا ښیي چې خورا سخت هولډ سټریکس کولی شي په یو فرد ولري. تر هغه حده چې کاروونکي د خپل ځان ارزښت د اصلي هدف یا دلیل په پرتله په خپل سري میټریک پورې تړلی پیل کوي چې دوی په لومړي ځای کې سټریک پیل کړی. سټریک هغه څه کیږي چې دوی څوک دي، نه یوازې هغه څه چې دوی یې کوي. یو ښه ډیزاین شوی اخلاقي سټریک سیسټم باید کارونکي ته د هڅونې په څیر احساس وکړي، نه فشار یا مکلفیت. دا د داخلي او خارجي هڅونې توازن پورې اړه لري. بهرنۍ انګیزه (بهرني انعامونه، د مجازاتو څخه ډډه کول) ممکن کاروونکي پیل کړي، مګر داخلي انګیزه (د شخصي هدف لپاره دنده ترسره کول لکه د هسپانوي زده کړه ځکه چې تاسو په ریښتیا سره غواړئ د یو عزیز سره اړیکه ونیسئ) د اوږدې مودې مصروفیت لپاره پیاوړی دی. یو ښه سیسټم باید د خارجي عناصرو په احتیاط کارولو سره د داخلي هڅونې په لور متوجه شي، د بیلګې په توګه، کاروونکو ته یادونه کوي چې دوی څومره لرې راغلي، دوی ته ګواښ نه کوي چې دوی به له لاسه ورکړي. یو ځل بیا، دا یو ښه کرښه ده. یو ساده ازموینه کله چې د سټریک سیسټم ډیزاین کول واقعیا یو څه وخت نیسي او فکر وکړئ چې ایا ستاسو محصولات د اضطراب لپاره د حلونو په پلورلو سره پیسې ګټي چې ستاسو محصول رامینځته کړی. که هو، یو لوړ چانس شتون لري چې تاسو د کاروونکو استحصال کوئ. نو بله پوښتنه رامنځ ته کیږي، که زه د سټریک کارولو انتخاب وکړم، زه څنګه دا په داسې طریقه ډیزاین کړم چې په ریښتیا سره د کاروونکو سره د دوی اهدافو په ترلاسه کولو کې مرسته وکړي؟ د ښه سټریک سیسټم ډیزاین UX زه باور لرم چې دا هغه ځای دی چیرې چې ډیری پروژې یا د اغیزمن سټریک سیسټم کیل کوي یا یې په بشپړ ډول ګډوډوي. راځئ چې د ښه سټریک ډیزاین ځینې UX اصولو ته لاړ شو. دا بې وسه وساتئ تاسو شاید دا دمخه اوریدلي وي ، شاید د اټومي عادتونو په څیر کتابونو کې ، مګر دا د یادونې وړ ده چې د عادتونو رامینځته کولو یوه له اسانه لارو څخه د عمل کوچني او اسانه کول دي. دا د وړتیا فاکتور سره ورته دی چې موږ یې د فوګ چلند ماډل څخه بحث کړی. د هر ډول سټریک ډیزاین لومړی قاعده باید اړین عمل ترسره کړي څومره چې د انسان په توګه ممکنه وي پداسې حال کې چې لاهم پرمختګ ترلاسه کوي. که یو ورځنی عمل د بشپړولو لپاره اراده ته اړتیا ولري، دا عمل به پنځه ورځې تیرې نه کړي. ولې؟ تاسو نشئ کولی په پرله پسې پنځه ورځې هڅول شئ. په قضیه کې: که تاسو د مراقبت اپلیکیشن چلوئ ، نو تاسو اړتیا نلرئ چې کاروونکي د 20 دقیقو ناستې څخه تیر کړئ یوازې د سټریک ساتلو لپاره. یوه دقیقه هڅه وکړئ، شاید حتی د دېرش ثانیو په څیر کوچنی وي. لکه څنګه چې ویل کیږي، د اوبو لږ څاڅکي ځواکمن سمندر جوړوي). وړې هڅې د وخت په تېرېدو سره په لویو لاسته راوړنو بدلېږي. دا باید هدف وي: رګونه لرې کړئ، په ځانګړې توګه کله چې شیبه ستونزمنه وي. کله چې کاروونکي فشار یا ستړي وي، دوی ته اجازه ورکړئ چې په ساده ډول ښکاره کول، حتی د څو ثانیو لپاره، د هڅو په توګه حساب کوي. روښانه لید فیډبیک چمتو کړئ انسانان د طبیعت له مخې بصري دي. ډیری وختونه، موږ باید د باور کولو لپاره یو څه وګورو؛ دلته د شیانو لیدلو ته اړتیا ده ترڅو دوی ښه پوه شي او شیان په لید کې واچوي. له همدې امله د سټریک نمونې اکثرا د لید عناصرو څخه کار اخلي لکه ګرافونه، چک مارکونه، د پرمختګ حلقې، او ګریډونه، د هڅو لیدلو لپاره. د GitHub د ونډې ګراف وګورئ. دا د دوامدارۍ ساده لید دی. بیا هم پراختیا کونکي دا د اکسیجن په څیر تنفس کوي.
کلیدي دا نه ده چې د سټریک سیسټم خلاص احساس کړي. دا باید ریښتیني او ترلاسه شوي احساس وکړي. د مثال په توګه، د Duolingo او Apple د فټنس فعالیت حلقې د سټریک په بشپړیدو کې د پاک انیمیشن ډیزاینونه کاروي، او GitHub د وخت په تیریدو سره د کارونکي ثابت تاریخي ډاټا ښیې.
ښه وخت وکاروئ ما مخکې یادونه وکړه چې انسانان په عمومي ډول د طبیعت له مخې هیر شوي دي، او دا اشاره کولی شي د مخ پر ودې حرکت ساتلو کې مرسته وکړي. پرته له اشارې، ډیری نوي کاروونکي هیر کړي چې دوام ومومي. ژوند کولی شي بوخت شي، انګیزه ورک شي، او شیان پیښیږي. حتی د اوږدې مودې کاروونکي د اشارو څخه ګټه پورته کوي، که څه هم ډیری وختونه، دوی دمخه د عادت لوپ کې تړل شوي دي. په هرصورت، حتی ترټولو ژمن کس کولی شي په ناڅاپي توګه یوه ورځ له لاسه ورکړي. ستاسو د سټریک سیسټم خورا حتما یادونه ته اړتیا لري. ترټولو کارول شوي پرامپټ یادداشتونه د فشار خبرتیاوې دي. وخت واقعیا مهم دی کله چې د فشار خبرتیاو سره کار کوي. د اپلیکیشن ډول هم مهم دی. د سهار په 9 بجو د خبرتیا لیږل چې ویل یې "تاسو نن تمرین نه دی کړی" د زده کړې اپلیکیشن لپاره خورا عجیب دی ځکه چې ډیری یې د ورځې په اوږدو کې د ترسره کولو لپاره شیان لري مخکې لدې چې دوی د درس بشپړولو په اړه فکر وکړي. که موږ د فټنس ایپ په اړه وغږیږو ، که څه هم ، دامعقول دی او شاید حتی تمه کیږي چې د ورځې دمخه یادونه وشي. د پش خبرتیاوې د ایپ کټګورۍ له مخې د پام وړ توپیر لري. د فټنس ایپسونه، د مثال په توګه، د سهار د خبرتیاو سره لوړ مصروفیت وګورئ (7-8 AM)، پداسې حال کې چې د تولید ایپس ممکن د ماسپښین په لومړیو کې ښه فعالیت وکړي. کلیدي دا ده چې ستاسو د اپلیکیشن وخت ستاسو د کاروونکو چلندونو پراساس ازموئ ، د دې پرځای چې فکر وکړئ شیان یو له اندازې سره سم دي. هغه څه چې د مراقبت ایپ لپاره کار کوي ممکن د کوډینګ ټریکر لپاره کار ونکړي. نورې عاجل میتودونه د اپلیکیشن آئیکون او حتی د ایپ ویجټونو کې سور نقطې دي. مطالعې توپیر لري، مګر اوسط سړی په ورځ کې د 50-150 ځله (PDF) ترمنځ خپل وسیله خلاصوي. که چیرې یو کاروونکي په اپلیکیشن یا ویجټ کې سور نقطه وګوري چې هرکله چې دوی خپل تلیفون خلاصوي اوسنی سټریک په ګوته کوي ، دا ژمنتیا زیاتوي. یوازې دا مه کوئ؛ پرامپټ باید د یادونې په توګه کار وکړي، نه ناګ. د میلونونو جشن ولمانځئ د سټریک سیسټم باید هڅه وکړي چې د احساساتو د بیا راژوندي کولو لپاره د میلې ډبرې ولمانځي، په ځانګړې توګه د کاروونکو لپاره چې په سټریک کې ژور وي. کله چې یو کاروونکي ورځ 7، ورځ 30، ورځ 50، ورځ 100، ورځ 365 وهي، تاسو باید له دې څخه لویه معامله وکړئ. لاسته راوړنې ومنئ - په ځانګړي توګه د اوږدې مودې کاروونکو لپاره.
لکه څنګه چې موږ مخکې ولیدل، Duolingo دا معلومه کړه او یو متحرک ګرافیک یې پلي کړ چې د کنفټي سره د میلمستونونو لمانځنه کوي. ځینې پلیټ فارمونه حتی د پام وړ بونس انعامونه ورکوي چې د کاروونکو هڅې تاییدوي. او دا د ایپسونو لپاره ګټور کیدی شي، لکه څنګه چې کاروونکي په ټولنیزو رسنیو کې په عامه توګه خپل میلونه شریکوي. بله ګټه هغه وړاندوینه ده چې هدف ته رسیدو دمخه راځي. دا یوازې دا نه دی چې سټریک په دوامداره توګه ژوندی وساتي؛ کاروونکي یو څه لري چې تمه لري. د فضل میکانیزمونه وکاروئ ژوند غیر متوقع دی. خلک ګډوډیږي. هر ښه سټریک سیسټم باید د نیمګړتیا تمه وکړي. د سټریک سیسټم لپاره یو له لوی رواني ګواښونو څخه یوازې د یوې ورکې ورځې وروسته صفر ته سخت بیا تنظیم کول دي. یو "اخلاقي" سټریک سیسټم باید کارونکي ته یو څه سست چمتو کړي. راځئ چې ووایو تاسو د 90 ورځو شطرنج زده کړې لړۍ لرئ. تاسو د دریو میاشتو لپاره دوامداره یاست، او یوه ورځ، ستاسو تلیفون د سفر په وخت کې مړ کیږي، او د دې په څیر، 90 0 کیږي - هرڅه، هغه ټولې هڅې، له منځه ځي، او پرمختګ له منځه ځي. کارونکي ممکن په بشپړ ډول ویجاړ شي. له پیل څخه د دې د بیا جوړولو فکر دومره بې رحمه دی چې هڅه یې ارزښت نلري. په بدترین ډول، یو کارن ممکن د ناکامۍ احساس کولو وروسته اپلیکیشن پریږدي. په خپل سټریک سیسټم کې د "فضل" میکانیزم اضافه کولو ته پام وکړئ:
Streak Freeze کاروونکو ته اجازه ورکوي چې په قصدي توګه پرته له جریمې یوه ورځ له لاسه ورکړي. اضافي وخت اجازه ورکړئ څو ساعته (2-3) مخکې له دې چې د بیا تنظیم کولو لپاره د معمول وخت نیټې څخه تیر شي. د خرابیدو موډلونه د سخت ریسیټ پرځای ، سټریک په لږ مقدار کې کمیږي ، د مثال په توګه ، د هرې یادې ورځې له سټریک څخه 10 ورځې کمیږي.
یو هڅونکی ټون وکاروئ راځئ چې دوه پیغامونه پرتله کړو چې کاروونکو ته ښودل شوي کله چې سټریک مات شي:
"تاسو خپله 42 ورځنۍ لړۍ له لاسه ورکړې، بیا پیل کړئ." "تاسو په مستقیم ډول د 42 ورځو لپاره ښکاره شوي. دا د نه منلو وړ پرمختګ دی! غواړئ یو ځل بیا هڅه وکړئ؟"
دواړه ورته معلومات وړاندې کوي، مګر احساساتي اغیزه توپیر لري. لومړی پیغام به ډیر احتمال ولري چې یو کاروونکي د خپګان احساس وکړي او د دوی پریښودو لامل شي. دوهم پیغام هغه څه لمانځي چې دمخه یې ترلاسه کړي او په نرمۍ سره کارونکي هڅوي چې بیا هڅه وکړي. د سټریک سیسټم ډیزاین ننګونې مخکې لدې چې موږ د سټریک سیسټم رامینځته کولو تخنیکي توضیحاتو ته لاړ شو ، تاسو باید د ننګونو څخه خبر اوسئ چې تاسو ورسره مخ کیدی شئ. شیان پیچلي کیدی شي، لکه څنګه چې تاسو تمه لرئ. د وخت زونونو اداره کول یو دلیل شتون لري چې ولې د وخت او نیټې اداره کول ترټولو ستونزمن مفکورې دي چې پراختیا کونکي ورسره معامله کوي. دلته فارمیټ کول، نړیوال کول، او نور ډیر څه په پام کې نیول دي. اجازه راکړئ له تاسو څخه وپوښتم: یوه ورځ څه شمیرل کیږي؟ موږ پوهیږو چې نړۍ په مختلف وخت زونونو کې تیریږي ، او لکه څنګه چې دا کافي ندي ، ځینې سیمې د ورځې د ر lightا خوندي کولو وخت (DST) لري چې په کال کې دوه ځله پیښیږي. تاسو حتی د دې څنډې قضیې اداره کول چیرته پیل کوئ؟ د سبا د "پیل" په توګه څه شمیرل کیږي؟ ځینې پراختیا کونکي هڅه کوي چې د یو مرکزي وخت زون په کارولو سره د دې څخه مخنیوی وکړي، لکه UTC. د ځینو کاروونکو لپاره، دا به سمې پایلې ترلاسه کړي، مګر د ځینو لپاره، دا ممکن یو ساعت، دوه ساعته، یا ډیر وي. دا تضاد د کارونکي تجربه خرابوي. کاروونکي لږ پروا کوي چې تاسو د پردې تر شا وخت څنګه اداره کوئ؛ یوازې دوی تمه لري چې که دوی د شپې په 11:40 بجو یو سټریک عمل ترسره کړي، نو دا باید په ورته وخت کې د دوی په شرایطو کې راجستر شي. تاسو باید "یوه ورځ" د کارونکي ځایی وخت زون پراساس تعریف کړئ، نه د سرور وخت. البته، تاسو کولی شئ په اسانۍ سره واخلئد ټولو کاروونکو لپاره په نیمه شپه UTC کې د نړۍ په کچه لارې او بیا تنظیم کړئ، مګر تاسو خورا بې انصافي رامینځته کوئ. په کالیفورنیا کې یو څوک تل د هغه چا په پرتله چې په لندن کې ژوند کوي د دندې بشپړولو لپاره اته اضافي ساعتونه لري. دا یو غیر عادلانه ډیزاین نیمګړتیا ده چې ځینې کاروونکو ته د دوی د موقعیت له امله سزا ورکوي. او څه شی که هغه سړی په لندن کې یوازې لیدنه وکړي، یو کار بشپړ کړي، بیا بل وخت زون ته راستون شي؟ د دې ټولو لپاره یو مؤثره حل دا دی چې له کاروونکو څخه وغواړي چې په ښکاره ډول د الوتنې پرمهال د دوی وخت زون تنظیم کړي (په غوره توګه د لومړي تصدیق وروسته). دا یو ښه نظر دی چې یو فرعي یادداشت پکې شامل کړئ چې د وخت زون معلومات چمتو کول یوازې د ایپ لپاره کارول کیږي ترڅو پرمختګ په سمه توګه تعقیب کړي ، د دې پرځای چې د شخصي پیژندل شوي ډیټا په توګه وکارول شي. او دا یو بل ښه نظر دی چې دا د بدلون وړ ترتیب کول دي. زه وړاندیز کوم چې هرڅوک په مستقیم ډول په اپلیکیشن کې د وخت زون منطق اداره کولو څخه ډډه وکړي. د آزموینې او ریښتینې نیټې کتابتونونه وکاروئ، لکه Moment.js یا pytz (Python) او داسې نور. د دې په څیر پیچلي شیانو لپاره د څرخ بیا رغولو ته اړتیا نشته. ورکې شوې ورځې او څنډې قضیې بله ننګونه چې تاسو یې باید په اړه اندیښنه ولرئ د کنټرول وړ څنډې قضیې دي لکه د کاروونکو ډیر خوب کول ، د سرور بند وخت ، ځنډ ، د شبکې ناکامي او داسې نور. د فضل میکانیزمونو مفکورې کارول، لکه څنګه چې موږ مخکې بحث وکړ، مرسته کولی شي. د دوه ساعتونو فضل کړکۍ ممکن د کارونکي او پراختیا کونکي دواړو سره مرسته وکړي ، پدې معنی چې کارونکي د ژوند د کنټرول نه وړ شرایطو لپاره په کلکه نه مجازات کیږي. د پراختیا کونکو لپاره ، د فضل کړکۍ په دې بې کنټروله شیبو کې ګټورې دي کله چې سرور د شپې په نیمایي کې ښکته کیږي. تر ټولو پورته، هیڅکله په پیرودونکي باور مه کوئ. تل د سرور اړخ کې تایید کړئ. سرور باید د حقیقت واحد سرچینه وي. د خیانت مخنیوی یوځل بیا ، زه نشم کولی پدې کافي فشار راوړم: ډاډ ترلاسه کړئ چې هرڅه د سرور اړخ تایید کړئ. کاروونکي انسانان دي، او انسانان ممکن درغلي وکړي که چیرې فرصت ورکړل شي. دا د نه منلو وړ ده. تاسو ممکن هڅه وکړئ:
د UTC مهال ویش سره ټولې کړنې ذخیره کول. پیرودونکی کولی شي خپل ځایی وخت واستوي، مګر سرور کولی شي سمدلاسه UTC ته واړوي او د سرور وخت سره اعتبار وکړي. په دې توګه، که د پیرودونکي مهال ویش په شکمن ډول لرې وي، سیسټم کولی شي دا د یوې تېروتنې په توګه رد کړي، او UI کولی شي د هغې مطابق ځواب ورکړي. د پیښې پراساس تعقیب کارول. په بل عبارت ، د میټاډاټا سره د هر عمل ریکارډ ذخیره کړئ پشمول د معلوماتو په شمول د کارونکي ID ، د ترسره شوي عمل ډول ، او د مهال ویش او وخت زون. دا د تایید سره مرسته کوي.
د سټریک سیسټم انجن جوړول دا د کوډ ټیوټوریل ندی ، نو زه به په تاسو باندې د کوډ ډمپ کولو څخه مخنیوی وکړم. زه به دا عملي وساتم او تشریح کړم چې څنګه شیان عموما د جوړښت ، جریان او اعتبار پورې د سټریک سیسټم انجن چلوي. اصلي معمارۍ لکه څنګه چې ما څو ځله ویلي دي، سرور د سټریک ډیټا لپاره د حقیقت واحد سرچینه جوړ کړئ. جوړښت کولی شي په سرور کې داسې یو څه پرمخ بوځي:
د هر کارونکي معلومات په ډیټابیس کې ذخیره کړئ. اوسنی سټریک ذخیره (د 0 په توګه ډیفالټ) د عدد په توګه ذخیره کړئ. د وخت زون غوره توب ذخیره کړئ، د بیلګې په توګه، د IANA Timezone تار (یا په ښکاره توګه د ځایی ټایم سټیمپ څخه یا په ښکاره ډول د کاروونکي څخه د دوی د وخت زون غوره کولو غوښتنه کولو سره). د مثال په توګه، "امریکا/نیویارک". ټول منطق اداره کړئ ترڅو معلومه کړي چې سټریک دوام لري یا ماتیږي، د وخت زون چک سره چې د کارونکي محلي وخت زون سره تړاو لري.
په ورته وخت کې، د پیرودونکي اړخ کې:
اوسنی سټریک ښکاره کړئ، معمولا د سرور څخه راوړل کیږي. سرور ته د میټاډاټا په شکل ترسره شوي عمل واستوئ ترڅو دا تصدیق کړي چې ایا کارونکي واقعیا د وړ سټریک عمل بشپړ کړی. د سرور ځوابونو پراساس بصری فیډبیک چمتو کړئ.
نو، په لنډه توګه، دماغ په سرور کې دی، او پیرودونکي د ښودلو موخو او د پیښو سپارلو لپاره دي. دا تاسو د ډیری ناکامیو او څنډې قضیې خوندي کوي ، او تازه معلومات او اصلاحات اسانه کوي. منطقي جریان راځئ چې د تګ لارې انډول وکړو چې څنګه د لږترلږه اغیزمن سټریک سیسټم انجن به لاړ شي کله چې یو کاروونکي یو عمل بشپړ کړي:
کارونکي د وړتیا لرونکی کړنلاره بشپړوي. پیرودونکي د میټاډاټا په توګه سرور ته پیښه لیږي. دا کیدی شي "د کارونکي X بشپړ عمل Y په وخت سټیمپ Z کې" وي. سرور دا پیښه ترلاسه کوي او بنسټیز تایید کوي. ایا دا یو ریښتینی کارن دی؟ ایا دوی مستند دي؟ ایا عمل د اعتبار وړ دی؟ ایا د وخت زون مطابقت لري؟ که دا تیریږي، سرور د ډیټابیس څخه د کاروونکي سټیک ډاټا بیرته ترلاسه کوي. بیا، د ترلاسه شوي عمل مهال ویش د کارونکي محلي وخت زون ته بدل کړئ. اجازه راکړئ چې سرور د کارونکي په محلي وخت زون کې د تقویم نیټې (نه ټایم سټیمپ) پرتله کړي: که دا هماغه ورځ وي، نو عمل بې ځایه دی او په کې هیڅ بدلون نشتهتار که دا بله ورځ وي، نو سټریک پراخیږي او د 1 لخوا زیاتیږي. که چیرې د یوې ورځې څخه زیات واټن شتون ولري، نو سټریک ماتیږي. په هرصورت، دا هغه ځای دی چې تاسو ممکن د فضل میخانیکونه پلي کړئ. که د فضل میکانیزم ورک شوی وي، نو بیا سټریک 1 ته بیا تنظیم کړئ.
که تاسو د هدف لاسته راوړنو لپاره تاریخي ډاټا خوندي کول غوره کړئ، نو بیا متغیرونه تازه کړئ لکه "د اوږدې مودې" یا "ټول فعالې ورځې". سرور بیا ډیټابیس تازه کوي او پیرودونکي ته ځواب ورکوي. داسې یو څه:
{ "اوسنۍ_سټریک": 48, "لږ_سترېک": 50, "ټول_فعال_ورځې": 120, "streak_extended": ریښتیا، }
د بلې اندازې په توګه، سرور باید یا بیا هڅه وکړي یا رد کړي او پیرودونکي ته خبر ورکړي کله چې د پروسې په جریان کې کوم څه ناکام شي. د مقاومت لپاره ودانۍ لکه څنګه چې مخکې یادونه وشوه، کاروونکي د بګ یا سرور بند وخت له امله د سټریک له لاسه ورکول خورا خطرناک UX دی، او کاروونکي تمه نلري چې د دې لپاره سقوط وکړي. پدې توګه ، ستاسو د سټریک سیسټم باید د دې سناریوګانو لپاره محافظت ولري. که چیرې سرور د ساتنې لپاره بند وي (یا کوم دلیل) ، په پام کې ونیسئ د اضافي ساعتونو لنډمهاله کړکۍ ته اجازه ورکړئ چې دا ثابت شي نو عملونه ناوخته سپارل کیدی شي او بیا هم شمیرل کیدی شي. تاسو کولی شئ کاروونکو ته خبرتیا هم وټاکئ، په ځانګړې توګه که وضعیت د روانې لړۍ اغیزه کولو وړ وي. یادونه: د اډمین شاته دروازه جوړه کړئ چیرې چې ډاټا په لاسي ډول بحال کیدی شي. کیګونه ناگزیر دي، او ځینې کاروونکي به ستاسو اپلیکیشن ته زنګ ووهي یا ملاتړ ته ورسیږي چې د دوی سټریک د دې دلیل لپاره مات شوی چې دوی نشي کولی کنټرول کړي. تاسو باید وړتیا ولرئ چې په لاسي ډول سټریکونه بیرته راوباسئ که چیرې د تحقیق وروسته ، کارونکي سم وي. پایله یو شی روښانه پاتې دی: سټریکونه واقعیا پیاوړي دي ځکه چې څنګه د انسان ارواپوهنه په بنسټیزه کچه کار کوي. دلته ترټولو غوره سټریک سیسټم هغه دی چې کاروونکي یې په شعوري توګه فکر نه کوي. دا د سمدستي پایلو یا څرګند پرمختګ معمول ګرځیدلی ، لکه د غاښونو برش کول ، کوم چې یو منظم عادت ګرځیدلی. او زه به یوازې دا ووایم: ټول محصولات د سټریک سیسټم ته اړتیا نلري. ایا تاسو باید واقعیا یوازې د دې لپاره چې تاسو ورځني فعال کاروونکي غواړئ دوام مجبور کړئ؟ ځواب ښايي ډېر ښه "نه" وي.