Kwa nini ni muhimu kuunda tena gurudumu?

Kwa nini ni muhimu kuunda tena gurudumu?

Siku nyingine nilihoji msanidi programu wa JavaScript ambaye alikuwa akiomba nafasi ya juu. Mwenzake, ambaye pia alikuwepo kwenye mahojiano hayo, alimwomba mgombeaji kuandika kipengele ambacho kingetuma ombi la HTTP na, ikiwa haitafaulu, ajaribu tena mara kadhaa.

Aliandika kanuni moja kwa moja kwenye ubao, hivyo itakuwa ya kutosha kuteka kitu takriban. Ikiwa angeonyesha tu kwamba alielewa vizuri jambo hilo, tungeridhika kabisa. Lakini, kwa bahati mbaya, hakuweza kupata suluhisho la mafanikio. Kisha sisi, tukiifanya kwa msisimko, tuliamua kuifanya kazi iwe rahisi kidogo na tukamwomba kugeuza kazi na kupiga simu kwenye kazi iliyojengwa juu ya ahadi.

Lakini ole! Ndiyo, ilikuwa dhahiri kwamba alikuwa amekutana na kanuni kama hizo hapo awali. Alijua kwa ujumla jinsi kila kitu kilifanya kazi huko. Tunachohitaji ni mchoro wa suluhisho linaloonyesha uelewa wa dhana. Hata hivyo, kanuni alizoandika mgombea huyo kwenye ubao huo zilikuwa ni upuuzi mtupu. Alikuwa na wazo lisilo wazi sana la ahadi gani zilikuwa kwenye JavaScript na hakuweza kueleza kwa nini zilihitajika. Kwa mdogo hii ingeweza kusamehewa, lakini hakuwa tena inafaa kwa nafasi ya mwandamizi. Je, msanidi programu huyu atawezaje kurekebisha hitilafu katika msururu changamano wa ahadi na kuwaeleza wengine ni nini hasa alifanya?

Wasanidi programu wanachukulia msimbo uliotengenezwa tayari kuwa dhahiri

Wakati wa mchakato wa maendeleo, tunakutana kila mara na nyenzo zinazoweza kuzaliana. Tunahamisha vipande vya msimbo ili tusilazimike kuviandika tena kila wakati. Ipasavyo, kwa kuzingatia umakini wetu wote kwenye sehemu muhimu, tunaangalia nambari iliyokamilishwa tunayofanya kazi nayo kama kitu kinachojidhihirisha - tunafikiria tu kuwa kila kitu kitafanya kazi kama inavyopaswa.

Na kwa kawaida hufanya kazi, lakini wakati mambo yanakuwa magumu, kuelewa mechanics zaidi kuliko kulipa.

Kwa hivyo, mgombea wetu wa nafasi ya msanidi mkuu alizingatia vitu vya ahadi kuwa dhahiri. Labda alikuwa na wazo la jinsi ya kushughulika nao wakati zinatokea mahali fulani kwenye nambari ya mtu mwingine, lakini hakuelewa kanuni ya jumla na hakuweza kurudia mwenyewe wakati wa mahojiano. Labda alikumbuka kipande hicho kwa moyo - sio ngumu sana:

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

Nilifanya pia - na labda sote tumeifanya wakati fulani. Walikariri tu kipande cha msimbo ili baadaye waweze kuitumia katika kazi zao, huku wakiwa na wazo la jumla la jinsi kila kitu kilifanya kazi hapo. Lakini ikiwa msanidi programu alielewa dhana hiyo kweli, hangelazimika kukumbuka chochote - angejua jinsi ya kuifanya, na angetoa kila kitu anachohitaji kwa msimbo kwa urahisi.

Rudi kwenye mizizi

Mnamo 2012, wakati utawala wa mifumo ya mbele ulikuwa bado haujaanzishwa, jQuery ilitawala ulimwengu, na nikasoma kitabu. Siri za JavaScript Ninja, kilichoandikwa na John Resig, muundaji wa jQuery.

