Perchè hè utile per reinventà a rota?

Perchè hè utile per reinventà a rota?

L'altru ghjornu aghju intervistatu un sviluppatore JavaScript chì dumandava un postu senior. Un cullega, chì era ancu presente à l'entrevista, hà dumandatu à u candidatu di scrive una funzione chì faria una dumanda HTTP è, s'ellu ùn hè micca successu, ripiglià parechje volte.

Hà scrittu u codice direttamente nantu à u tavulinu, cusì saria abbastanza per disegnà qualcosa apprussimativa. S'ellu avia solu dimustratu ch'ellu hà capitu bè ciò chì era l'affare, avariamu statu abbastanza soddisfatti. Ma, sfurtunatamenti, ùn pudia truvà una suluzione riescita. Allora noi, cun l'eccitazione, decisu di fà u compitu un pocu più faciule è li dumandò di trasfurmà una funzione cù callbacks in una funzione custruita nantu à e prumesse.

Ma ahimè. Iè, era ovvi chì avia scontru tali codice prima. Sapia in generale cumu tuttu hà travagliatu quì. Tuttu ciò chì avemu bisognu hè un sketch di una suluzione chì dimustra una cunniscenza di u cuncettu. In ogni casu, u codice chì u candidatu hà scrittu nantu à u tavulinu era un scioccu cumpletu. Hà avutu una idea assai vaga di ciò chì e prumesse eranu in JavaScript è ùn pudia micca spiegà veramente perchè eranu necessarii. Per un junior, questu hè statu perdonabile, ma ùn era più adattatu à a pusizione di senior. Cumu puderia stu sviluppatore risolve i bug in una catena cumplessa di promesse è spiegà à l'altri ciò chì hà fattu esattamente?

I sviluppori cunzidenu u codice prontu per sè stessu

Durante u prucessu di sviluppu, scontru constantemente materiali riproducibili. Trasferemu frammenti di codice in modu chì ùn avemu micca da riscrive ogni volta. In cunsiquenza, fighjendu tutta a nostra attenzione nantu à e parti chjave, fighjemu u codice finitu chì travagliammu cum'è qualcosa di evidenti - simpricimenti assumemu chì tuttu funziona cum'è duverebbe.

È di solitu funziona, ma quandu e cose diventanu difficili, capiscenu a meccanica più chè paga.

Cusì, u nostru candidatu per a pusizione di sviluppatore senior hà cunsideratu chì l'oggetti di prumessa sò evidenti. Probabilmente hà avutu una idea di cumu trattà cun elli quandu si trovanu in un locu in u codice di l'altru, ma ùn hà micca capitu u principiu generale è ùn pudia micca ripetiri ellu stessu durante l'entrevista. Forsi s'hè ricurdatu di u frammentu per core - ùn hè micca cusì difficiule:

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

L'aghju ancu fattu - è probabilmente l'avemu fattu tutti in un certu puntu. Anu simpricimenti memorizatu un pezzu di codice per pudè usà dopu in u so travagliu, mentre avè solu una idea generale di cumu tuttu hà travagliatu quì. Ma s'è u sviluppatore hà veramente capitu u cuncettu, ùn avissi micca bisognu di ricurdà nunda - ellu solu sapè cumu fà, è facilmente ripruduce tuttu ciò chì avia bisognu in codice.

Torna à e radiche

In u 2012, quandu a dominanza di i frameworks front-end ùn era ancu statu stabilitu, jQuery hà guvernatu u mondu, è aghju lettu u libru Sicreti di u Ninja JavaScript, autore di John Resig, creatore di jQuery.

U libru insegna à u lettore cumu creà u so propiu jQuery da zero è furnisce una visione unica di u prucessu di pensamentu chì hà purtatu à a creazione di a biblioteca. In l'ultimi anni, jQuery hà persu a so popularità antica, ma ricumandemu sempre u libru. Ciò chì m'hà colpitu di più d'ella era u sensu persistente chì puderia avè pensatu à tuttu questu mè stessu. I passi chì l'autore hà descrittu parevanu cusì lògichi, cusì chjaru chì aghju cuminciatu seriamente à pensà chì puderia facilmente creà jQuery si aghju ghjustu.

Di sicuru, in a realità ùn aghju micca pussutu fà nunda cusì - avaria decisu chì era insupportable difficultà. I mo solu suluzioni pareranu troppu simplici è ingenu per travaglià, è rinunziò. Puderia classificà jQuery cum'è cose evidenti, in u funziunamentu currettu di quale avete solu bisognu di crede ciechi. In seguitu, ùn aghju micca perdu tempu à sfondà in a meccanica di sta biblioteca, ma solu l'utilizassi cum'è una spezia di scatula negra.

Ma leghje stu libru m'hà fattu una persona diversa. Aghju cuminciatu à leghje u codice fonte è scupertu chì l'implementazione di parechje suluzioni era in fattu assai trasparenti, ancu ovvi. Innò, sicuru, per pensà à qualcosa cusì per sè stessu hè una storia diversa. Ma hè studià u codice di l'altri è riproduce e soluzioni esistenti chì ci aiuta à vene cun qualcosa di u nostru.

L'ispirazione chì guadagnate è i mudelli chì cuminciate à nutà vi cambiaranu cum'è sviluppatore. Truverete chì quella maravigliosa biblioteca chì utilizate in permanenza è chì site abituatu à pensà cum'è un artefattu magicu ùn funziona micca in a magia, ma solu solu solu un prublema laconicamente è risorsu.

Calchì volta vi tuccherà à pore nantu à u codice, analizà u passu à passu, ma hè cusì, muvimenti in picculi passi coherente, pudete ripetiri a strada di l'autore à a suluzione. Questu vi permetterà di tuffà più in u prucessu di codificazione è vi darà più cunfidenza in a vostra propria suluzione.

Quandu aghju cuminciatu à travaglià cù prumesse, mi paria cum'è magia pura. Allora aghju scupertu ch'elli eranu basati nantu à i stessi callbacks, è u mo mondu di prugrammazione s'hè vultatu. Allora u mudellu, u scopu di quale hè di salvà noi da i callbacks, hè stessu implementatu cù callbacks ?!

Questu m'hà aiutatu à guardà a materia cù ochji diversi è capisce chì questu ùn hè micca un pezzu di codice astrusu davanti à mè, a cumplessità pruibitiva di quale ùn aghju mai capitu in a mo vita. Quessi sò solu mudelli chì ponu esse capitu senza prublemi cù a curiosità dovuta è l'immersione prufonda. Hè cusì chì a ghjente ampara à codificà è cresce cum'è sviluppatori.

Reinventà sta rota

Allora vai avanti è reinventà e roti: scrivite u vostru propiu codice di ubligatoriu di dati, crea una prumessa di casa, o ancu fà a vostra propria suluzione di gestione statale.
Ùn importa micca chì nimu hà mai aduprà tuttu questu - ma avà sapete cumu fà. È s'è vo avete l'uppurtunità di utilizà in seguitu tali sviluppi in i vostri prughjetti, allora questu hè in generale grande. Puderete sviluppà elli è amparà qualcosa d'altru.

U puntu quì ùn hè micca di mandà u vostru codice à a produzzione, ma per amparà qualcosa di novu. Scrivite a vostra propria implementazione di una soluzione esistente hè una bella manera d'amparà da i migliori programatori è cusì affinà e vostre cumpetenze.

Source: www.habr.com

Add a comment