ڪجھھ ترقي ڪرڻ لاء متفق نه ٿيو جيڪو توھان نه سمجھندا آھيو

ڪجھھ ترقي ڪرڻ لاء متفق نه ٿيو جيڪو توھان نه سمجھندا آھيو

2018 جي ​​شروعات کان وٺي، مان ٽيم تي ليڊ/باس/ليڊ ڊولپر جي پوزيشن تي فائز رهيو آهيان - ان کي سڏيو جيڪو توهان چاهيو ٿا، پر نقطو اهو آهي ته مان مڪمل طور تي ذميوار آهيان انهن مان هڪ ماڊل ۽ انهن سڀني ڊولپرز لاءِ جيڪي ڪم ڪن ٿا. انهيءَ تي. هي پوزيشن مون کي ترقي جي عمل تي هڪ نئون نقشو ڏئي ٿو، جيئن آئون وڌيڪ منصوبن ۾ ملوث آهيان ۽ وڌيڪ فعال طور تي فيصلو ڪرڻ ۾ ملوث آهيان. تازو، انهن ٻن شين جي مهرباني، مون کي اوچتو احساس ٿيو ته سمجھڻ جي ماپ ڪيتري قدر ڪوڊ ۽ ايپليڪيشن کي متاثر ڪري ٿي.

اهو نقطو جيڪو مان ٺاهڻ چاهيان ٿو اهو آهي ته ڪوڊ جو معيار (۽ فائنل پراڊڪٽ) ويجهڙائي سان لاڳاپيل آهي ته اهي ماڻهو ڪيئن باخبر آهن جيڪي ڪوڊ ٺاهي رهيا آهن ۽ لکي رهيا آهن اهي ڇا ڪري رهيا آهن.

توھان شايد ھاڻي سوچي رھيا آھيو، "مهرباني، ڪيپ. يقينن، اهو سٺو لڳندو ته توهان عام طور تي ڇا لکي رهيا آهيو. ٻي صورت ۾، توهان شايد بندر جي هڪ گروهه کي پنهنجي مرضي واري چابين کي مارڻ لاء ۽ ان کي ڇڏي ڏيو. ۽ توهان بلڪل صحيح آهيو. ان جي مطابق، مان ان کي سمجهي وٺان ٿو ته توهان محسوس ڪيو ته توهان ڇا ڪري رهيا آهيو ان بابت عام خيال هجڻ ضروري آهي. ان کي سمجھڻ جي صفر سطح سڏيو وڃي ٿو، ۽ اسان ان جو تفصيلي تجزيو نه ڪنداسين. اسان تفصيل سان ڏسنداسين ته توهان کي ڇا سمجهڻ جي ضرورت آهي ۽ اهو ڪيئن اثر انداز ٿئي ٿو فيصلا جيڪي توهان هر روز ڪندا آهيو. جيڪڏهن آئون اهي شيون اڳ ۾ ڄاڻان ها، ته اهو مون کي گهڻو وقت ضايع ڪرڻ ۽ قابل اعتراض ڪوڊ بچائي ها.

جيتوڻيڪ توھان ھيٺ ڏنل ڪوڊ جي ھڪڙي ھڪڙي لائن کي نه ڏسندا، مان اڃا تائين يقين ڪريان ٿو ته ھتي جيڪي ڪجھ چيو ويو آھي اھو اعلي معيار، ايڪسپريس ڪوڊ لکڻ لاء وڏي اهميت رکي ٿو.

سمجھڻ جي پهرين سطح: اهو ڪم ڇو نٿو ڪري؟

ڊولپر عام طور تي هن سطح تي پهچي ويندا آهن پنهنجي ڪيريئر ۾ تمام جلد، ڪڏهن ڪڏهن ٻين جي مدد کان سواءِ - گهٽ ۾ گهٽ منهنجي تجربي ۾. تصور ڪريو ته توهان کي هڪ بگ رپورٽ ملي آهي: ايپليڪيشن ۾ ڪجهه فنڪشن ڪم نٿو ڪري، ان کي درست ڪرڻ جي ضرورت آهي. توهان ڪيئن اڳتي وڌندا؟

معياري منصوبو هن طرح نظر اچي ٿو:

  1. ڪوڊ جو ٽڪرو ڳوليو جيڪو مسئلو پيدا ڪري رهيو آهي (اهو ڪيئن ڪجي اهو هڪ الڳ موضوع آهي، مان ان کي پنهنجي ڪتاب ۾ ورثي واري ڪوڊ بابت ڍڪيندو آهيان)
  2. ھن ٽڪري ۾ تبديليون آڻيو
  3. پڪ ڪريو ته بگ مقرر ٿيل آهي ۽ ڪو به ريگريشن غلطيون نه ٿيون آهن

