Sono uno sviluppatore con solo un paio di anni di esperienza, lavorando in una piccola azienda di otto sviluppatori, su un progetto Java. Il nostro team leader, anche uno dei manager, è più anziano e molto produttivo e dice di avere circa quindici anni di esperienza in Java.
Il mese scorso, mentre discutevamo di alcuni moduli del codice sorgente, ha scritto, Ho notato nel codice sorgente che una delle classi sovrascrive il metodo equals ()
, ma non il metodo hashCode ()
- Mi riferisco ai due metodi dichiarati nel Java molto semplice class Object
. Quando l'ho fatto notare al team leader, in modo molto calmo ed educato, ha negato che una classe dovesse ignorare entrambi i metodi. Il problema sarebbe finito lì, ma ho trovato immorale lasciare che un tale difetto (bug) danneggiasse il prodotto in seguito.
Pochi giorni dopo, l'ho avvicinato di persona e in privato e gli ho spiegato in silenzio, senza essere irrispettoso, della questione e utilizzato riferimenti esterni (come il libro di Joshua Bloch "Effective Java") . Bene, ha detto che l'avrebbe guardato, e alla fine l'ha fatto. Tuttavia, da allora, mi dà la spalla fredda.
Ancora peggio, di recente ho notato un problema serio nel codice sorgente. Alcune classi che ha scritto implementano l'interfaccia Serializable
, ma il campo serialVersionUID
non è un numero fisso (costante). Invece varia. Voglio dire, otteniamo un numero diverso ogni volta che eseguiamo l'applicazione.
Sempre con la motivazione di fornire un prodotto sano, vorrei comunicarlo correttamente. Ma non so come farlo correttamente, senza che lui la prenda sul personale. Vedi, i miei precedenti approcci sono falliti. Come potrei farlo?
Qualsiasi consiglio sarebbe ben accetto.
Modifica: lo scopo di questa domanda è trovare modi efficaci, produttivi, educati, rispettosi e collaborativi per comunicare i miglioramenti seri problemi di codice e non mettere in discussione l'autorità o le decisioni di gestione, prese da colleghi o persino superiori.