Għaliex huwa utli li tivvinta mill-ġdid ir-roti?

Għaliex huwa utli li tivvinta mill-ġdid ir-roti?

Il-ġurnata l-oħra intervistajt żviluppatur JavaScript li kien qed japplika għal pożizzjoni għolja. Kollega, li kien preżenti wkoll għall-intervista, talab lill-kandidat biex jikteb funzjoni li tagħmel talba HTTP u, jekk ma tirnexxix, terġa 'tipprova diversi drabi.

Huwa kiteb il-kodiċi direttament fuq il-bord, għalhekk ikun biżżejjed li tiġbed xi ħaġa approssimattiva. Kieku sempliċement wera li fehem tajjeb x’inhi l- kwistjoni, konna nkunu sodisfatti pjuttost. Iżda, sfortunatament, ma setax isib soluzzjoni ta’ suċċess. Imbagħad aħna, b'ġibs għall-eċċitament, iddeċidejna li nagħmlu l-kompitu ftit aktar faċli u tlabtu jbiddel funzjoni b'callbacks f'funzjoni mibnija fuq wegħdiet.

Imma sfortunatament. Iva, kien ovvju li kien iltaqa 'ma' tali kodiċi qabel. Kien jaf b’mod ġenerali kif kollox kien jaħdem hemmhekk. Kulma għandna bżonn huwa skeċċ ta 'soluzzjoni li turi fehim tal-kunċett. Madankollu, il-kodiċi li kiteb il-kandidat fuq il-bord kien bla sens. Huwa kellu idea vaga ħafna ta 'x'wegħdiet kienu fil-JavaScript u ma setax verament jispjega għaliex kienu meħtieġa. Għal junior dan kien ikun ta’ maħfra, iżda ma kienx għadu adattat għall-pożizzjoni ta’ anzjan. Dan l-iżviluppatur kif se jkun jista’ jirranġa l-bugs f’katina kumplessa ta’ wegħdiet u jispjega lil ħaddieħor x’għamel eżattament?

L-iżviluppaturi jqisu li kodiċi lest huwa evidenti minnu nnifsu

Matul il-proċess ta 'żvilupp, aħna kontinwament niltaqgħu ma' materjali riproduċibbli. Aħna nittrasferixxu frammenti tal-kodiċi sabiex ma jkollnax għalfejn nerġgħu niktbuhom kull darba. Għaldaqstant, billi niffukaw l-attenzjoni kollha tagħna fuq il-partijiet ewlenin, inħarsu lejn il-kodiċi lest li naħdmu miegħu bħala xi ħaġa evidenti minnha nfisha - sempliċement nassumu li kollox se jaħdem kif suppost.

U normalment jaħdem, iżda meta l-affarijiet isiru diffiċli, il-fehim tal-mekkanika aktar milli jħallas.

Għalhekk, il-kandidat tagħna għall-pożizzjoni ta 'żviluppatur anzjan qies li l-oġġetti tal-wegħda kienu evidenti. Huwa probabbilment kellu idea ta 'kif jittrattahom meta jseħħu x'imkien fil-kodiċi ta' xi ħadd ieħor, iżda ma fehemx il-prinċipju ġenerali u ma setax jirrepetih huwa stess waqt l-intervista. Forsi ftakar il-framment bl-amment - mhuwiex daqshekk diffiċli:

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

Jien għamilha wkoll - u x'aktarx li lkoll għamilna f'xi punt. Sempliċement immemorizzaw biċċa kodiċi sabiex aktar tard ikunu jistgħu jużawha fix-xogħol tagħhom, filwaqt li kellhom biss idea ġenerali ta 'kif ħadem kollox hemmhekk. Imma jekk l-iżviluppatur jifhem tassew il-kunċett, ma jkollu jiftakar xejn - sempliċement ikun jaf kif jagħmel, u faċilment jirriproduċi dak kollu li kellu bżonn fil-kodiċi.

Mur lura għall-għeruq

Fl-2012, meta d-dominanza tal-oqfsa front-end kienet għadha ma ġietx stabbilita, jQuery iddeċidiet id-dinja, u qrajt il-ktieb Sigrieti tal-Ninja JavaScript, awtur ta' John Resig, kreatur ta' jQuery.

