Strategia per rivedere tutte le occorrenze di campi specifici nel progetto di grandi dimensioni

0

Il progetto su cui sto lavorando ha un campo di stato che al momento consente solo YES o NO , e sto per rifattorizzarlo per consentire il valore MAYBE . Sfortunatamente, è usato oltre 1000 volte in più di 200 file.

In genere il campo dello stato viene semplicemente visualizzato come grezzo, ma occasionalmente esiste una logica che lo accompagna. Per questo motivo, voglio manualmente esaminare ogni istanza di questo campo *.

In mancanza di una sorta di checklist con tutte le oltre 1.000 istanze della variabile e controllandole singolarmente mentre le rivedo, ci sono strategie o strumenti standard che mi consentono di essere in grado di tenere traccia di quale riferimenti a questa variabile che ho / non ho recensito?

Per questa domanda presumo di poter trovare facilmente ogni istanza a cui questo campo fa riferimento nel progetto (tutti hanno lo stesso nome di variabile yesNoStatus ). Sfortunatamente il progetto è in una lingua digitata dinamicamente con strumenti inadeguati.

Nota: la mia strategia attuale consiste nell'usare un semplice find / replace per cambiare tutti i nomi delle variabili da yesNoStatus a yesNoXStatus , quindi rimuovere X mentre li rivedo.

    
posta Wrokar 09.11.2018 - 23:50
fonte

2 risposte

2

Se stai usando un linguaggio compilato con controllo di tipo statico, dove il compilatore si lamenterà se hai dimenticato di cambiare il nome della variabile, la tua strategia generale sembra essere ok. Nota, tuttavia, anche se stai lavorando in tale ambiente, devi testare le tue modifiche. Spero che tu abbia abbastanza test automatici che coprono la maggior parte del codice modificato. In caso contrario, buona fortuna.

Il codice che accede allo stesso campo di stato in 1000 posti è IMHO un "odore del design". Potresti considerare di cercare modi per ridurre il numero di luoghi in cui ciò accade. Potrebbe essere avviato un tipo di incapsulamento del campo in un modulo. Potrebbe anche essere utile cercare di capire se il numero di accessi è causato da un codice molto duplicato, che potrebbe essere refactored in una funzione o modulo riutilizzabile.

In questo modo, la prossima volta che dovrai affrontare un campo di questo tipo, potresti non dover controllare 1000 luoghi, ma solo 100 o meno.

    
risposta data 10.11.2018 - 08:39
fonte
2

Per semplificare, farei questo modulo di refactoring per modulo. Se possibile, utilizzerei anche le funzionalità IDE, come trova utilizzi , modifica della firma , refactoring e così via.

Ad esempio, è possibile eseguire quanto segue in IntelliJ e probabilmente altri IDE di JetBrains. Nella finestra del progetto, scegli un modulo e poi Sostituisci nel percorso . Spunta Regex e sostituisci yesNoStatus con //todo yesNoMaybe \n yesNoStatus . Questo inserirà la riga //todo yesNoMaybe sopra ogni yesNoStatus nel modulo. La finestra degli strumenti TODO dell'IDE elencherà tutti questi (e altri) tutto e consentirà una facile navigazione. Quindi basta cancellare la // linea di todo una volta eseguita.

Potrebbe essere più facile che rinominare yesNoStatus e tornare indietro. Se questo è utile o sufficiente dipenderebbe dalle specifiche, come la lingua, la tipizzazione statica rispetto a quella non statica e le dipendenze / gli usi di yesNoStatus .

    
risposta data 11.11.2018 - 12:36
fonte

Leggi altre domande sui tag