هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

اچو ته بحث ڪريون ڇو ته CI اوزار ۽ CI مڪمل طور تي مختلف شيون آهن.

ڪهڙو درد CI حل ڪرڻ جو ارادو ڪيو آهي، اهو خيال ڪٿان آيو آهي، ڪهڙيون تازيون تصديقون آهن جيڪي اهو ڪم ڪري ٿو، اهو ڪيئن سمجهڻ گهرجي ته توهان وٽ هڪ مشق آهي ۽ صرف جينڪنز کي نصب نه ڪيو ويو آهي.

مسلسل انٽيگريشن بابت رپورٽ ٺاهڻ جو خيال هڪ سال اڳ ظاهر ٿيو، جڏهن آئون انٽرويو لاءِ وڃي رهيو هوس ۽ نوڪري ڳولي رهيو هوس. مون 10-15 ڪمپنين سان ڳالهايو، انهن مان صرف هڪ واضح طور تي جواب ڏيڻ جي قابل هئي ته CI ڇا آهي ۽ وضاحت ڪئي ته انهن ڪيئن محسوس ڪيو ته انهن وٽ اهو ناهي. باقي جينڪنز جي باري ۾ اڻ وڻندڙ ​​​​بکواس ڳالهائي رهيا هئا :) خير، اسان وٽ جينڪنز آهي، اهو ٺاهي ٿو، سي آء! رپورٽ جي دوران، مان اهو بيان ڪرڻ جي ڪوشش ڪندس ته مسلسل انٽيگريشن اصل ۾ ڇا آهي ۽ ڇو جينڪنز ۽ ساڳئي اوزار هن سان تمام گهڻو ڪمزور تعلق رکن ٿا.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

تنهن ڪري، عام طور تي ذهن ۾ اچي ٿو جڏهن توهان لفظ CI ٻڌي؟ گھڻا ماڻھو سوچندا جينڪنز، گيتلب سي آءِ، ٽريس وغيره.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

جيتوڻيڪ اسان ان کي گوگل ڪريون ٿا، اهو اسان کي اهي اوزار ڏيندو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

جيڪڏهن توهان پڇڻ کان واقف آهيو، ته پوءِ فوري طور تي اوزارن کي لسٽ ڪرڻ کان پوءِ، اهي توهان کي ٻڌائيندا ته سي آءِ آهي جڏهن توهان ٺاهيندا آهيو ۽ ٽيسٽ هلائيندا آهيو پل جي درخواست ۾ ڪمٽ لاءِ.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

مسلسل انضمام اوزارن جي باري ۾ نه آهي، نه هڪ شاخ ۾ ٽيسٽ سان گڏ اسيمبلين بابت! مسلسل انٽيگريشن نئين ڪوڊ جي تمام گهڻي انضمام جي مشق آهي ۽ ان کي استعمال ڪرڻ لاءِ جينڪنز، گيٽ ليب وغيره کي باهه ڏيڻ جي ڪا به ضرورت ناهي.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ان کان اڳ جو اسان اهو سمجهون ته هڪ مڪمل سي آءِ ڪيئن نظر اچي ٿو، اچو ته پهرين انهن ماڻهن جي حوالي سان غور ڪريون جيڪي ان سان گڏ آيا ۽ انهن دردن کي محسوس ڪريون، جن کي هو حل ڪرڻ جي ڪوشش ڪري رهيا هئا.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

۽ انهن هڪ ٽيم جي حيثيت سان گڏجي ڪم ڪرڻ جو درد حل ڪيو!

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

اچو ته ٽيمن ۾ ترقي ڪرڻ وقت ڊولپرز کي منهن ڏيڻ جي مشڪلاتن جا مثال ڏسو. هتي اسان وٽ هڪ پروجيڪٽ آهي، گٽ ۾ هڪ ماسٽر برانچ ۽ ٻه ڊولپر.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

۽ اهي ڪم تي ويا جيئن هرڪو گهڻو عرصو عادي ٿي چڪو هو. اسان شين جي وڏي منصوبي ۾ هڪ ڪم ورتو، هڪ خصوصيت شاخ ٺاهي، ۽ ڪوڊ لکيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ھڪڙي خصوصيت کي تيزيء سان ختم ڪيو ۽ ان کي ماسٽر ۾ ملائي ڇڏيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ٻئي کي وڌيڪ وقت جي ضرورت هئي، اهو بعد ۾ ضم ٿي ويو ۽ هڪ تڪرار سان ختم ٿي ويو. هاڻي، ڪاروبار جي ضرورتن جي خاصيتن کي لکڻ جي بدران، ڊولپر پنهنجو وقت ۽ توانائي خرچ ڪري ٿو تڪرار حل ڪرڻ.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

وڌيڪ ڏکيو اهو آهي ته توهان جي خاصيت کي هڪ عام ماسٽر سان گڏ ڪرڻ، وڌيڪ وقت اسان ان تي گذاريو. ۽ مون هن کي هڪ سادي مثال سان ڏيکاريو. اھو ھڪڙو مثال آھي جتي صرف 2 ڊولپر آھن، تصور ڪريو جيڪڏھن ھڪڙي ڪمپني ۾ 10 يا 15 يا 100 ماڻھو ھڪڙي ذخيرو ڏانھن لکن ٿا. توهان انهن سڀني تڪرارن کي حل ڪرڻ لاء چريو ٿي ويندا.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

اتي هڪ ٿورو مختلف صورت آهي. اسان وٽ هڪ ماسٽر آهي ۽ ڪجهه ڊولپرز ڪجهه ڪري رهيا آهن.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

انهن هڪ ٿلهو ٺاهيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

هڪ مري ويو، سڀ ڪجهه ٺيڪ هو، هن ڪم کي پاس ڪيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ٻئي ڊولپر، ساڳئي وقت، پنهنجي ڪم ۾ هٿ ڪيو. اچو ته هن ان کي جائزو وٺڻ لاء موڪليو. ڪيتريون ئي ڪمپنيون هڪ مشق آهي جنهن کي جائزو سڏيو ويندو آهي. هڪ طرف، هي مشق سٺو ۽ مفيد آهي، ٻئي طرف، اهو اسان کي ڪيترن ئي طريقن سان سست ڪري ٿو. اسان ان ۾ نه وينداسين، پر هتي هڪ بهترين مثال آهي جيڪو خراب جائزو ڪهاڻي ٿي سگهي ٿو. توهان نظرثاني لاءِ پلٽ جي درخواست جمع ڪئي آهي. ڊولپر لاءِ وڌيڪ ڪجھ به نه آھي. هو ڇا ڪرڻ شروع ڪري ٿو؟ هو ٻين ڪمن تي وٺڻ شروع ڪري ٿو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

هن عرصي دوران، ٻيو ڊولپر ڪجهه ٻيو ڪيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

پهرين هڪ ٽيون ڪم مڪمل ڪيو.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

۽ ڪجهه وقت کان پوء، هن جو جائزو ورتو ويو، ۽ هو شرطن تي اچڻ جي ڪوشش ڪري رهيو آهي. پوءِ ڇا پيو ٿئي؟ اهو تڪرار جي هڪ وڏي تعداد کي پڪڙي. ڇو؟ ڇاڪاڻ ته جڏهن هن جي ڇڪڻ جي درخواست نظرثاني ۾ لٽڪي رهي هئي، ڪيتريون ئي شيون اڳ ۾ ئي ڪوڊ ۾ تبديل ٿي چڪي هئي.

ڪهاڻيءَ کان علاوه تضادن سان گڏ، ڪميونيڪيشن سان به هڪ ڪهاڻي آهي. جڏهن توهان جو ٿريڊ جائزو تي لٽڪي رهيو آهي، جڏهن ته اهو ڪنهن شيءِ جو انتظار ڪري رهيو آهي، جڏهن ته توهان گهڻي وقت تائين هڪ فيچر تي ڪم ڪري رهيا آهيو، توهان ٽريڪ ڪرڻ بند ڪيو ته توهان جي سروس جي ڪوڊ بيس ۾ ٻيو ڇا بدلجي رهيو آهي. شايد جيڪو توھان ھاڻي حل ڪرڻ جي ڪوشش ڪري رھيا آھيو اھو ڪالھ ئي حل ٿي چڪو ھو ۽ توھان ڪجھ طريقو وٺي سگھوٿا ۽ ان کي ٻيهر استعمال ڪري سگھو ٿا. پر توهان اهو نه ڏسندا ڇو ته توهان هميشه هڪ پراڻي برانچ سان ڪم ڪري رهيا آهيو. ۽ ھي پراڻي برانچ ھميشه توھان جي نتيجي ۾ آھي توھان کي ضم ڪرڻ واري تڪرار کي حل ڪرڻو آھي.

