I worry that this slowdown would reflect badly on me and my performance.
Se il miglioramento del codice che trovi si riflette male su di te, allora hai un problema molto più grande nella tua squadra rispetto a come risolvi i problemi che trovi! OK, se non è rotto non devi avere per risolverlo, ma per un vero codice ridondante è probabilmente una buona idea semplificarlo rimuovendolo. Le stime di tempo dovrebbero essere basate sulla realtà pratica della comprensione del codice man mano che procedi e sulla risoluzione dei problemi che trovi. Se sei in modalità di crisi e non puoi farlo, la risposta sarebbe "metti giù la testa e spera per il meglio", ma dovrebbe essere raro.
Il codice ridondante non è il problema peggiore che si possa trovare, ma indica un errore nel modo di pensare di chi l'ha scritto (o lo ha modificato per diventare ridondante). Pertanto merita almeno la stessa attenzione di qualsiasi altro refactoring che si trova nel codice che si visita, e forse di più.
should I take the high road, and assume the team understands
No. Fai parte della squadra, non capisci, quindi non tutti capiscono. Non dare per scontato che ci sia un mistero più alto a cui tutti gli altri sono a conoscenza. Molto più probabilmente, nessuno vorrebbe che fosse così e tutti gli altri non se ne sono accorti o non sono riusciti a migliorarlo. O ti sbagli. In quest'ultimo caso trarrai beneficio da una spiegazione del tuo errore, nel primo caso qualcun altro trarrà vantaggio dall'affrontarlo.
should I communicate that the code doesn't do much?
A seconda di come il tuo team pensa al "possesso" del codice, potrebbe essere che la cosa giusta da fare sia solo correggerla e (se la modifica non parla da sola) discuterla quando le tue modifiche sono riviste. In alternativa, potrebbe esserci qualcuno nella squadra che è la persona più ovvia con cui parlarne prima di andare avanti con un cambiamento, sia l'autore che qualcun altro con una particolare responsabilità. Quando parli con qualcuno, sia esso il proprietario o un revisore del codice, tutto ciò che rimane è decidere cosa dire.
Se sei a tuo agio a sparare direttamente dai fianchi:
"Questo codice non fa nulla"
"Hai dimenticato di restituire il risultato, devo correggerlo?"
"Questa funzione void
non ha effetti collaterali, a cosa serve?"
Naturalmente questo potrebbe essere considerato maleducato, in realtà dipende dal tuo rapporto con la persona. Quindi puoi essere più diplomatico:
"Che cosa fa questo codice?"
"Il risultato è necessario ovunque o possiamo saltare questa parte?"
"Questo sembra sbagliato, quindi non sono sicuro di aver capito tutto"
"Mi dispiace terribilmente disturbarti, ma non sono stato in grado di capire queste poche righe di codice. Mi sembra che questa funzione non faccia nulla, quindi mi chiedevo perché fosse così. Molto probabilmente l'ho frainteso, o suppongo che potrebbe essere lì per supportare qualche direzione futura, nel qual caso mi chiedevo se avrei potuto aggiungere utili commenti per spiegare cosa ".
Naturalmente, l'ultimo esempio mostra una linea sottile tra ossequiosamente educato e semplicemente condiscendente. Alcune persone suonano bene in questo modo, altre suonano come dei sarcastici.
Personalmente, di solito vado con "Questo non dovrebbe restituire nulla?". Mi aspetto la risposta "no". È intenzionalmente un po 'maleducato / scherzoso, perché con i miei colleghi attuali posso esserlo, ma non accuserei nessuno di qualcosa oltre una svista. E se la risposta è "sì" con una ragione, allora è giusto. Un'altra opzione comune per me è "Penso che questo dovrebbe restituire qualcosa". Entrambe sono cose che sarei felice di avermi detto.