Il codice di diffusione con i commenti di refactoring è una buona idea?

11

Sto lavorando a un progetto "spaghetti-code", e mentre correggo bug e implementando nuove funzionalità, eseguo anche alcuni refactoring per rendere il codice testabile all'unità.

Il codice è spesso così strettamente accoppiato o complicato che la correzione di un piccolo bug comporterebbe la riscrittura di molte classi. Così ho deciso di tracciare una riga da qualche parte nel codice in cui smetto di refactoring. Per chiarire questo, lascio alcuni commenti nel codice che spiega la situazione, come:

class RefactoredClass {
    private SingletonClass xyz;

    // I know SingletonClass is a Singleton, so I would not need to pass it here.
    // However, I would like to get rid of it in the future, so it is passed as a
    // parameter here to make this change easier later.
    public RefactoredClass(SingletonClass xyz) {
        this.xyz = xyz;
    }
}

Oppure, un altro pezzo di torta:

// This might be a good candidate to be refactored. The structure is like:
// Version String
//    |
//    +--> ...
//    |
//    +--> ...
//          |
//    ... and so on ...    
//
Map map = new HashMap<String, Map<String, Map<String, List<String>>>>();

Questa è una buona idea? Cosa dovrei tenere a mente quando lo fai?

    
posta Uooo 05.11.2013 - 09:00
fonte

2 risposte

13

Is spreading code with refactoring comments a good idea?

Se hai dedicato del tempo per terminare il tuo refactoring, e se lo fai davvero, allora sì - funzionerà.

What should I keep in mind when doing so?

Gli IDE moderni hanno un'opzione per trovare e mostrare le linee TODO. Dovresti controllarli di tanto in tanto e cercare di ridurre i loro numeri ogni volta che puoi.

    
risposta data 05.11.2013 - 09:23
fonte
2

Prenderò tali considerazioni /// @todo commenti per doxygen o un hover = // facile da installare tag personalizzato per javadoc , quindi viene automaticamente estratto nella sezione di lavoro dei documenti API. I semplici commenti saranno trascurati troppo facilmente e alla fine si perderanno nelle profondità del codice.

[Modifica] BTW: è una buona idea:

while I am fixing bugs and implementing new features, I also do some refactoring in order to make the code unit-testable

Penso che (per esperienza!), il refactoring può essere molto pericoloso, specialmente quando non ci sono ancora test unitari. Quindi è meglio limitare il lavoro extra (quando si risolvono i bug, ecc.) Aggiungendo i commenti di todo ... Sappiamo tutti: quando mai possibile;)

    
risposta data 05.11.2013 - 12:14
fonte

Leggi altre domande sui tag