Il-ktieb jgħallem lill-qarrej kif joħloq il-jQuery tiegħu stess mill-bidu u jipprovdi ħarsa unika lejn il-proċess tal-ħsieb li wassal għall-ħolqien tal-librerija. F'dawn l-aħħar snin, jQuery tilef il-popolarità preċedenti tiegħu, iżda xorta nirrakkomanda ħafna l-ktieb. L-aktar li laqatni dwarha kien is-sentiment persistenti li stajt naħseb f’dan kollu jien. Il-passi li ddeskriva l-awtur tant dehru loġiċi, tant ċari li bdejt naħseb bis-serjetà li stajt faċilment noħloq jQuery jekk inkun biss niżel.

Naturalment, fil-verità ma kontx inkun kapaċi nagħmel xi ħaġa bħal din – kont iddeċidejt li kien diffiċli insopportabbilment. Is-soluzzjonijiet tiegħi stess ikunu jidhru wisq sempliċi u naive biex jaħdmu, u nieqaf. Nixtieq nikklassifika jQuery bħala affarijiet evidenti minnu nnifsu, li fl-operat korrett tagħhom għandek bżonn biss temmen bl-addoċċ. Sussegwentement, ma tantx kont naħli ħin nidħol fil-mekkaniżmi ta 'din il-librerija, iżda sempliċement nużaha bħala tip ta' kaxxa sewda.

Imma l-qari ta’ dan il-ktieb għamilni persuna differenti. Bdejt naqra l-kodiċi tas-sors u skoprejt li l-implimentazzjoni ta 'ħafna soluzzjonijiet kienet fil-fatt trasparenti ħafna, saħansitra ovvja. Le, ovvjament, li taħseb f'xi ħaġa bħal din waħdek hija storja differenti. Iżda qed tistudja l-kodiċi ta 'nies oħra u tirriproduċi soluzzjonijiet eżistenti li tgħinna noħorġu b'xi ħaġa tagħna stess.

L-ispirazzjoni li tikseb u l-mudelli li tibda tinnota se jbiddluk bħala żviluppatur. Issib li dik il-librerija mill-isbaħ li tuża kontinwament u li mdorri taħseb fiha bħala artifatt maġiku ma taħdimx fuq il-maġija xejn, iżda sempliċement issolvi problema b'mod lakoniku u b'riżorsi.

Xi drabi jkollok tistudja l-kodiċi, tanalizzah pass pass, iżda dan huwa kif, billi timxi f'passi żgħar u konsistenti, tista 'tirrepeti t-triq tal-awtur għas-soluzzjoni. Dan jippermettilek tgħaddas aktar fil-fond fil-proċess ta 'kodifikazzjoni u jagħtik aktar kunfidenza biex toħroġ bis-soluzzjonijiet tiegħek stess.

Meta bdejt naħdem għall-ewwel darba bil-wegħdiet, deherli bħal maġija pura. Imbagħad sibt li kienu bbażati fuq l-istess callbacks, u d-dinja tal-ipprogrammar tiegħi nqalbet ta’ taħt fuq. Allura l-mudell, li l-iskop tiegħu huwa li jsalvana minn callbacks, huwa stess implimentat bl-użu callbacks?!

Dan għenni nħares lejn il-kwistjoni b'għajnejn differenti u nirrealizza li din mhix xi biċċa kodiċi astruża quddiemi, li l-kumplessità projbittiva tagħha qatt ma se nifhem f'ħajti. Dawn huma biss mudelli li jistgħu jinftiehmu mingħajr problemi bil-kurżità dovuta u immersjoni profonda. Dan huwa kif in-nies jitgħallmu jikkodifikaw u jikbru bħala żviluppaturi.

Ivvinta mill-ġdid din ir-rota

Allura aqbad u ivvinta mill-ġdid ir-roti: ikteb il-kodiċi li torbot id-dejta tiegħek stess, oħloq wegħda homegrown, jew saħansitra agħmel is-soluzzjoni tal-ġestjoni tal-istat tiegħek stess.
Ma jimpurtax li ħadd qatt mhu se juża dan kollu - imma issa taf kif tagħmel dan. U jekk għandek l-opportunità li sussegwentement tuża żviluppi bħal dawn fil-proġetti tiegħek stess, allura dan huwa ġeneralment kbir. Inti tkun kapaċi tiżviluppahom u titgħallem xi ħaġa oħra.

Il-punt hawnhekk mhuwiex li tibgħat il-kodiċi tiegħek għall-produzzjoni, iżda li titgħallem xi ħaġa ġdida. Il-kitba tal-implimentazzjoni tiegħek ta' soluzzjoni eżistenti hija mod tajjeb ħafna biex titgħallem mill-aqwa programmaturi u b'hekk ttejjeb il-ħiliet tiegħek.

Sors: www.habr.com

Żid kumment