هاڻي اچو ته ٻئي نقطي تي ڌيان ڏيو - ڪوڊ ۾ تبديليون ڪرڻ. هن عمل جا ٻه طريقا آهن. سڀ کان پهريان اهو معلوم ڪرڻ آهي ته موجوده ڪوڊ ۾ ڇا ٿي رهيو آهي، غلطي کي سڃاڻڻ ۽ ان کي درست ڪريو. ٻيو: محسوس ذريعي منتقل ڪريو - شامل ڪريو، چئو، +1 کي مشروط بيان يا لوپ ۾، ڏسو ته ڇا فنڪشن گهربل منظر ۾ ڪم ڪري ٿو، پوء ڪجھ ٻيو ڪوشش ڪريو، ۽ ائين ئي اشتهار لامحدود.

پهريون طريقو صحيح آهي. جيئن اسٽيو ميڪنيل پنهنجي ڪتاب ۾ وضاحت ڪري ٿو ڪوڊ مڪمل (جنهن جي مان تمام گهڻي سفارش ڪريان ٿو، رستي جي ذريعي)، هر وقت جڏهن اسان ڪوڊ ۾ ڪجهه تبديل ڪندا آهيون، اسان کي اعتماد سان پيش ڪرڻ جي قابل هوندو ته اهو ايپليڪيشن کي ڪيئن متاثر ڪندو. مان ميموري مان حوالو ڏئي رهيو آهيان، پر جيڪڏهن هڪ بگ فڪس ڪم نه ڪندو آهي طريقي سان توهان توقع ڪئي، توهان کي تمام گهڻو پريشان ٿيڻ گهرجي ۽ توهان کي پنهنجي سموري عمل جي منصوبي تي سوال ڪرڻ گهرجي.

اختصار ڪرڻ لاءِ جيڪو چيو ويو آهي، سٺو بگ فڪس ڪرڻ لاءِ جيڪو ڪوڊ جي معيار کي خراب نه ڪري، توهان کي ڪوڊ جي پوري ڍانچي ۽ مخصوص مسئلي جو ذريعو ٻنهي کي سمجهڻ جي ضرورت آهي.

سمجھ جو ٻيو سطح: اهو ڇو ڪم ڪري ٿو؟

هن سطح کي پوئين سطح جي ڀيٽ ۾ تمام گهٽ سمجهه ۾ اچي ٿو. مون، اڃا تائين هڪ نئين ڊولپر جي حيثيت ۾، منهنجي باس جي مهرباني، اهو سکيو، ۽ بعد ۾ بار بار معاملي جي جوهر کي نئين ايندڙن کي بيان ڪيو.

هن ڀيري، اچو ته تصور ڪريو ته توهان کي هڪ ئي وقت ٻه بگ رپورٽون مليون آهن: پهرين منظرنامو A بابت آهي، ٻيو منظر B بابت آهي. ٻنهي حالتن ۾، ڪجهه غلط ٿئي ٿو. انهي جي مطابق، توهان پهرين پهرين بگ کي حل ڪيو. اصولن کي استعمال ڪندي جيڪي اسان ليول XNUMX سمجھڻ لاءِ تيار ڪيا آھن، توھان ان مسئلي سان لاڳاپيل ڪوڊ کي ڳولھيو، اھو ڄاڻايو ته ڇو اھو ايپليڪيشن کي ان طريقي سان برتاءُ ڪرڻ جو سبب بڻجندو آھي جيڪو اھو منظر A ۾ ڪري ٿو، ۽ مناسب ترتيب ڏيو جيڪي توھان چاھيو نتيجو پيدا ڪن. . هر شي تمام سٺو ٿي رهيو آهي.

پوءِ توھان اڳتي وڌو منظر B ڏانھن. توھان ھڪڙي غلطي کي اڀار ڪرڻ جي ڪوشش ۾ منظر نامي کي ورجايو، پر حيرت! - ھاڻي سڀ ڪجھ ڪم ڪري ٿو جيئن اھو گھرجي. توهان جي اندازي جي تصديق ڪرڻ لاءِ، توهان بگ A تي ڪم ڪرڻ دوران ڪيل تبديلين کي رد ڪريو ٿا، ۽ بگ B واپس اچي ٿو. توهان جي بگ فڪس ٻنهي مسئلن کي حل ڪيو. خوش قسمت!

