La domanda, così com'è, sarà difficile da rispondere, perché la manutenibilità ha molte sfumature.
Ho identificato 3 livelli di manutenibilità:
- codice leggibile
- evitando la ripetizione
- Architettura / refactoring
Il primo livello è molto semplice e non costa tempo di sviluppo. Significa semplicemente che ogni volta che scrivi nuovo codice (o leggi il codice precedente), lo rendi leggibile il più possibile, magari aggiungendo / modificando alcuni commenti mentre vai.
Il secondo livello è meno semplice, ma non troppo travolgente. Significa semplicemente che ogni volta che aggiungi una parte di codice, devi controllare se non c'è già qualcosa che fa ciò che stai per fare. Se c'è, unisci le cose comuni (fantastico, non hai dovuto scrivere!). Ciò eviterà la ripetizione del codice, il che significa che durante il fixing non dovrai propagare la correzione nelle n copie.
Il terzo livello è decisamente più costoso. I cambiamenti architettonici e il refactoring su larga scala esauriscono rapidamente alcuni giorni di lavoro.
Con questo elenco in mente, è un po 'più gestibile da discutere.
- se sei di fretta, basta applicare 1. e 2. e non preoccuparti dell'architettura (a meno che tu non ne abbia uno ovviamente, nel qual caso basta creare il più semplice che risolva il problema problema)
- quando hai qualche giorno libero, o quando non sei sotto pressione, considera il refactoring se possibile
Per abilitare il secondo, tendo a mantenere un elenco TODO di ciò che vorrei cambiare ma che non ho il tempo di fare adesso. Poi, quando avrò un po 'di tempo tra le mie mani, o quando si presenterà l'opportunità di lavorare su un pezzo di codice che appare in questa lista e posso spremere qualche giorno di mantenimento, procedo.