اهو ظاهر ٿئي ٿو ته جيڪڏهن اسان هڪ ٽيم جي حيثيت سان ڪم ڪريون ٿا، يعني، هڪ ماڻهو نه آهي، پر 5-10 ماڻهو، پر XNUMX-XNUMX ماڻهو، پوء جيستائين اسان پنهنجو ڪوڊ ماسٽر ۾ شامل نه ڪندا آهيون، اسان کي وڌيڪ نقصان ٿيندو ڇو ته اسان کي آخرڪار ضرورت آهي. ڪجهه پوءِ ان کي ملائي. ۽ اسان وٽ وڌيڪ تڪرار آهن، ۽ پراڻو نسخو جنهن سان اسين ڪم ڪريون ٿا، اسان وٽ وڌيڪ مسئلا آهن.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

گڏجي ڪجهه ڪرڻ دردناڪ آهي! اسان هميشه هڪ ٻئي جي رستي ۾ حاصل ڪندا آهيون.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

اهو مسئلو 20 سال اڳ کان وڌيڪ محسوس ڪيو ويو. مون کي انتهائي پروگرامنگ ۾ مسلسل انضمام جي مشق جو پهريون ذڪر مليو.

انتهائي پروگرامنگ پهريون چست فريم ورڪ آهي. صفحو 96 ۾ ظاهر ٿيو. ۽ خيال اهو هو ته ڪجهه قسم جي پروگرامنگ عملن، منصوبابندي ۽ ٻين شين کي استعمال ڪيو وڃي، ته جيئن ترقي ممڪن طور تي لچڪدار هجي، ته جيئن اسان جلدي اسان جي گراهڪن جي ڪنهن به تبديلي يا ضرورتن جو جواب ڏئي سگهون. ۽ اهي 24 سال اڳ هن کي منهن ڏيڻ شروع ڪيو، ته جيڪڏهن توهان هڪ ڊگهي وقت لاء ڪجهه ڪندا آهيو، پوء توهان ان تي وڌيڪ وقت گذاريندا آهيو ڇو ته توهان ۾ تڪرار آهي.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ھاڻي اسان ان جملي جو تجزيو ڪنداسين ”مسلسل انضمام“ انفرادي طور. جيڪڏهن اسان ان کي سڌو سنئون ترجمو ڪريون ٿا، اسان کي مسلسل انضمام حاصل ٿئي ٿو. پر اهو ڪيترو مسلسل آهي بلڪل واضح ناهي؛ اهو تمام بيحد آهي. پر ان ۾ ڪيترو انضمام آهي اهو پڻ واضح ناهي.

۽ اهو ئي سبب آهي ته مان توهان کي هاڻي انتهائي پروگرامنگ جا حوالا ڏئي رهيو آهيان. ۽ اسان ٻنهي لفظن جو الڳ الڳ تجزيو ڪنداسين.

انٽيگريشن - جيئن مون اڳ ۾ چيو آهي، اسان ڪوشش ڪريون ٿا ته هر انجنيئر ڪوڊ جي جديد ورزن سان ڪم ڪري، ان ڪري هو ڪوشش ڪري ٿو ته جيترو ٿي سگهي پنهنجي ڪوڊ کي عام برانچ ۾ شامل ڪري، ته جيئن اهي ننڍيون شاخون هجن. ڇاڪاڻ ته جيڪڏهن اهي وڏا آهن، ته پوء اسان آساني سان هڪ هفتي لاء ضم ڪرڻ جي تڪرار سان پڪڙي سگهون ٿا. اهو خاص طور تي صحيح آهي جيڪڏهن اسان وٽ هڪ ڊگهو ڊولپمينٽ چڪر آهي جهڙوڪ آبشار، جتي ڊولپر ڪجهه وڏي خصوصيت کي ڪٽڻ لاء هڪ مهيني لاء هليو ويو. ۽ هو انضمام واري مرحلي ۾ تمام گهڻي عرصي تائين بيٺو رهندو.

انٽيگريشن اهو آهي جڏهن اسان پنهنجي برانچ کي وٺون ٿا ۽ ان کي ماسٽر سان ضم ڪريون ٿا، اسان ان کي ضم ڪريون ٿا. اتي ھڪڙو حتمي اختيار آھي جڏھن اسان ھڪڙو ٽرانس بيس ڊولپر آھيون، جتي اسان کي يقيني بڻائڻ جي ڪوشش ڪريون ٿا ته اسان فوري طور تي ماسٽر ڏانھن بغير ڪنھن اضافي شاخن جي لکندا آھيون.

عام طور تي، انضمام جو مطلب آهي توهان جو ڪوڊ کڻڻ ۽ ان کي ماسٽر ۾ ڇڪڻ.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

”مسلسل“ لفظ مان هتي ڇا مطلب آهي، تسلسل ڇا کي چئبو آهي؟ مشق جو مطلب آهي ته ڊولپر پنهنجي ڪوڊ کي جلدي ممڪن طور تي ضم ڪرڻ جي ڪوشش ڪري ٿو. هي هن جو مقصد آهي جڏهن ڪنهن به ڪم کي انجام ڏيو - هن جو ڪوڊ حاصل ڪرڻ لاء ماسٽر ۾ جلدي ممڪن طور تي. هڪ مثالي دنيا ۾، ڊولپرز اهو هر چند ڪلاڪن ۾ ڪندا. اھو آھي، توھان ھڪڙو ننڍڙو مسئلو وٺو ۽ ان کي ماسٽر ۾ ضم ڪريو. هر شي عظيم آهي. اھو اھو آھي جنھن لاء توھان ڪوشش ڪري رھيا آھيو. ۽ اهو مسلسل ٿيڻ گهرجي. جيئن ئي توهان ڪجهه ڪيو، توهان فوري طور تي ماسٽر ۾ وجهي ڇڏيو.

۽ ڊولپر جيڪو ڪجهه ٺاهيندو آهي ان جو ذميوار آهي جيڪو هن ڪيو ان کي ڪم ڪرڻ لاءِ ۽ ڪجهه به نه ٽوڙيو. هي آهي جتي ٽيسٽ ڪهاڻي عام طور تي نڪرندي آهي. اسان ڪجهه ٽيسٽ هلائڻ چاهيون ٿا اسان جي عزم تي، اسان جي ضم تي، انهي کي يقيني بڻائڻ لاءِ ته اهو ڪم ڪري ٿو. ۽ هي آهي جتي جينڪنز توهان جي مدد ڪري سگهي ٿي.

پر ڪهاڻين سان: اچو ته تبديلين کي ننڍيون ڪريون، اچو ته ڪمن کي ننڍا ڪريون، اچو ته ڪو مسئلو پيدا ڪريون ۽ فوري طور تي ڪنهن نه ڪنهن طرح ان کي ماسٽر ۾ شامل ڪرڻ جي ڪوشش ڪريون- ڪو جينڪنز هتي مدد نه ڪندو. ڇو ته جينڪنز صرف توهان کي ٽيسٽ هلائڻ ۾ مدد ڪندي.

توهان ان کان سواء ڪري سگهو ٿا. اهو توهان کي هرگز نقصان نه ڏيندو. ڇاڪاڻ ته مشق جو مقصد اهو آهي ته جيترو ٿي سگهي اندازو لڳايو، جيئن مستقبل ۾ ڪنهن به تڪرار تي گهڻو وقت ضايع نه ٿئي.

اچو ته تصور ڪريون ته ڪنهن سبب جي ڪري اسان 2020 ۾ انٽرنيٽ کان سواءِ آهيون. ۽ اسان مقامي طور تي ڪم ڪري رهيا آهيون. اسان وٽ جينڪنز ناهي. هي ٺيڪ آهي. توهان اڃا به اڳتي وڌو ۽ مقامي شاخ ٺاهي سگهو ٿا. توهان ان ۾ ڪجهه ڪوڊ لکيو. اسان 3-4 ڪلاڪن ۾ ڪم مڪمل ڪيو. اسان ماسٽر ڏانهن تبديل ڪيو، هڪ گٽ پل ڪيو، ۽ اسان جي شاخ کي اتي ملائي ڇڏيو. تيار. جيڪڏهن توهان اهو اڪثر ڪندا آهيو، مبارڪون هجن، توهان وٽ مسلسل انضمام آهي!

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

جديد دنيا ۾ ڪهڙو ثبوت آهي ته اهو توانائي خرچ ڪرڻ جي قابل آهي؟ ڇاڪاڻ ته عام طور تي اهو ڏکيو آهي. جيڪڏهن توهان هن طرح ڪم ڪرڻ جي ڪوشش ڪندا، توهان سمجهو ٿا ته هاڻي ڪجهه پلاننگ متاثر ٿيندي، توهان کي وڌيڪ وقت ڏيڻو پوندو ڪمن کي ختم ڪرڻ لاء. ڇو ته جيڪڏهن توهان انسان ڪريو ٿا ...، ته توهان جلدي شرطن تي پهچي نه سگهندا ۽، مطابق، مصيبت ۾ پئجي ويندا. توهان کي وڌيڪ مشق نه هوندي.