توهان ان ڳالهه تي بلڪل به اعتبار نه ڪيو. توهان منظرنامي A ۾ غلطي کي درست ڪرڻ جو هڪ طريقو وٺي آيا آهيو ۽ توهان کي خبر ناهي ته اهو منظر B لاءِ ڇو ڪم ڪيو آهي. هن مرحلي تي، اهو سوچڻ ڏاڍو پرجوش آهي ته ٻنهي ڪمن کي ڪاميابيءَ سان مڪمل ڪيو ويو آهي. اهو ڪافي منطقي آهي: نقطو غلطين کي ختم ڪرڻ هو، ڇا اهو ناهي؟ پر ڪم اڃا ختم نه ٿيو آهي: توهان کي اڃا تائين اهو سمجهڻو پوندو ته توهان جي عملن منظرنامي B ۾ غلطي کي درست ڪيو ڇو؟ ڇو ته اهو غلط اصولن تي ڪم ڪري رهيو آهي، ۽ پوء توهان کي ٻيو رستو ڳولڻ جي ضرورت پوندي. هتي اهڙن ڪيسن جا ٻه مثال آهن:

  • جيئن ته حل غلطي B جي مطابق نه ڪيو ويو، سڀني عنصرن کي حساب ۾ رکندي، توهان شايد اڻڄاڻ طور تي فنڪشن سي کي ٽوڙي ڇڏيو آهي.
  • اهو ممڪن آهي ته اتي هڪ ٽيون بگ پڻ لڪي رهيو آهي، ساڳئي فنڪشن سان لاڳاپيل، ۽ توهان جي بگ فڪس ان تي منحصر آهي سسٽم جي صحيح آپريشن لاء منظرنامي B ۾. هاڻي سڀ ڪجهه ٺيڪ نظر اچي ٿو، پر هڪ ڏينهن هي ٽيون بگ محسوس ڪيو ويندو ۽ طئي ڪيو ويندو. پوء منظر ۾ B غلطي ٻيهر ٿيندي، ۽ اهو سٺو آهي جيڪڏهن صرف اتي.

هي سڀ ڪوڊ ۾ افراتفري شامل ڪري ٿو ۽ هڪ ڏينهن توهان جي مٿي تي اچي ويندو - گهڻو ڪري سڀ کان وڌيڪ غير مناسب وقت تي. توهان کي پنهنجي قوت کي گڏ ڪرڻو پوندو پاڻ کي وقت گذارڻ تي مجبور ڪرڻ لاءِ اهو سمجهڻ ڇو ته سڀ ڪجهه ڪم ڪرڻ لڳي ٿو، پر اهو ان جي لائق آهي.

سمجھڻ جو ٽيون سطح: اهو ڇو ڪم ڪري ٿو؟

منهنجي تازي بصيرت بلڪل هن سطح سان تعلق رکي ٿي، ۽ شايد اهو ئي آهي جيڪو مون کي تمام گهڻو فائدو ڏئي ها جيڪڏهن مون کي اهو خيال اڳ ۾ اچي ها.

ان کي واضح ڪرڻ لاءِ، اچو ته هڪ مثال ڏسو: توهان جي ماڊل کي فنڪشن X سان مطابقت رکڻ جي ضرورت آهي. توهان خاص طور تي فنڪشن X کان واقف نه آهيو، پر توهان کي ٻڌايو ويو هو ته ان سان مطابقت رکڻ لاءِ توهان کي F فريم ورڪ استعمال ڪرڻ جي ضرورت آهي. ماڊلز جيڪي X سان ضم ٿين ٿا بلڪل ان سان گڏ ڪم ڪن ٿا.

توھان جو ڪوڊ پنھنجي زندگيءَ جي پھرين ڏينھن کان وٺي F فريم ورڪ سان رابطي ۾ نه رھيو آھي، تنھنڪري ان کي لاڳو ڪرڻ ايترو آسان نه ٿيندو. ان سان ماڊل جي ڪجهه حصن لاءِ سنگين نتيجا نڪرندا. تنهن هوندي، توهان پنهنجو پاڻ کي ترقي ۾ اڇلايو: توهان هفتي ڪوڊ لکڻ، ٽيسٽنگ، پائلٽ ورزن کي رول آئوٽ ڪرڻ، موٽ حاصل ڪرڻ، رجعت جي غلطين کي درست ڪرڻ، غير متوقع پيچيدگين کي دريافت ڪرڻ، اصل طور تي متفق ٿيل آخري وقت کي پورا نه ڪرڻ، ڪجهه وڌيڪ ڪوڊ لکڻ، ٽيسٽ، موٽڻ واري رابطي حاصل ڪرڻ، ريگريشن غلطين کي درست ڪرڻ - اهو سڀ ڪجهه F فريم ورڪ کي لاڳو ڪرڻ لاءِ.

