Stavo discutendo con i miei colleghi sull'uso degli strumenti di refactoring automatico negli IDE (Eclipse, NetBeans, IntelliJ, Xcode, Visual Studio, ecc.) ed ero sorpreso che molti di loro erano a disagio nell'usare tali strumenti. Uno di loro è uno sviluppatore esperto (Smalltalk, C / C ++, Java, Javascript) da 20 anni e quando usa raramente usa un IDE e anche , non usa gli strumenti di refactoring automatico. Fa molti refactoring, ma li fa all a mano.
Personalmente, mi affido molto agli strumenti di refactoring. Ogni volta che lavoro a un progetto, cerco di scegliere un IDE che supporti i refactoring automatici e utilizzi tali refactoring ogni volta che è possibile.
Sono interessato a scoprire se gli sviluppatori professionisti qui a Stack Exchange utilizzano strumenti di refactoring automatizzati. E, se non lo fai, perché no?
Per iniziare, ecco alcuni motivi per cui i miei colleghi non utilizzano gli strumenti di refactoring automatico:
-
Fiducia - A volte non si fidano di ciò che lo strumento sta facendo, specialmente se si tratta di un refactoring complesso come Pull-Up che potrebbe influenzare più file; sono preoccupati che lo strumento possa introdurre bug sottili.
-
Discoverability - A volte non si rendono nemmeno conto che tale refactoring è disponibile nell'IDE perché non è immediatamente ovvio
-
Flessibilità - A volte lo strumento è troppo rigido e hanno sempre la sensazione di doverlo configurare troppo per farlo funzionare nel modo desiderato.
Aggiornato - riepilogo
Sulla base delle risposte finora, penso di poter riassumere tre cose:
-
Gli sviluppatori non hanno il tempo di provare tutti i diversi refactoring disponibili. E poiché non possono provarli, sono sospettosi di ciò che faranno al codice (tutti i casi d'angolo). Questo sospetto è giustificato per il codice di produzione sotto pressione temporale (anche se si hanno test da verificare). Forse gli strumenti di interfaccia utente migliori possono alleggerirlo.
-
Gli sviluppatori sono anche stati frustrati dalle limitazioni degli strumenti di refactoring, specialmente quando usano metaprogramming / reflection o hanno file esterni (xml, configuration, properties). Gli strumenti di refactoring automatico continuano a migliorare ma ci saranno sempre dei limiti. A volte le limitazioni sono accettabili e altre volte non lo sono. Ho parlato con molti altri colleghi e alcuni di loro sono più tolleranti nei confronti dei limiti. Ad esempio, se il refactoring del rename non rinomina tutti i file, ma fa un buon lavoro di ridenominazione del 90%, sono comunque felici di utilizzare lo strumento e di aggiustare il restante 10% a mano perché ancora salva tempo e impegno.
-
[Secondo me da quello che ho raccolto], gli sviluppatori ritengono che gli strumenti di refactoring siano caratteristiche piacevoli , quindi se non funziona la prima volta (o fa qualcosa inaccettabile), sembrano essere più inclini ad abbandonarli e apportare modifiche a mano. Confronta questo con altri strumenti come compilatori / debugger che hanno anche limitazioni e bug . È probabile che gli sviluppatori continuino a seguirli nonostante i loro limiti perché sono caratteristiche essenziali di essenziale che non puoi semplicemente abbandonare nel tuo flusso di lavoro.
Grazie per tutte le risposte. Se questo argomento interessa più persone, ti suggerisco di trasformarlo in un wiki della community.
Sarebbe interessante scoprire se le dimensioni del progetto, la disponibilità dei test, la maturità dell'IDE influiscono sulla decisione delle persone di utilizzare strumenti di refactoring automatizzati.