ڇو ته اهو ڪارائتو آهي ڦيٿين کي ٻيهر ايجاد ڪرڻ؟

ڇو ته اهو ڪارائتو آهي ڦيٿين کي ٻيهر ايجاد ڪرڻ؟

ٻئي ڏينهن مون هڪ جاوا اسڪرپٽ ڊولپر جو انٽرويو ڪيو جيڪو سينئر پوزيشن لاءِ درخواست ڏئي رهيو هو. هڪ ساٿي، جيڪو پڻ انٽرويو ۾ موجود هو، اميدوار کي هڪ فنڪشن لکڻ لاء چيو جيڪو هڪ HTTP درخواست ڪندو ۽، جيڪڏهن ناڪام ٿيو، ڪيترائي ڀيرا ٻيهر ڪوشش ڪريو.

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

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

ڊولپرز تيار ٿيل ڪوڊ پاڻمرادو سمجهن ٿا

ترقي جي عمل دوران، اسان کي مسلسل پيدا ٿيندڙ مواد سان منهن ڏيڻو پوي ٿو. اسان ڪوڊ جا ٽڪرا منتقل ڪريون ٿا ته جيئن اسان کي انهن کي هر ڀيري ٻيهر لکڻ جي ضرورت ناهي. ان جي مطابق، اسان جو سڄو ڌيان اهم حصن تي مرکوز ڪرڻ سان، اسان مڪمل ٿيل ڪوڊ کي ڏسون ٿا جنهن سان اسين ڪم ڪريون ٿا جيئن پاڻ کي واضح طور تي ڪم ڪريون ٿا - اسان صرف اهو سمجهون ٿا ته هر شي ڪم ڪندي جيئن ان کي گهرجي.

۽ عام طور تي اهو ڪم ڪندو آهي، پر جڏهن شيون مشڪل ٿي وينديون آهن، ميڪيڪل کي سمجهڻ کان وڌيڪ ادا ڪرڻ کان وڌيڪ.

اهڙيء طرح، اسان جي اميدوار سينئر ڊولپر جي پوزيشن لاء واعدو شين کي پاڻ کي ظاهر ڪيو وڃي. هن کي شايد اهو خيال هو ته انهن سان ڪيئن ڊيل ڪيو وڃي جڏهن اهي ڪنهن ٻئي جي ڪوڊ ۾ هجن، پر هو عام اصول کي سمجهي نه سگهيو ۽ انٽرويو دوران پاڻ کي ٻيهر نه ڏئي سگهيو. شايد هن اهو ٽڪرو دل سان ياد ڪيو آهي - اهو ايترو ڏکيو ناهي:

return new Promise((resolve, reject) => {
  functionWithCallback((err, result) => {
   return err ? reject(err) : resolve(result);
  });
});

مون اهو پڻ ڪيو - ۽ اسان شايد اهو سڀ ڪجهه وقت تي ڪيو آهي. انهن صرف ڪوڊ جو هڪ ٽڪرو ياد ڪيو ته جيئن اهي بعد ۾ ان کي پنهنجي ڪم ۾ استعمال ڪري سگهن، جڏهن ته صرف هڪ عام خيال آهي ته هر شي اتي ڪيئن ڪم ڪري ٿي. پر جيڪڏهن ڊولپر واقعي تصور کي سمجهي، هن کي ڪجهه به ياد رکڻ جي ضرورت نه هوندي - هو صرف اهو ڄاڻندو ته اهو ڪيئن ڪجي، ۽ آساني سان هر شي کي ٻيهر پيدا ڪري سگهندي جيڪا هن کي ڪوڊ ۾ گهربل هجي.

جڙيل ڏانهن واپس وڃو

2012 ۾، جڏهن فرنٽ-اينڊ فريم ورڪ جو تسلط اڃا قائم نه ٿيو هو، jQuery دنيا تي راڄ ڪيو، ۽ مون ڪتاب پڙهيو. جاوا اسڪرپٽ ننجا جا راز، ليکڪ جان ريگ پاران، jQuery جو خالق.

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

يقينن، حقيقت ۾ مون کي ائين ڪرڻ جي قابل نه هجي ها - مان فيصلو ڪريان ها ته اهو ناقابل برداشت ڏکيو هو. منهنجا پنهنجا حل ڪم ڪرڻ لاءِ تمام سادو ۽ بيوقوف نظر ايندا، ۽ مان ڇڏي ڏيندس. مان jQuery کي خود واضح شين جي طور تي درجه بندي ڪندس، صحيح عمل ۾ جن کي توهان کي صرف انڌو يقين ڪرڻ جي ضرورت آهي. تنهن کان پوءِ، مان هن لائبرريءَ جي ميڪانيڪيءَ ۾ گهڙڻ ۾ مشڪل سان وقت ضايع ڪندس، پر ان کي صرف هڪ قسم جي بليڪ باڪس طور استعمال ڪندس.

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

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

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

جڏهن مون پهريون ڀيرو واعدن سان ڪم ڪرڻ شروع ڪيو، اهو مون کي خالص جادو وانگر لڳي. پوءِ مون کي معلوم ٿيو ته اهي ساڳيا ڪال بڪ تي ٻڌل هئا، ۽ منهنجي پروگرامنگ دنيا الٽي ٿي وئي. تنهن ڪري اهو نمونو، جنهن جو مقصد اسان کي ڪال بڪ کان بچائڻ آهي، خود ڪال بڪ استعمال ڪندي لاڳو ڪيو ويو آهي؟!

هن مون کي مختلف اکين سان معاملي کي ڏسڻ ۾ مدد ڪئي ۽ اهو محسوس ڪيو ته هي منهنجي سامهون ڪوڊ جو ڪو غير معمولي ٽڪرو ناهي، ممنوع پيچيدگي جنهن کي مان پنهنجي زندگيء ۾ ڪڏهن به سمجهي نه سگھندس. اهي صرف نمونا آهن جيڪي بغير تجسس ۽ گہرے وسرندڙ مسئلن سان سمجهي سگهجن ٿيون. هي ڪيئن ماڻهو ڪوڊ ڪرڻ سکندا آهن ۽ ڊولپر جي حيثيت ۾ وڌندا آهن.

هن ڦيٿي reinvent

تنهن ڪري اڳتي وڌو ۽ ڦيٿن کي ٻيهر ٺاھيو: پنھنجو پنھنجو ڊيٽا بائنڊنگ ڪوڊ لکو، ھڪڙو گھربل واعدو ٺاھيو، يا پنھنجي رياست جي انتظام جو حل پڻ ٺاھيو.
اهو مسئلو ناهي ته ڪو به اهو سڀ ڪجهه استعمال نه ڪندو - پر هاڻي توهان کي خبر آهي ته اهو ڪيئن ڪجي. ۽ جيڪڏهن توهان وٽ موقعو آهي ته بعد ۾ توهان جي پنهنجي منصوبن ۾ اهڙي ترقيات استعمال ڪريو، پوء اهو عام طور تي عظيم آهي. توھان انھن کي ترقي ڪري سگھوٿا ۽ ٻيو ڪجھ سکندا.

هتي نقطو توهان جي ڪوڊ کي پيداوار ڏانهن موڪلڻ نه آهي، پر ڪجهه نئين سکڻ لاء. موجوده حل جو پنهنجو پاڻ تي عمل ڪرڻ لکڻ بهترين پروگرامرز کان سکڻ جو هڪ بهترين طريقو آهي ۽ اهڙيءَ طرح توهان جي صلاحيتن کي وڌايو.

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

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