۽ اهو مهانگو ٿيندو. مسلسل انٽيگريشن استعمال ڪندي سڀاڻي کان فوري طور تي ڪم ڪرڻ ممڪن نه ٿيندو. اهو توهان کي استعمال ڪرڻ ۾ تمام گهڻو وقت وٺندو، اهو توهان کي تمام گهڻو وقت وٺندو ته ڪمن کي ختم ڪرڻ لاء استعمال ڪيو وڃي، اهو تمام گهڻو وقت وٺندو ته توهان جي نظرثاني جي مشق کي ٻيهر ڪرڻ لاء استعمال ڪيو وڃي، جيڪڏهن توهان وٽ آهي . ڇو ته اسان جو مقصد اڄ ان کي ڳرڻ آهي. ۽ جيڪڏهن توهان ٽن ڏينهن اندر هڪ جائزو وٺو، ته پوءِ توهان وٽ مسئلا آهن ۽ مسلسل انٽيگريشن توهان لاءِ ڪم نه ڪري رهيو آهي.

پر ڇا اسان وٽ هن وقت ڪو لاڳاپيل ثبوت آهي جيڪو اسان کي ٻڌائي ٿو ته هن مشق ۾ سيڙپڪاري جو مطلب آهي؟

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

پهرين شيء جيڪا منهنجي ذهن ۾ آئي اها هئي DevOps جي رياست. هي هڪ مطالعو آهي جنهن کي ماڻهو 7 سالن کان وٺي رهيا آهن. هاڻي اهي هڪ آزاد تنظيم جي طور تي ڪندا آهن، پر گوگل جي تحت.

۽ انهن جو 2018 مطالعو ڏيکاريو ڪمپنين جي وچ ۾ هڪ لاڳاپو جيڪي مختصر-رهندڙ شاخن کي استعمال ڪرڻ جي ڪوشش ڪن ٿيون جيڪي جلدي ضم ٿي وڃن ٿيون، اڪثر ضم ٿي وڃن ٿيون، ۽ بهتر آئي ٽي ڪارڪردگي اشارن آهن.

اهي اشارا ڇا آهن؟ اهي 4 ميٽرڪ آهن جيڪي انهن سڀني ڪمپنين کان وٺي رهيا آهن انهن جي سوالن ۾: مقرري جي تعدد، تبديلين لاء وقت جو وقت، سروس بحال ڪرڻ جو وقت، ناڪامي جي شرح تبديل ڪريو.

۽، سڀ کان پهريان، هي تعلق آهي، اسان ڄاڻون ٿا ته ڪمپنيون جيڪي اڪثر ماپ ڪن ٿيون انهن وٽ تمام بهتر ميٽرڪ آهن. ۽ انهن وٽ ڪمپنين جو هڪ ڀاڱو آهي ڪيترن ئي ڀاڱن ۾: اهي سست ڪمپنيون آهن جيڪي ڪجهه سست پيدا ڪن ٿيون، وچولي ڪارڪردگي، اعلي ڪارڪردگي ۽ اشراڪ. اشراف آهن Netflix، Amazon، جيڪي سپر تيز آهن، هر شي کي جلدي، سهڻي ۽ موثر طريقي سان ڪن ٿا.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

ٻي ڪهاڻي، جيڪا هڪ مهينو اڳ ٿي هئي. ٽيڪنالاجي Radar تي هڪ بهترين مضمون آهي Gitflow بابت. گٽ فلو ٻين سڀني کان مختلف آهي ان ۾ ان جون شاخون ڊگھيون آهن. اتي رليز شاخون آھن جيڪي ڊگھي وقت تائين رھنديون آھن، ۽ خاصيتون شاخون آھن جيڪي پڻ ڊگھي وقت تائين رھنديون آھن. ٽيڪنالاجي ريڊار تي هي مشق HOLD ڏانهن منتقل ڪيو ويو آهي. ڇو؟ ڇاڪاڻ ته ماڻهو انضمام جي درد کي منهن ڏئي ٿو.

جيڪڏهن توهان جي شاخ تمام گهڻي عرصي تائين رهي ٿي، اها پڪي ٿي وڃي ٿي، سڙي ٿي وڃي ٿي، ۽ اسان ان ۾ ڪنهن قسم جي تبديلي آڻڻ جي ڪوشش ۾ وڌيڪ وقت خرچ ڪرڻ شروع ڪريون ٿا.

۽ تازو ئي گيٽ فلو جي ليکڪ چيو ته جيڪڏهن توهان جو مقصد آهي مسلسل انضمام، جيڪڏهن توهان جو مقصد اهو آهي ته توهان چاهيو ٿا ته جيترو ٿي سگهي رول ڪريو، پوءِ گيٽ فلو هڪ خراب خيال آهي. هن الڳ الڳ مضمون ۾ شامل ڪيو ته جيڪڏهن توهان وٽ هڪ پس منظر آهي جتي توهان ان لاءِ ڪوشش ڪري سگهو ٿا، پوءِ گيٽ فلو توهان لاءِ ضرورت کان وڌيڪ آهي، ڇاڪاڻ ته گيٽ فلو توهان کي سست ڪندو، گيٽ فلو توهان لاءِ انضمام سان مسئلا پيدا ڪندو.

هن جو مطلب اهو ناهي ته Gitflow خراب آهي ۽ استعمال نه ٿيڻ گهرجي. اهو ٻين موقعن لاء آهي. مثال طور، جڏهن توهان کي خدمت يا ايپليڪيشن جي ڪيترن ئي ورزن کي سپورٽ ڪرڻ جي ضرورت آهي، يعني جتي توهان کي ڊگهي عرصي تائين سپورٽ جي ضرورت آهي.

پر جيڪڏهن توهان انهن ماڻهن سان ڳالهايو جيڪي اهڙين خدمتن کي سپورٽ ڪن ٿا، توهان کي تمام گهڻو درد ٻڌڻ ۾ ايندي ته اهو نسخو 3.2 هو، جيڪو 4 مهينا اڳ هو، پر اهو فيڪس ان ۾ شامل نه ڪيو ويو هو ۽ هاڻي ان کي ٺاهڻ لاء. توهان کي تبديلين جو هڪ گروپ ٺاهڻ جي ضرورت آهي. ۽ ھاڻي اھي وري بيٺا آھن، ۽ ھاڻي اھي ھڪ ھفتي تائين گھمندا رھيا آھن ڪجھ نئين خصوصيت کي لاڳو ڪرڻ جي ڪوشش ڪري رھيا آھن.

جيئن ته اليگزينڊر ڪووليف چيٽ ۾ صحيح طور تي نوٽ ڪيو، باهمي تعلق هڪ ئي سبب نه آهي. هي سچ آهي. اهو آهي، ڪو به سڌو واسطو ناهي ته جيڪڏهن توهان وٽ مسلسل انضمام آهي، ته پوء سڀئي ميٽرڪ عظيم هوندا. پر اتي ھڪڙو مثبت لاڳاپو آھي ته جيڪڏھن ھڪڙو ھڪڙو آھي، پوء گھڻو ڪري ٻيو بھ آھي. حقيقت ناهي، پر گهڻو ڪري. اهو صرف هڪ تعلق آهي.

هڪ مشق جي طور تي مسلسل انضمام، نه جينڪنز. آندري اليگزينڊروف

اهو لڳي ٿو ته اسان اڳ ۾ ئي ڪجهه ڪري رهيا آهيون، اهو لڳي ٿو ته اسان اڳ ۾ ئي ضم ٿي رهيا آهيون، پر اسان ڪيئن سمجهي سگهون ٿا ته اسان وٽ اڃا تائين مسلسل انضمام آهي، ته اسين اڪثر ڪري رهيا آهيون؟

Jez Humble ليکڪ آهي هينڊ بڪ، Accelerate، مسلسل پهچائڻ واري ويب سائيٽ، ۽ ڪتاب Continuous Delivery. هو هي امتحان پيش ڪري ٿو:

  • انجنيئر جو ڪوڊ هر روز ماسٽر تائين پهچي ٿو.
  • هر ڪم لاءِ توهان يونٽ ٽيسٽ هلائيندا آهيو.
  • ماسٽر ۾ تعمير ٿي ويو، اهو اٽڪل 10 منٽن ۾ طئي ڪيو ويو.

هن صلاح ڏني ته هن طرح هڪ ٽيسٽ استعمال ڪندي پڪ ڪرڻ لاءِ ته توهان وٽ ڪافي مشق آهي.

مون کي بعد ۾ ٿورڙي تڪراري لڳي. اهو آهي، جيڪڏهن توهان ان کي 10 منٽن ۾ درست ڪري سگهو ٿا، پوء توهان وٽ مسلسل انضمام آهي، اهو ٿورڙو عجيب لڳي ٿو، منهنجي خيال ۾، پر اهو احساس آهي. ڇو؟ ڇو ته جيڪڏهن توهان اڪثر منجهيل آهيو، ان جو مطلب آهي ته توهان جون تبديليون ننڍيون آهن. جيڪڏهن هڪ ننڍڙي تبديلي جو مطلب آهي ته توهان جي ماسٽر تعمير ڀڄي وئي آهي، پوء توهان هڪ مثال جلدي ڳولي سگهو ٿا ڇو ته تبديلي ننڍڙي آهي. هتي توهان وٽ هڪ ننڍڙو ميلاپ هو، ان ۾ 20-30 لائينون تبديل ٿي ويون. ۽، مطابق، توهان جلدي سمجهي سگهو ٿا ته ڪهڙو سبب هو، ڇاڪاڻ ته تبديليون ننڍيون آهن، توهان وٽ مسئلو ڳولڻ لاء تمام ننڍڙو علائقو آهي.

