Sto lavorando a una startup di robotica in un team di copertura del percorso e dopo aver inviato una richiesta pull, il mio codice viene esaminato.
Il mio compagno di squadra, che fa parte della squadra da più di un anno, ha fatto alcuni commenti al mio codice che suggeriscono che faccio molto più lavoro di quanto ritenga necessario. No, non sono uno sviluppatore pigro. Adoro il codice elegante che ha buoni commenti, nomi di variabili, rientri e gestisce correttamente i casi. Tuttavia, ha in mente un diverso tipo di organizzazione con cui non sono d'accordo.
Fornirò un esempio:
Avevo passato una giornata a scrivere casi di test per passare a un algoritmo di ricerca della transizione che avevo realizzato. Mi aveva suggerito di gestire un caso oscuro che è estremamente improbabile che accada - in effetti non sono sicuro che sia possibile che accada. Il codice che ho creato funziona già in tutti i nostri casi di test originali e in alcuni nuovi che ho trovato. Il codice che ho creato supera già le nostre oltre 300 simulazioni eseguite di notte. Tuttavia, per gestire questo caso oscuro mi occorrerebbero 13 ore che potrebbero essere impiegate meglio nel tentativo di migliorare le prestazioni del robot. Per essere chiari, il precedente algoritmo che avevamo usato fino ad ora non ha gestito questo caso oscuro e non una volta, nei rapporti 40k che sono stati generati, si è mai verificato. Siamo una startup e dobbiamo sviluppare il prodotto.
Non ho mai avuto una revisione del codice prima e non sono sicuro di essere troppo polemico; dovrei solo stare zitto e fare quello che dice? Ho deciso di tenere la testa bassa e di apportare il cambiamento, anche se sono fortemente in disaccordo sul fatto che fosse un buon uso del tempo.
Rispetto il mio collega e lo riconosco come un programmatore intelligente. Sono solo in disaccordo con lui su un punto e non so come gestire il disaccordo in una revisione del codice.
Ritengo che la risposta che ho scelto soddisfi questi criteri per spiegare come uno sviluppatore junior può gestire il disaccordo in una revisione del codice.