Kitabu hufundisha msomaji jinsi ya kuunda jQuery yao wenyewe kutoka mwanzo na hutoa maarifa ya kipekee katika mchakato wa mawazo uliosababisha kuundwa kwa maktaba. Katika miaka ya hivi karibuni, jQuery imepoteza umaarufu wake wa zamani, lakini bado ninapendekeza sana kitabu. Kilichonivutia zaidi juu yake ni hisia ya kuendelea kwamba ningeweza kufikiria haya yote mimi mwenyewe. Hatua ambazo mwandishi alielezea zilionekana kuwa za kimantiki, wazi sana hivi kwamba nilianza kufikiria kuwa ningeweza kuunda jQuery kwa urahisi ikiwa ningeifikia.

Kwa kweli, kwa kweli nisingeweza kufanya kitu kama hiki - ningeamua kuwa ilikuwa ngumu sana. Suluhu zangu mwenyewe zingeonekana kuwa rahisi sana na zisizo na maana kufanya kazi, na ningekata tamaa. Ningeainisha jQuery kama vitu vinavyojidhihirisha, katika utendakazi sahihi ambao unahitaji tu kuamini kwa upofu. Baadaye, singepoteza wakati kuzama kwenye mitambo ya maktaba hii, lakini ningeitumia tu kama aina ya kisanduku cheusi.

Lakini kusoma kitabu hiki kulinifanya kuwa mtu tofauti. Nilianza kusoma msimbo wa chanzo na kugundua kuwa utekelezaji wa suluhisho nyingi kwa kweli ulikuwa wazi sana, hata dhahiri. Hapana, bila shaka, kufikiria kitu kama hiki peke yako ni hadithi tofauti. Lakini ni kusoma msimbo wa watu wengine na kutoa masuluhisho yaliyopo ambayo hutusaidia kupata kitu chetu.

Msukumo unaopata na mifumo unayoanza kugundua itakubadilisha kama msanidi programu. Utagundua kuwa maktaba hiyo nzuri ambayo unatumia kila wakati na ambayo umezoea kufikiria kama mabaki ya kichawi haifanyi kazi kwenye uchawi hata kidogo, lakini hutatua shida kwa busara na kwa busara.

Wakati mwingine utakuwa na pore juu ya kanuni, kuchambua hatua kwa hatua, lakini hii ni jinsi gani, kusonga katika hatua ndogo, thabiti, unaweza kurudia njia ya mwandishi kwenye suluhisho. Hii itakuruhusu kupiga mbizi zaidi katika mchakato wa usimbaji na kukupa ujasiri zaidi wa kupata suluhisho zako mwenyewe.

Nilipoanza kufanya kazi na ahadi, ilionekana kwangu kama uchawi safi. Kisha nikagundua kuwa zilitokana na simu zile zile, na ulimwengu wangu wa programu uligeuka chini. Kwa hivyo muundo, ambao madhumuni yake ni kutuokoa kutoka kwa callbacks, yenyewe inatekelezwa kwa kutumia callbacks?!

Hii ilinisaidia kulitazama jambo hilo kwa macho tofauti na kugundua kuwa hii sio sehemu ya kificho iliyo mbele yangu, ugumu wa kukataza ambao sitawahi kuuelewa maishani mwangu. Hizi ni mifumo tu ambayo inaweza kueleweka bila shida na udadisi unaostahili na kuzamishwa kwa kina. Hivi ndivyo watu hujifunza kuweka msimbo na kukua kama wasanidi.

Anzisha tena gurudumu hili

Kwa hivyo endelea na uunda upya magurudumu: andika msimbo wako wa kuunganisha data, unda ahadi ya nyumbani, au hata ufanye suluhisho lako la usimamizi wa serikali.
Haijalishi kwamba hakuna mtu atakayetumia haya yote - lakini sasa unajua jinsi ya kuifanya. Na ikiwa una fursa ya kutumia maendeleo kama haya katika miradi yako mwenyewe, basi hiyo ni nzuri kwa ujumla. Utaweza kuziendeleza na kujifunza kitu kingine.

Hoja hapa si kutuma msimbo wako kwa uzalishaji, lakini kujifunza kitu kipya. Kuandika utekelezaji wako mwenyewe wa suluhisho lililopo ni njia nzuri ya kujifunza kutoka kwa watayarishaji bora wa programu na hivyo kuboresha ujuzi wako.

Chanzo: mapenzi.com

Kuongeza maoni