۽ جيتوڻيڪ اسان جو پروڊ ڇڏڻ کان پوءِ ڌار ٿي وڃي ٿو، پوءِ جيڪڏهن اسان وٽ مسلسل انٽيگريشن جي مشق آهي، ته اسان لاءِ عمل ڪرڻ تمام آسان آهي، ڇاڪاڻ ته تبديليون ننڍيون آهن. ها، اهو منصوبو متاثر ڪندو. هي ڏک ٿيندو. ۽، شايد، هن مشق ۾ سڀ کان وڌيڪ ڏکيو شيء ڪمن کي ٽوڙڻ لاء استعمال ڪرڻ آهي، اهو آهي، اهو ڪيئن ڪجي ته توهان ڪجهه وٺي سگهو ٿا ۽ ڪجهه ڪلاڪن ۾ ڪري سگهو ٿا ۽ ساڳئي وقت هڪ جائزو پاس ڪريو، جيڪڏهن توهان وٽ هڪ آهي. جائزو هڪ الڳ درد آهي.

يونٽ ٽيسٽ صرف هڪ اسسٽنٽ آهي جيڪو توهان کي سمجهڻ ۾ مدد ڪري ٿو ته ڇا توهان جو انضمام ڪامياب هو ۽ ڇا ڪجهه به نه ٽٽي ويو. منهنجي خيال ۾، اهو پڻ مڪمل طور تي لازمي ناهي، ڇاڪاڻ ته اهو مشق جو نقطو ناهي.

هي مسلسل انٽيگريشن جو مختصر تعارف آهي. اهو سڀ ڪجهه هن مشق ۾ آهي. مان سوالن لاءِ تيار آهيان.

مان صرف مختصر طور تي ٻيهر بيان ڪندس:

  • مسلسل انضمام جينڪنز نه آهي، اهو نه آهي Gitlab.
  • هي هڪ اوزار نه آهي، اهو هڪ مشق آهي ته اسان پنهنجي ڪوڊ کي ماسٽر ۾ ضم ڪري سگهون ٿا جيترو ممڪن آهي.
  • اسان اهو ان لاءِ ڪريون ٿا ته ان وڏي درد کان بچڻ لاءِ جيڪو مستقبل ۾ ضم ٿيڻ سان پيدا ٿئي ٿو، يعني، اسان کي هاڻي ٿورڙو درد محسوس ٿئي ٿو ته جيئن مستقبل ۾ وڌيڪ تجربو نه ٿئي. اهو سڄو نقطو آهي.
  • پاسي تي ڪوڊ ذريعي ڪميونيڪيشن آهي، پر مان تمام گهٽ ڏسندو آهيان، پر اهو پڻ آهي جنهن لاءِ ٺهيل هئي.

توهان جا سوال

غير ٺهڪندڙ ڪمن سان ڇا ڪجي؟

سڙڻ. ڇا مسئلو آهي؟ ڇا توهان هڪ مثال ڏئي سگهو ٿا ته ڪو ڪم آهي ۽ اهو ختم نه ٿيو آهي؟

اھڙا ڪم آھن جن کي لفظ ”مڪمل“ مان ختم نٿو ڪري سگھجي، مثال طور، اھي جن کي تمام گھڻي مهارت جي ضرورت آھي ۽ جن کي ھضمي نتيجو حاصل ڪرڻ لاءِ ھڪ مھيني دوران حقيقت ۾ حل ڪري سگھجي ٿو.

جيڪڏهن مان توهان کي صحيح سمجهان ته پوءِ ڪو وڏو ۽ پيچيده ڪم آهي، جنهن جو نتيجو رڳو هڪ مهيني ۾ نظر ايندو؟

ها اهو صحيح آهي. ها، اهو ممڪن ٿيندو ته نتيجن جو اندازو لڳائڻ هڪ مهيني کان اڳ نه.

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

ٺيڪ. پوءِ ڪهڙي ڳالهه آهي؟

روز ننڍين ننڍين شين کي مارڻ جو ڪهڙو فائدو؟

ها.

جيڪڏهن اهي ڪجهه ڀڃي، توهان ان کي فوري طور تي ڏسندا. توھان وٽ ھڪڙو ننڍڙو ٽڪرو آھي جيڪو ڪنھن شيء کي ڀڃي ڇڏيو آھي، اھو توھان لاء آسان آھي ان کي درست ڪرڻ. نقطي اهو آهي ته هڪ ننڍڙو ٽڪرا ملائڻ هاڻي ڪجهه هفتن ۾ وڏي شيء کي ضم ڪرڻ کان وڌيڪ آسان آهي. ۽ ٽيون نقطو اهو آهي ته ٻيا انجنيئر ڪوڊ جي موجوده ورزن سان ڪم ڪندا. اهي ڏسندا ته هتي ڪجهه لڏپلاڻ شامل ڪيا ويا آهن، ۽ پوء ڪجهه طريقو ظاهر ٿيو آهي ته اهي پڻ استعمال ڪرڻ چاهيندا. هرڪو ڏسندو ته توهان جي ڪوڊ ۾ ڇا ٿي رهيو آهي. اهو انهن ٽنهي شين لاء آهي جيڪو مشق ڪيو ويندو آهي.

مهرباني، مسئلو بند ٿي ويو آهي!

(Oleg Soroka) ڇا مان شامل ڪريان؟ توهان سڀ ڪجهه صحيح چيو، مان صرف هڪ جملو شامل ڪرڻ چاهيان ٿو.

سو.

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

اسان 4 ميٽرڪ بابت ڳالهايو جيڪي ڪامياب ڪمپنين کي پوئتي پيل ڪمپنين کان ڌار ڪن ٿا. اسان کي اڃا تائين رهڻو آهي انهن 4 ميٽرڪ کي ڏسڻ لاءِ. جيڪڏهن توهان جو سراسري ڪم مڪمل ٿيڻ ۾ هڪ مهينو لڳندو آهي، ته آئون هن ميٽرڪ تي پهرين ڌيان ڏيندس. مان پهريان ان کي 3 ڏينهن تائين گھٽائي ڇڏيندس. ۽ ان کان پوء مون مسلسل بابت سوچڻ شروع ڪيو.

ڇا مان توھان کي صحيح سمجھيو آھيان ته توھان سمجھو ٿا ته عام طور تي انجنيئرنگ جي طريقن ۾ سيڙپڪاري ڪرڻ جو ڪو به فائدو نه آھي جيڪڏھن ڪنھن ڪم کي مڪمل ٿيڻ ۾ مھينو لڳندو آھي؟

توهان وٽ مسلسل انضمام آهي. ۽ هڪ اهڙو موضوع آهي جنهن کي 10 منٽن ۾ توهان يا ته درست ڪري سگهو ٿا يا ان کي واپس رول ڪريو. تصور ڪريو ته توهان ان کي ختم ڪيو. ان کان علاوه، توهان وٽ پڻ مسلسل تعیناتي آهي، توهان ان کي پروڊ ڏانهن وڌايو ۽ صرف پوء محسوس ڪيو ته ڪجهه غلط ٿي ويو. ۽ توھان کي ان کي واپس ڪرڻ جي ضرورت آھي، پر توھان اڳ ۾ ئي پنھنجي ڊيٽابيس کي منتقل ڪيو آھي. توهان وٽ اڳ ۾ ئي ايندڙ ورزن جو ڊيٽابيس اسڪيما آهي، ان کان علاوه، توهان وٽ ڪجهه قسم جو بيڪ اپ پڻ هو، ۽ ڊيٽا پڻ اتي لکيل هئي.

۽ توهان وٽ ڪهڙو متبادل آهي؟ جيڪڏهن توهان ڪوڊ واپس ڪريو ٿا، ته اهو هاڻي هن تازه ڪاري ڊيٽابيس سان ڪم نٿو ڪري سگهي.

بنياد صرف اڳتي وڌي ٿو، ها.

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

