Quindi mi siedo in una bella ciotola di spaghetti c #, e ho bisogno di aggiungere qualcosa o rimuovere qualcosa ... ma ho sfide ovunque dalle funzioni che passano argomenti che non hanno senso, qualcuno che non capisce strutture dati che abusano stringhe, variabili ridondanti, alcuni commenti sono red-hearings, l'internazionalizzazione è su un livello per ogni uscita, SQL non usa alcun tipo di DBAL, le connessioni al database sono lasciate aperte ovunque ...
Ci sono strumenti o tecniche che posso usare per tenere traccia almeno della "integrità funzionale" del codice (che significa che i miei "miglioramenti" non lo infrangono), o una risorsa online con "schemi cattivi" comuni che spiega un buon modo per il codice di transizione? Sto fondamentalmente cercando una guida su come trasformare la paglia in oro.
Ecco alcuni esempi della stessa funzione di 500 righe:
protected void DoSave(bool cIsPostBack) {
//ALWAYS a cPostBack
cIsPostBack = true;
SetPostBack("1");
string inCreate ="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
parseValues = new string []{"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};
if (!cIsPostBack) { //.......
//....
//....
if (!cIsPostBack) {
} else {
}
//....
//....
strHPhone = StringFormat(s1.Trim());
s1 = parseValues[18].Replace(encStr," ");
strWPhone = StringFormat(s1.Trim());
s1 = parseValues[11].Replace(encStr," ");
strWExt = StringFormat(s1.Trim());
s1 = parseValues[21].Replace(encStr," ");
strMPhone = StringFormat(s1.Trim());
s1 = parseValues[19].Replace(encStr," ");
//(hundreds of lines of this)
//....
//....
SQL = "...... lots of SQL .... ";
SqlCommand curCommand;
curCommand = new SqlCommand();
curCommand.Connection = conn1;
curCommand.CommandText = SQL;
try {
curCommand.ExecuteNonQuery();
} catch {}
//....
}
Non ho mai dovuto refactoring qualcosa di simile prima, e voglio sapere se c'è qualcosa come una guida o una knowledgebase su come fare questo genere di cose, trovare modelli comuni e offrire le migliori soluzioni per ripararle. Non voglio solo rubacchiarlo dall'orbita,