Come dovrei fare per correggere il codice da un programmatore meno esperto?

19

Un po 'di background: sono uno dei due programmatori del nostro dipartimento di 10 persone (il resto sono artisti e management). Noi due facciamo tutto il codice necessario per far fluire le cose e sviluppare tutti i progetti che emergono. Sto programmando da circa 4 anni, dove questo è il suo primo "vero" lavoro (come dice lui). Generalmente stiamo lavorando a diversi progetti in qualsiasi momento.

Un paio di mesi fa ho sviluppato un insieme (non perfetto) di classi che dovevano essere utilizzate per un progetto successivo. Una gran parte del progetto è stata delegata a lui (per ragioni di fatturazione) per progettare e programmare un'interfaccia GUI. Da quando era nuovo, ho aiutato un po 'con la progettazione e ho detto di chiedere aiuto se ne aveva avuto bisogno con il resto. Ha terminato l'interfaccia alcune settimane fa, che ha dimostrato per dimostrare che funzionava, anche se un po 'lento.

La parte successiva del progetto è iniziata su cui sto lavorando. Ho aperto l'interfaccia per iniziare con i passaggi successivi e ho subito riscontrato problemi (un po 'lento era un eufemismo, errori nelle azioni comuni, ecc.). Ho esaminato il codice per alcuni problemi e sto trovando O(n^n) sulle chiamate che dovrebbero essere O(n) , digitare ipotesi senza controllo degli errori (è in Python), riferimenti alla GUI aggiunta al codice originale e così via .

Ora, mi piacerebbe sicuramente insegnargli cosa era sbagliato e come risolverlo, ma è già passato al suo prossimo progetto, e questo è stato qualche settimana fa. Ho paura che io dica "Torna indietro e fallo bene!" (con l'aiuto ovviamente) è troppo duro, e nel frattempo abbiamo ancora altri progetti da fare. Dovrei semplicemente aggiustare il codice per ora e provare a catturare le cose in futuro?

    
posta TorelTwiddler 10.10.2011 - 23:28
fonte

4 risposte

33

Sembra che istituire una sorta di politica di revisione del codice possa essere vantaggiosa a più livelli. Alcuni vantaggi immediati:

  • Puoi influenzare direttamente la qualità del suo codice prima che il codice venga eseguito, mantenendo così alta la qualità del codice base
  • Ti impedisce di commettere errori simili che un altro gruppo di occhi potrebbe catturare
  • In assenza di linee guida sulla codifica, le recensioni portano naturalmente alla coerenza nello stile di codifica
  • Condivisione della conoscenza. Se ce ne sono solo due e uno viene colpito da un autobus ...

Ora, quando vai avanti e inizia a ripulire il suo codice, utilizzalo come esercizio di insegnamento quando cerchi una revisione di questo codice. La tua recensione verrà esaminata e lui potrebbe imparare a farlo meglio la prossima volta.

    
risposta data 10.10.2011 - 23:44
fonte
5

Non aggiustare mai il loro codice mai, altrimenti non impareranno nulla se non quando commettono errori li catturerai e li sistemerai. L'attività non viene eseguita finché non è fatto . Sono stato davvero fortunato quando ho iniziato a lavorare da professionista e il mio supervisore diretto ha ricontrollato tutto ciò che ho commesso, e se ci fosse una soluzione migliore o avessi fatto un errore stupido mi direbbe, il che significa che le mie capacità sono migliorate, il che significa che sono migliorato più velocemente e sviluppato una pelle più dura.

Lasciarlo scivolare genererà cattive abitudini, correggendo ora le farai fronteggiare meglio con le critiche e triplicare il controllo prima di affermare che è stato fatto.

    
risposta data 11.10.2011 - 00:30
fonte
2

Possiamo dedurre che il progetto "funziona" ed è stato fatto in un ragionevole lasso di tempo (anche se con problemi di progettazione egregi ma risolvibili)? Se è così, è in una forma molto migliore rispetto a molti progetti che ho visto nel corso degli anni.

Penso che una maggiore comunicazione aiuterebbe il tuo team, e questo potrebbe essere fatto con una regolare revisione del codice.

È positivo che tu sia sensibile ad essere "troppo severo" e penso che terrò a mente che la revisione del codice non deve essere un'esperienza demoralizzante con il posto in cui i giovani vengono grigliati e scrutati . Può anche essere un modo per gli sviluppatori senior di dimostrare buone pratiche e per tutti di guadagnare fiducia l'uno nell'altro essendo educati e amichevoli anche in presenza di "errori".

Le persone imparano bene quando vedono che aspetto hanno davvero delle cose buone. Questo è meglio di evidenziare sistematicamente ogni piccolo difetto. L'O (n ^ n), tuttavia, dovrebbe essere indicato delicatamente e costruttivamente.

    
risposta data 11.10.2011 - 02:16
fonte
0

Condividi le tue conoscenze.

Gli offrirò aiuto nel suo nuovo progetto in cambio di alcuni insegnamenti da anziano a junior.

Perché non associare la programmazione su entrambi i progetti?

    
risposta data 11.10.2011 - 10:09
fonte

Leggi altre domande sui tag