عملن جي مڪمل حد ۾ مهارت حاصل ڪرڻ لاءِ جيڪي لڳاتار انضمام ۽ مسلسل ترسيل کي سپورٽ ڪن ٿا، اهو ڪافي ناهي ته صرف لکڻ سکڻ سکڻ.... پهرين، انهن مان تمام گهڻو ٿي سگهي ٿو، اهو غير عملي هوندو. ان سان گڏ ٻيا به ڪيترائي طريقا آهن جهڙوڪ سائنسي. اتي هڪ اهڙي مشق آهي، GitHub ان کي هڪ وقت ۾ مشهور ڪيو. اهو آهي جڏهن توهان وٽ هڪ ئي وقت تي هلندڙ پراڻو ڪوڊ ۽ نئون ڪوڊ آهي. اهو آهي جڏهن توهان هڪ نامڪمل خصوصيت ٺاهيندا آهيو، پر اهو ڪجهه قدر واپس ڪري سگهي ٿو: يا ته فنڪشن جي طور تي يا باقي API جي طور تي. توهان نئين ڪوڊ ۽ پراڻي ڪوڊ ٻنهي تي عمل ڪريو، ۽ انهن جي وچ ۾ فرق جو مقابلو ڪريو. ۽ جيڪڏھن ڪو فرق آھي، ته توھان ھن واقعي کي لاگ ان ڪريو. انهي طريقي سان توهان کي خبر آهي ته توهان وٽ هڪ نئين خاصيت آهي جيڪا پراڻي جي مٿان رول آئوٽ ڪرڻ لاءِ تيار آهي جيڪڏهن توهان ٻنهي جي وچ ۾ هڪ خاص وقت لاءِ اختلاف نه ڪيو آهي.

اهڙا سوين طريقا آهن. مان شروع ڪرڻ جي صلاح ڏيندس ٽرانس بيس ڊولپمينٽ سان. هوءَ مسلسل انٽيگريشن تي 100٪ نه آهي، پر عمل ساڳيا آهن، هڪ ٻئي کان سواءِ چڱيءَ طرح نٿا رهي سگهن.

ڇا توهان ٽرانس بيس ڊولپمينٽ کي مثال طور ڏنو آهي جتي توهان عمل ڏسي سگهو ٿا يا توهان ماڻهن کي ٽرانس بيس ڊبلپمينٽ استعمال ڪرڻ شروع ڪرڻ جي صلاح ڏيو ٿا؟

هڪ نظر رکو، ڇاڪاڻ ته اهي ان کي استعمال ڪرڻ جي قابل نه هوندا. ان کي استعمال ڪرڻ لاء، توهان کي تمام گهڻو پڙهڻ جي ضرورت آهي. ۽ جڏهن ڪو ماڻهو پڇي ٿو: "ڇا ڪجي هڪ فيچر سان جيڪو هڪ مهينو وٺندو آهي، ان جو مطلب اهو آهي ته هن ٽرانس بيس ڊولپمينٽ بابت نه پڙهيو آهي." مان اڃا تائين سفارش نه ڪندس. مان صرف ان موضوع تي ڌيان ڏيڻ جي صلاح ڏيندس ته ڪيئن صحيح طريقي سان وڏين ڪمن کي ننڍڙن ڪمن ۾ ورهايو وڃي. هي آهي تخريب جو جوهر.

Decomposition معمار جي اوزارن مان هڪ آهي. اسان پهريان تجزيو ڪندا آهيون، پوءِ ٺهڻ، پوءِ سنٿيسس، پوءِ انٽيگريشن. ۽ اهو سڀ ڪجهه اسان لاء ڪم ڪندو آهي. ۽ اسان کي اڃا تائين وڌائڻ جي ضرورت آهي مسلسل انضمام جي ذريعي decomposition. پهرين اسٽيج تي سوال پيدا ٿين ٿا، ۽ اسان اڳ ۾ ئي چوٿين اسٽيج جي باري ۾ ڳالهائي رهيا آهيون، يعني جيترا ڀيرا اسين انٽيگريشن ڪريون، اوترو بهتر. اهو ڪرڻ لاءِ اڃا تمام جلدي آهي؛ اهو سٺو لڳندو ته پهرين توهان جي مونولٿ کي ڪٽيو.

توهان کي ڪجهه آريگرام تي تير ۽ چوڪن جو تعداد ڪڍڻو پوندو. توهان اهو نٿا چئي سگهو ته هاڻي مان هڪ نئين ايپليڪيشن جو آرڪيٽيڪچرل ڊراگرام ڏيکاريندس ۽ هڪ چورس ڏيکاريندس، جنهن جي اندر ايپليڪيشن لاءِ سائو بٽڻ هوندو. ڪنهن به صورت ۾، اتي وڌيڪ چوڪن ۽ تير ٿيندو. هر ڊراگرام مون ڏٺو هو هڪ کان وڌيڪ. ۽ ٺهڪندڙ، جيتوڻيڪ گرافاتي نمائندگي جي سطح تي، اڳ ۾ ئي ٿي رهيو آهي. تنهن ڪري، چوڪن کي آزاد ڪري سگهجي ٿو. جيڪڏهن نه، پوء مون وٽ معمار لاء وڏا سوال آهن.

چيٽ مان هڪ سوال آهي: "جيڪڏهن هڪ جائزو لازمي آهي ۽ گهڻو وقت وٺندو آهي، شايد هڪ ڏينهن يا وڌيڪ؟"

توهان کي مشق سان مسئلا آهن. جائزو هڪ ڏينهن يا وڌيڪ نه هجڻ گهرجي. اها ساڳي ڪهاڻي آهي پوئين سوال جي، فقط ٿورو نرم. جيڪڏهن هڪ جائزو هڪ ڏينهن تائين هلندو آهي، ته گهڻو ڪري اهو جائزو ڪجهه وڏي تبديلي تي وڃي رهيو آهي. هن جو مطلب آهي ته ان کي ننڍو ڪرڻ جي ضرورت آهي. ٽرانس بيس ڊولپمينٽ ۾، جيڪو اوليگ سفارش ڪئي، اتي هڪ ڪهاڻي آهي جنهن کي مسلسل جائزو سڏيو ويندو آهي. هن جو خيال اهو آهي ته اسان اهڙي ننڍڙي ڇڪڻ جي درخواست مقصد جي بنياد تي ڪريون ٿا، ڇاڪاڻ ته اسان مسلسل ۽ ٿوري وقت ۾ ملائڻ جي ڪوشش ڪندا آهيون. ۽ اھڙيءَ طرح پل جي درخواست ھڪڙي خلاصي يا 10 لائينن کي تبديل ڪري ٿي. هن جائزي جي مهرباني، اهو اسان کي ڪجهه منٽ وٺندو آهي.

جيڪڏهن جائزو وٺندي هڪ ڏينهن يا وڌيڪ، ڪجهه غلط آهي. پهرين، توهان کي فن تعمير سان ڪجهه مسئلا هوندا. يا هي ڪوڊ جو هڪ وڏو ٽڪرو آهي، 1 لائينون، مثال طور. يا توهان جو فن تعمير ايترو پيچيده آهي ته ڪو ماڻهو ان کي سمجهي نٿو سگهي. اهو هڪ ٿورو پاسيرو مسئلو آهي، پر اهو پڻ حل ڪرڻو پوندو. ٿي سگهي ٿو ته ڪنهن به نظر ثاني جي ضرورت نه آهي. اسان کي ان باري ۾ پڻ سوچڻ گهرجي. جائزو اها شيء آهي جيڪا توهان کي سست ڪري ٿي. اهو عام طور تي ان جا فائدا آهن، پر توهان کي سمجهڻ جي ضرورت آهي ته توهان اهو ڇو ڪري رهيا آهيو. ڇا اھو ھڪڙو طريقو آھي توھان لاءِ جلدي معلومات پھچائڻ لاءِ، اھو ھڪڙو طريقو آھي توھان لاءِ ڪي معيار مقرر ڪرڻ جو اندروني طور تي يا ڇا؟ توهان کي اها ضرورت ڇو آهي؟ ڇاڪاڻ ته جائزو وٺڻ جي ضرورت آهي يا ته تمام جلدي يا مڪمل طور تي منسوخ ڪيو وڃي. اهو ٽرانس بيس ڊولپمينٽ وانگر آهي - ڪهاڻي تمام خوبصورت آهي، پر صرف بالغ ماڻهن لاءِ.

4 ميٽرڪ جي حوالي سان، مان اڃا تائين انهن کي هٽائڻ جي صلاح ڏيندس ته اهو سمجهڻ لاءِ ته هي ڇا ٿي وڃي ٿو. انگن کي ڏسو، تصوير کي ڏسو، هر شيء ڪيئن خراب آهي.

(دمتري) مان توهان سان ان بابت بحث ڪرڻ لاءِ تيار آهيان. انگ ۽ ميٽرڪ تمام عظيم آهن، عمل عظيم آهن. پر توهان کي سمجهڻ جي ضرورت آهي ته ڇا ڪاروبار ان جي ضرورت آهي. اهڙا ڪاروبار آهن جن کي تبديلي جي اهڙي رفتار جي ضرورت ناهي. مان ڄاڻان ٿو ڪمپنيون جتي تبديليون نه ٿيون ڪري سگهجن هر 15 منٽ. ۽ نه ڇاڪاڻ ته اهي تمام خراب آهن. هي هڪ اهڙي زندگي چڪر آهي. ۽ شاخن جي خصوصيت، ٽوگل خصوصيت ٺاهڻ لاء، توهان کي تمام گهڻي ڄاڻ جي ضرورت آهي.

اهو پيچيده آهي. جيڪڏھن توھان پڙھڻ چاھيو ٿا ڪهاڻي کي ٽوگل خصوصيت بابت وڌيڪ تفصيل سان، مان ان جي سفارش ڪريان ٿو https://trunkbaseddevelopment.com/. ۽ ٽگل فيچرز بابت مارٽن فولر جو ھڪڙو شاندار مضمون آھي: ڪھڙا قسم آھن، لائف سائيڪس وغيره. ٽوگل فيچر پيچيده آھي.

۽ توهان اڃا تائين سوال جو جواب نه ڏنو آهي: "جينڪنز جي ضرورت آهي يا نه؟"

جينکنز ڪنهن به صورت ۾ واقعي جي ضرورت ناهي. سنجيده جيتوڻيڪ، اوزار: جينڪنز، گيتلاب توهان کي سهولت آڻيندو. توهان ڏسندا ته اسيمبلي گڏ ٿيل آهي يا نه. اهي توهان جي مدد ڪري سگهن ٿا، پر اهي توهان کي مشق نه ڏيندا. اهي صرف توهان کي هڪ دائرو ڏئي سگھن ٿا - ٺيڪ، ٺيڪ نه. ۽ پوء، جيڪڏهن توهان ٽيسٽ پڻ لکندا آهيو، ڇو ته جيڪڏهن ڪو به امتحان نه آهي، ته اهو تقريبا بي معني آهي. تنهن ڪري، اهو ضروري آهي ڇو ته اهو وڌيڪ آسان آهي، پر عام طور تي توهان ان کان سواء رهي سگهو ٿا، توهان گهڻو ڪجهه نه وڃايو.

اهو آهي، جيڪڏهن توهان وٽ عمل آهي، ڇا اهو مطلب آهي ته توهان کي ان جي ضرورت ناهي؟

اهو درست آهي. مان سفارش ڪريان ٿو Jez Humble ٽيسٽ. اتي مون کي آخري نقطي ڏانهن هڪ مبهم رويو آهي. پر عام طور تي، جيڪڏهن توهان وٽ ٽي شيون آهن، توهان مسلسل ضم ڪندا آهيو، توهان ماسٽر ۾ ڪمن تي ٽيسٽ هلائيندا آهيو، توهان جلدي ماسٽر ۾ تعمير کي درست ڪريو، پوء شايد توهان کي ڪنهن ٻئي جي ضرورت ناهي.

جڏهن ته اسان شرڪت ڪندڙن کان سوالن جو انتظار ڪري رهيا آهيون، مون وٽ هڪ سوال آهي. اسان صرف پراڊڪٽ ڪوڊ بابت ڳالهائي رهيا هئاسين. ڇا توھان ان کي استعمال ڪيو آھي انفراسٹرڪچر ڪوڊ لاءِ؟ ڇا اهو ساڳيو ضابطو آهي، ڇا اهو ساڳيو اصول ۽ ساڳيو زندگي چڪر آهي، يا اتي مختلف زندگي چڪر ۽ اصول آهن؟ عام طور تي، جڏهن هرڪو مسلسل انٽيگريشن ۽ ترقي جي باري ۾ ڳالهائيندو آهي، هرڪو اهو وساري ٿو ته انفراسٽرڪچر ڪوڊ پڻ آهي. ۽ تازو ئي ان ۾ وڌيڪ اضافو ٿيو آهي. ۽ اهي سڀئي ضابطا اتي آڻڻ گهرجن؟

ائين به نه آهي ته اهو ٿيڻ گهرجي، اهو تمام سٺو هوندو، ڇاڪاڻ ته اهو ساڳيو طريقي سان زندگي آسان بڻائي ڇڏيندو. جيترو جلدي اسان ڪوڊ سان ڪم ڪندا آهيون، بش اسڪرپٽ سان نه، پر اسان وٽ عام ڪوڊ آهي.

اسٽاپ، اسٽاپ، هڪ بش اسڪرپٽ پڻ ڪوڊ آهي. منهنجي پراڻي پيار کي هٿ نه ڏيو.

ٺيڪ آهي، مان تنهنجي يادن کي نه ٽوڙيندس. مون کي بش سان ذاتي ناپسند آهي. اهو هر وقت بدصورت ۽ خوفناڪ ڀڃندو آهي. ۽ اهو اڪثر ڪري غير متوقع طور تي ڀڃندو آهي، ڇو ته مون کي اهو پسند ناهي. پر ٺيڪ آهي، چئو ته توهان وٽ بش ڪوڊ آهي. ٿي سگهي ٿو مان واقعي سمجهي نه سگهان ۽ اتي عام جاچ جا فريم ورڪ موجود آهن. مان صرف ڄاڻ ۾ نه آهيان. ۽ اسان کي ساڳيو فائدو حاصل آهي.

جيترو جلد اسان بنيادي ڍانچي سان ڪوڊ جي طور تي ڪم ڪريون ٿا، اسان سڀ ساڳيا مسئلا حاصل ڪندا آهيون جيئن ڊولپرز. ڪجهه مهينا اڳ، مون هڪ اهڙي صورتحال سان منهن ڪيو جتي هڪ همراهه مون کي 1 لائنن جي بيش لاءِ پل جي درخواست موڪلي. ۽ توھان 000 ڪلاڪن لاءِ نظرثاني تي پھچي وڃو. ساڳيا مسئلا پيدا ٿين ٿا. اهو اڃا تائين ڪوڊ آهي. ۽ اهو اڃا تائين هڪ تعاون آهي. اسان پل جي درخواست سان پڪڙي وڃون ٿا ۽ اسان حقيقت سان پڪڙي وڃون ٿا ته اسان ساڳئي بيش ۾ ساڳيو ضم ڪرڻ واري تڪرار کي حل ڪري رهيا آهيون، مثال طور.

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

جيڪڏهن ڪو ٻيو سوال آهي؟

مون کي هڪ سوال آهي. مان اوليگ سان بحث جاري رکڻ چاهيان ٿو. عام طور تي، مان سمجهان ٿو ته توهان صحيح آهيو، ته جيڪڏهن هڪ ڪم مڪمل ٿيڻ ۾ هڪ مهينو لڳندو آهي، پوء توهان کي فن تعمير جو مسئلو آهي، توهان کي تجزيي، ٺهڪندڙ، پلاننگ وغيره ۾ مسئلو آهي، پر مون کي اهو احساس آهي ته جيڪڏهن توهان شروع ڪيو. Continuous Integration جي مطابق زندگي گذارڻ جي ڪوشش ڪريو، پوءِ توهان منصوبابندي سان درد کي درست ڪرڻ شروع ڪندا، ڇو ته توهان ان کان ٻئي هنڌ پري نه ٿيندا.

(اوليگ) ها، اهو صحيح آهي. هي مشق ڪنهن ٻئي سنجيده ثقافت کي تبديل ڪرڻ واري عمل جي ڪوشش ۾ مقابلو آهي. سڀ کان مشڪل شيءِ عادتون آهن، خاص ڪري خراب عادتون. ۽ جيڪڏهن هن عمل کي لاڳو ڪرڻ لاء، توهان جي چوڌاري انهن جي عادتن ۾ هڪ سنگين تبديلي جي ضرورت آهي: ڊولپر، انتظام، پيداوار مينيجر، پوء تعجب توهان جي انتظار ۾ آهي.

اتي ڪهڙو تعجب ٿي سگهي ٿو؟ اچو ته توهان اهو فيصلو ڪيو ته توهان گهڻو ڪري ضم ڪنداسين. ۽ توھان وٽ ڪجھ ٻيون شيون آھن جيڪي انضمام سان ڳنڍيل آھن، مثال طور، نمونا. ۽ توهان جي ڪمپني ۾، مثال طور، هڪ پاليسي آهي ته هر نموني کي ڪنهن نه ڪنهن طريقي سان ڪنهن به قسم جي آرٽيڪل اسٽوريج سسٽم ۾ حساب ڪيو وڃي. ۽ اهو ڪجهه وقت وٺندو آهي. هڪ شخص کي باڪس چيڪ ڪرڻ جي ضرورت آهي ته هن، هڪ رليز مئنيجر جي حيثيت سان، هن نموني کي جانچيو آهي انهي کي يقيني بڻائڻ لاءِ ته اها پيداوار ۾ ڇڏڻ لاءِ تيار آهي. جيڪڏهن اهو 5-10-15 منٽ وٺندو آهي، پر توهان هفتي ۾ هڪ ڀيرو ترتيب ڏيو ٿا، پوء هفتي ۾ هڪ ڀيرو اڌ ڪلاڪ خرچ ڪرڻ هڪ ننڍڙو ٽيڪس آهي.

جيڪڏهن توهان ڪنٽينيوئس انٽيگريشن ڏينهن ۾ 10 ڀيرا ڪيو ٿا، ته پوءِ 10 ڀيرا 30 منٽن سان ضرب ڪرڻ جي ضرورت آهي. ۽ اھو ھن رليز مئنيجر جي ڪم ڪندڙ وقت جي مقدار کان وڌيڪ آھي. هو بس ائين ڪندي ٿڪجي پيو آهي. ڪجھ عملن لاءِ مقرر خرچ آھن. اهو ئي سڀ ڪجهه آهي.

۽ توهان کي يا ته هن قاعدي کي منسوخ ڪرڻ جي ضرورت آهي ته جيئن توهان هاڻي اهڙي گندگي نه ڪريو، يعني توهان دستي طور تي ڪنهن به شيءِ سان واسطو رکندڙ ڊگري تفويض نه ڪيو. توھان مڪمل طور تي ڀروسو ڪري رھيا آھيو تياري ٽيسٽ جي ڪجھ خودڪار سيٽ تي.

۽ جيڪڏهن توهان کي ڪنهن کان ثبوت جي ضرورت آهي، انهي ڪري ته باس ان تي دستخط ڪري، ۽ توهان واسيا جي چوڻ کان سواء پيداوار ۾ نه ٿا وڃو ته هو ان جي اجازت ڏئي ٿو، وغيره - اهو سڀ بيوقوف عملي جي رستي ۾ اچي ٿو. ڇو ته جيڪڏهن ٽيڪس سان لاڳاپيل ڪجهه سرگرميون آهن، ته هر شيء 100 ڀيرا وڌي ٿي. تنهن ڪري، شفٽ اڪثر ڪري هر ڪنهن کي خوشيء سان سلام نه ڪيو ويندو. ڇاڪاڻ ته ماڻهن جي عادتن کي تبديل ڪرڻ مشڪل آهي.

جڏهن ڪو ماڻهو پنهنجو معمولي ڪم ڪري ٿو، ته هو بغير سوچ ويچار جي ڪري ٿو. هن جو شعوري لوڊ صفر آهي. هو صرف ان سان گڏ راند ڪندو آهي، هن وٽ اڳ ۾ ئي هڪ چيڪ لسٽ آهي هن جي مٿي ۾، هن اهو هڪ هزار ڀيرا ڪيو آهي. ۽ جيئن ئي توهان اچو ۽ هن کي ٻڌايو: ”اچو ته هن مشق کي رد ڪريون ۽ سومر کان هڪ نئون متعارف ڪرايون،“ هن لاءِ اهو هڪ طاقتور شعوري بوجھ بڻجي وڃي ٿو. ۽ اهو هڪ ڀيرو هر ڪنهن وٽ اچي ٿو.

تنهن ڪري، سادو شيء، جيتوڻيڪ هرڪو هن عيش کي برداشت نه ڪري سگهي، پر اهو آهي جيڪو آئون هميشه ڪريان ٿو، اهو هيٺ ڏنل آهي. جيڪڏهن هڪ نئون منصوبو شروع ٿئي ٿو، ته عام طور تي سڀني غير آزمائشي عملن کي فوري طور تي هن منصوبي ۾ شامل ڪيو ويندو آهي. جڏهن ته پروجيڪٽ نوجوان آهي، اسان واقعي ڪنهن به شيءِ کي خطرو ناهي ڪيو. اڃا تائين ڪا به پيداوار ناهي، تباهه ڪرڻ لاء ڪجھ به ناهي. تنهن ڪري، ان کي تربيت طور استعمال ڪري سگهجي ٿو. اهو طريقو ڪم ڪري ٿو. پر نه سڀني ڪمپنين کي اهڙي منصوبن کي اڪثر شروع ڪرڻ جو موقعو آهي. جيتوڻيڪ اهو پڻ ٿورڙو عجيب آهي، ڇاڪاڻ ته هاڻي هڪ مڪمل ڊجيٽل تبديلي آهي، هر ڪنهن کي لازمي طور تي تجربا شروع ڪرڻ گهرجي ته جيئن مقابلي سان گڏ رهڻ لاء.

هتي توهان ان نتيجي تي پهتا آهيو ته توهان کي پهريان سمجهڻ گهرجي ته توهان کي ڇا ڪرڻ جي ضرورت آهي. دنيا مثالي ناهي، ۽ پيداوار به مثالي ناهي.

ها، اهي شيون هڪ ٻئي سان ڳنڍيل آهن.

ڪاروبار پڻ هميشه نه سمجھندا آهن ته انهن کي هن طريقي سان وڃڻ جي ضرورت آهي.

هڪ اهڙي صورتحال آهي جنهن ۾ ڪا به تبديلي ممڪن ناهي. اها صورتحال آهي جتي ٽيم تي وڌيڪ دٻاءُ آهي. ٽيم اڳ ۾ ئي ڪافي ساڙي وئي آهي. هن وٽ ڪنهن به تجربن لاءِ وقت نه آهي. اهي صبح کان شام تائين خاصيتن تي ڪم ڪن ٿا. ۽ انتظام گهٽ ۽ گهٽ خاصيتون آهن. وڌيڪ ۽ وڌيڪ گهربل آهن. اهڙي صورتحال ۾ ڪا به تبديلي ممڪن ناهي. ٽيم کي صرف اهو ئي چئي سگهجي ٿو ته سڀاڻي اسان ڪالهه وانگر ڪنداسين، اسان کي صرف ڪجهه وڌيڪ خاصيتون ٺاهڻ جي ضرورت آهي. انهي لحاظ کان، ڪنهن به عمل ۾ ڪا به منتقلي ممڪن ناهي. اها هڪ شاندار صورتحال آهي جڏهن ڪو به وقت نه هوندو آهي ته ڪهاڙي کي تيز ڪرڻ لاء، وڻن کي ڪٽڻ جي ضرورت آهي، تنهنڪري اهي ان کي ٿلهي ڪهي سان ڪٽيندا آهن. هتي ڪي به سادي ٽوٽڪا نه آهن.

(دمتري) مان چيٽ مان هڪ وضاحت پڙهي ويندس: ”پر اسان کي مختلف سطحن تي تمام گهڻي ٽيسٽ ڪوريج جي ضرورت آهي. ٽيسٽ لاءِ ڪيترو وقت مختص ڪيو ويو آهي؟ اهو ٿورڙو قيمتي آهي ۽ گهڻو وقت وٺندو آهي.

(Oleg) هي هڪ شاندار غلط فڪر آهي. توهان کي اعتماد ڏيڻ لاء ڪافي ٽيسٽ هجڻ گهرجي. مسلسل انٽيگريشن ڪا شيءِ ناهي جتي 100 سيڪڙو ٽيسٽون پهريان ڪيون وينديون آهن ۽ صرف پوءِ توهان هن مشق کي لاڳو ڪرڻ شروع ڪندا آهيو. مسلسل انضمام توهان جي شعوري لوڊ کي گهٽائي ٿو ان حقيقت جي ڪري ته هر هڪ تبديلي جيڪا توهان پنهنجي اکين سان ڏسندا آهيو اها ايتري واضح آهي ته توهان سمجهي رهيا آهيو ته ڇا اهو ڪجهه ٽوڙيندو يا نه، جيتوڻيڪ بغير ٽيسٽن جي. توھان جلدي پنھنجي سر ۾ ھن کي جانچ ڪري سگھو ٿا ڇو ته تبديليون ننڍيون آھن. جيتوڻيڪ توهان وٽ صرف دستياب ٽيسٽرز آهن، اهو انهن لاء پڻ آسان آهي. توهان ٻاهر ڦري ويا ۽ چيو: "ڏس، ڪجهه ڀڄي ويو آهي؟" انهن چيڪ ڪيو ۽ چيو، "نه، ڪجهه به خراب ناهي." ڇاڪاڻ ته جاچ ڪندڙ ڄاڻي ٿو ته ڪٿي ڏسڻ لاء. توهان وٽ ڪوڊ جي هڪ ٽڪرا سان لاڳاپيل هڪ ڪمٽ آهي. ۽ اهو مخصوص رويي سان استحصال ڪيو ويندو آهي.

هتي توهان، يقينا، سينگاريو.

(دمتري) مان هتي متفق نه آهيان. اتي ھڪڙو مشق آھي - ٽيسٽ تي مبني ترقي، جيڪو توھان کي ھن کان بچائيندو.

(اوليگ) خير، مان اڃا تائين ان نقطي تي نه پهتو آهيان. پهريون وهم اهو آهي ته توهان کي لکڻ جي ضرورت آهي 100٪ ٽيسٽ يا توهان کي ڪرڻ جي ضرورت ناهي مسلسل انٽيگريشن بلڪل. اهو سچ نه آهي. اهي ٻه متوازي عمل آهن. ۽ اهي سڌو سنئون انحصار نه آهن. توھان جي ٽيسٽ ڪوريج بھترين ھجڻ گھرجي. بهترين - ان جو مطلب اهو آهي ته توهان پاڻ کي يقين رکو ٿا ته ماسٽر جي معيار جنهن ۾ توهان جو ماسٽر ڪمٽ کان پوء رهي ٿو، توهان کي اجازت ڏئي ٿو اعتماد سان "تعينات" بٽڻ کي دٻايو هڪ شرابي جمعه جي شام تي. توهان هن کي ڪيئن حاصل ڪندا؟ جائزو ذريعي، ڪوريج ذريعي، سٺي نگراني ذريعي.

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

۽ تنهن ڪري، توهان هن حالت کي ڪيئن حاصل ڪندا جڏهن توهان جمعه جي شام تي تيار ٿي ويندا آهيو ۽ گهر وڃڻ هڪ ٻيو سوال آهي. ٿي سگهي ٿو ته توهان صرف هڪ جرئت وارو بدمعاش آهيو.

اچو ته ٿورڙو واپس وڃو مسلسل انضمام ڏانهن. اسان ٿوري مختلف پيچيده مشق ۾ ڀڄي ويا.

۽ ٻيو وهم اهو آهي ته ايم وي پي، اهي چون ٿا، جلدي ٿيڻ جي ضرورت آهي، تنهنڪري اتي ٽيسٽ جي ضرورت ناهي. يقينن ان طريقي سان نه. حقيقت اها آهي ته جڏهن توهان هڪ ايم وي پي ۾ هڪ صارف ڪهاڻي لکندا آهيو، توهان يا ته ان کي بال تي ترقي ڪري سگهو ٿا، اهو آهي، توهان ٻڌو آهي ته اتي ڪنهن قسم جي صارف ڪهاڻي هئي ۽ فوري طور تي ان کي ڪوڊ ڪرڻ لاء ڀڄي ويو، يا توهان TDD استعمال ڪندي ڪم ڪري سگهو ٿا. ۽ TDD جي مطابق، جيئن مشق ڏيکاري ٿو، اهو وڌيڪ نه وٺندو آهي، يعني ٽيسٽ هڪ طرفي اثر آهي. TDD جي مشق جاچ بابت نه آهي. ان جي باوجود جنهن کي سڏيو ويندو آهي ٽيسٽ هلائيندڙ ترقي، اهو سڀ ڪجهه ٽيسٽ بابت ناهي. اهو پڻ هڪ تعميراتي طريقو آهي. اهو هڪ طريقو آهي جيڪو لکڻ جي بلڪل ضرورت آهي ۽ نه لکڻ جيڪو گهربل آهي. اهو هڪ مشق آهي جيڪو توهان جي سوچ جي ايندڙ ورهاڱي تي ڌيان ڏيڻ جو هڪ ايپليڪيشن آرڪيٽيڪچر ٺاهڻ جي لحاظ کان.

تنهن ڪري، اهو ايترو آسان ناهي ته انهن مان نجات حاصل ڪرڻ لاء. MVP ۽ ٽيسٽ هڪ ٻئي جي تضاد نه ڪندا آھن. جيتوڻيڪ، بلڪه، ان جي برعڪس، جيڪڏهن توهان TDD مشق استعمال ڪندي MVP ڪندا آهيو، ته پوءِ توهان ان کي بهتر ۽ تيز ڪندا، ان جي ڀيٽ ۾ جيڪڏهن توهان بغير ڪنهن مشق جي ڪندا، پر هڪ بال تي.

هي هڪ تمام غير واضح ۽ پيچيده خيال آهي. جڏهن توهان اهو ٻڌو ته هاڻي آئون وڌيڪ ٽيسٽ لکندس ۽ ساڳئي وقت ڪجهه تيز ڪندس، اهو بلڪل غير مناسب لڳي ٿو.

(دمتري) هتي ڪيترائي ماڻهو، جڏهن اهي ايم وي پي کي سڏين ٿا، ماڻهو ڪجهه عام لکڻ لاء تمام سست آهن. ۽ اهي اڃا به مختلف شيون آهن. MVP کي ڪجهه خراب شيءِ ۾ تبديل ڪرڻ جي ڪا ضرورت ناهي جيڪا ڪم نٿي ڪري.

ها، ها، توهان صحيح آهيو.

۽ پوء اوچتو MVP پيداوار ۾.

ھميشه لاءِ.

۽ TDD تمام غير معمولي آواز آهي جڏهن توهان ٻڌو ٿا ته توهان ٽيسٽ لکندا آهيو ۽ وڌيڪ ڪم ڪرڻ لڳي ٿي. اهو آواز ڏاڍو عجيب آهي، پر حقيقت ۾ اهو تيزيء سان ڦري ٿو ۽ هن طريقي سان خوبصورت آهي. جڏهن توهان هڪ امتحان لکندا آهيو، توهان اڳ ۾ ئي توهان جي سر ۾ گهڻو سوچيو ته ڪوڊ کي سڏيو ويندو ۽ ڪيئن، انهي سان گڏ اسان ان مان ڪهڙي رويي جي توقع ڪندا آهيون. توهان صرف اهو نه چئو ته مون ڪجهه فنڪشن لکيو آهي ۽ اهو ڪجهه ڪري ٿو. پهرين ته توهان سوچيو ته هن کي اهڙيون حالتون آهن، هن کي اهڙي طرح سڏيو ويندو. توھان ھن کي ٽيسٽ سان ڍڪيندا آھيو ۽ ان مان توھان سمجھندا آھيو ته توھان جا انٽرفيس توھان جي ڪوڊ اندر ڪيئن نظر ايندا. ان جو فن تعمير تي وڏو اثر پيو. توهان جو ڪوڊ خود بخود وڌيڪ ماڊلر بڻجي ويندو آهي، ڇاڪاڻ ته توهان پهريان اهو سمجهڻ جي ڪوشش ڪندا ته توهان ان کي ڪيئن آزمائيندا، ۽ صرف پوءِ ان کي لکو.

مون کي TDD سان ڇا ٿيو هو ته ڪنهن موقعي تي مون هڪ روبي مرشد رکيو هو جڏهن مان اڃا تائين هڪ روبي پروگرامر هو. ۽ هو چوي ٿو: "اچو ته اهو ڪريون TDD جي مطابق." مون سوچيو: ”لعنت، هاڻي مون کي ڪجهه وڌيڪ لکڻو آهي. ۽ اسان اتفاق ڪيو ته ٻن هفتن اندر آئون TDD استعمال ڪندي Python ۾ سڀ ڪم ڪندڙ ڪوڊ لکندس. ٻن هفتن کان پوء، مون محسوس ڪيو ته مان واپس وڃڻ نه چاهيندس. هن کي هر هنڌ لاڳو ڪرڻ جي ٻن هفتن جي ڪوشش کان پوءِ، توهان محسوس ڪيو ته اهو ڪيترو آسان ٿي ويو آهي توهان لاءِ صرف سوچڻ. پر اهو واضح ناهي، تنهن ڪري مان سڀني کي صلاح ڏيان ٿو ته جيڪڏهن توهان محسوس ڪيو آهي ته TDD ڏکيو، وقت سازي ۽ غير ضروري آهي، صرف ٻن هفتن تائين ان سان گڏ رهڻ جي ڪوشش ڪريو. مون لاءِ ٻه ڪافي هئا.

(دمتري) اسان هن خيال کي انفراسٽرڪچر آپريشن جي نقطي نظر کان وڌائي سگهون ٿا. ان کان اڳ جو اسان ڪا به نئين شيءِ لانچ ڪندا آهيون، اسان مانيٽرنگ ڪندا آهيون ۽ پوءِ لانچ ڪندا آهيون. انهي صورت ۾، مانيٽرنگ اسان لاء عام جاچ بڻجي وڃي ٿي. ۽ مانيٽرنگ ذريعي ترقي آهي. پر تقريبن هرڪو چوي ٿو ته اهو ڊگهو آهي، مان سست آهيان، مون هڪ عارضي مسودو ٺاهيو. جيڪڏهن اسان عام مانيٽرنگ ڪئي آهي، اسان سمجھون ٿا سي آءِ سي سسٽم جي حالت. ۽ سي آءِ سسٽم جي تمام گهڻي نگراني آهي. اسان سسٽم جي حالت کي سمجهون ٿا، اسان سمجهون ٿا ته ان جي اندر ڇا آهي. ۽ ترقي جي دوران، اسان صرف سسٽم ٺاهي رهيا آهيون ته جيئن اهو گهربل حالت تائين پهچي.

اهي طريقا هڪ ڊگهي وقت تائين مشهور آهن. اسان ان بابت 4 سال اڳ بحث ڪيو. پر 4 سالن ۾ عملي طور ڪجھ به تبديل نه ڪيو آهي.

پر هن نوٽ تي، آئون سرڪاري بحث کي ختم ڪرڻ جو مشورو ڏيان ٿو.

وڊيو (ميڊيا عنصر طور داخل ڪيو ويو، پر ڪجهه سببن لاء ڪم نٿو ڪري):

https://youtu.be/zZ3qXVN3Oic

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

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