Esiste un nome per la tecnica di refactoring che trasforma i valori codificati in parametri configurabili? [chiuso]

1

Che cos'è questa tecnica chiamata quando prendi dei valori nel codice che sono hardcoded e li rendi variabili, possibilmente costruendo costrutti OO elaborati per rendere la variabile correttamente configurabile?

Ad esempio, stai stampando etichette e stai specificando un valore di etichette da stampare per pagina, come ad esempio 4 .

Più tardi ti rendi conto di avere diverse dimensioni e forme di etichetta. Costruisci una fabbrica di etichette, che chiama i file di etichette appropriati, che si configurano anche e conoscono la loro dimensione in relazione alla pagina che viene poi restituita tramite una chiamata di funzione usando il polimorfismo, e tale valore viene quindi utilizzato invece del% codificato% co_de.

Nelle mie stesse parole posso descriverlo come

Refactoring in effort to increase configurability and flexibility of the software.

ma per quanto riguarda la tecnica specifica di denominazione, no ..

    
posta Dennis 05.05.2015 - 16:44
fonte

4 risposte

4

Spesso tra i miei amici chiameremmo questo softcoding . È un gioco di parole che implica l'opposto di hardcoding e ha il vantaggio che è riconoscibile per la maggior parte dei programmatori.

Più tecnicamente, se dovessi descriverlo nella documentazione sarebbe semplicemente "rendere il software più configurabile" o variazioni di tale.

Nel software relativo alla matematica, a volte sento che si chiama parametrizzare il codice. O parametrizzazione . È il nome del processo di creazione di equazioni in grado di modificare il comportamento modificando le variabili (equazioni parametriche).

    
risposta data 06.05.2015 - 08:06
fonte
2

L'antipattern è solitamente chiamato numeri magici , ma il refactoring non ha un nome così conosciuto. Il mio IDE chiama il processo di trasformare i letterali in parametri esternalizzati (ad esempio "Externalize Strings").

    
risposta data 05.05.2015 - 16:49
fonte
2

Martin Fowler (autore del libro "Refactoring") probabilmente lo farebbe in più di un passo. Questi passaggi potrebbero essere, ad esempio, Sostituisci numero magico con costante simbolica "per sostituire 4 con un simbolo LabelsPerPage , quindi Aggiungi parametro per sostituire la costante con un parametro del metodo in cui viene utilizzato. Più tardi, Sostituisci parametro con metodo potrebbe essere il primo passo per fornire le etichette per pagina attraverso un metodo che può essere reso polimorfico successivamente tramite Sostituisci codice tipo con Polimorfismo .

(vedi link )

    
risposta data 06.05.2015 - 08:11
fonte
2

Non chiamerei questo refactoring, in quanto aggiunge funzionalità (ora puoi avere altri numeri di etichette per pagina). Il refactoring sta apportando modifiche al codice senza modificare la funzionalità.

Quello che stai facendo è aggiungere un livello di astrazione . Forse più livelli, dipende da come ti piace contare queste cose - le classi Label e le loro macchine sono un chiaro nuovo strato di astrazione, ma LabelFactory è il suo stesso livello? Non ha molta importanza.

    
risposta data 06.05.2015 - 09:09
fonte

Leggi altre domande sui tag