۽ ڪنهن نقطي تي اوچتو توهان محسوس ڪيو - يا ٿي سگهي ٿو ڪنهن کان ٻڌو - ته شايد فريم ورڪ F توهان کي فيچر X سان مطابقت نه ڏيندو. ٿي سگهي ٿو اهو سڀ وقت ۽ ڪوشش ان لاءِ مڪمل طور تي غلط هئي.

اهڙو ئي واقعو هڪ دفعي هڪ پراجيڪٽ تي ڪم ڪرڻ دوران ٿيو جنهن لاءِ آئون ذميوار هئس. ائين ڇو ٿيو؟ ڇاڪاڻ ته مون کي ٿوري سمجھ هئي ته ڪهڙي فنڪشن X آهي ۽ ان جو تعلق فريم ورڪ F سان ڪيئن آهي. مون کي ڇا ڪرڻ گهرجي ها؟ ڊولپمينٽ ٽاسڪ کي تفويض ڪرڻ واري شخص کان پڇو ته واضح طور تي وضاحت ڪري ته ڪيئن عمل جو ارادو مطلوب نتيجو ڏانهن وٺي وڃي ٿو، بجاء صرف اهو ورجائڻ جي ته ٻين ماڊلز لاءِ ڇا ڪيو ويو يا ان لاءِ انهن جو لفظ کڻڻ ته هي اهو آهي جيڪو خاصيت X کي ڪرڻ جي ضرورت آهي.

هن منصوبي جي تجربي مون کي سيکاريو ته ترقي جي عمل کي شروع ڪرڻ کان انڪار ڪريون جيستائين اسان کي واضح سمجهه ۾ نه اچي ته اسان کي ڪجهه شيون ڪرڻ لاءِ ڇو چيو پيو وڃي. صاف انڪار ڪرڻ. جڏهن توهان هڪ ڪم حاصل ڪيو، پهريون تسلسل اهو آهي ته ان کي فوري طور تي وٺي وڃي ته جيئن وقت ضايع نه ٿئي. پر ”پراجيڪٽ کي منجمد ڪريو جيستائين اسان سڀني تفصيلن ۾ نه وڃون“ پاليسي شدت جي حڪم سان ضايع ٿيل وقت کي گهٽائي سگھي ٿي.

توڙي جو اهي توهان تي دٻاءُ وجهڻ جي ڪوشش ڪن، توهان کي ڪم شروع ڪرڻ لاءِ مجبور ڪن، جيتوڻيڪ توهان ان جو منطق نه ٿا سمجهو، مزاحمت ڪريو. پهرين، اهو معلوم ڪريو ته توهان کي اهڙو ڪم ڇو ڏنو پيو وڃي، ۽ فيصلو ڪيو ته ڇا اهو مقصد لاءِ صحيح رستو آهي. مون کي اهو سڀ ڪجهه مشڪل طريقي سان سکڻو پيو - مون کي اميد آهي ته منهنجو مثال انهن لاءِ زندگي آسان بڻائيندو جيڪي هي پڙهندا.

سمجھڻ جي چوٿين سطح: ؟؟؟

پروگرامنگ ۾ سکڻ لاءِ هميشه وڌيڪ هوندو آهي، ۽ مان سمجهان ٿو ته مون صرف سمجھڻ جي موضوع جي سطح کي ڇڪايو آهي. ڪوڊ سان ڪم ڪرڻ جي سالن ۾ توهان سمجھڻ جا ٻيا ڪهڙا درجا دريافت ڪيا آهن؟ توهان ڪهڙا فيصلا ڪيا جن جو ڪوڊ ۽ ايپليڪيشن جي معيار تي مثبت اثر پيو؟ ڪهڙا فيصلا غلط ثابت ٿيا ۽ توهان کي هڪ قيمتي سبق سيکاريو؟ تبصرن ۾ پنهنجو تجربو حصيداري ڪريو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو