Domanda

Ho trovato la la voce di Wikipedia sul codice di codifica soft-pattern e confuso. Quindi cos'è il soft coding? In quali contesti è una cattiva pratica (anti-pattern)? Inoltre, quando potrebbe essere considerato utile e, in tal caso, come dovrebbe essere implementato?

È stato utile?

Soluzione

Risposta breve: andare agli estremi per evitare l'Hard Coding e finire con qualche strato di astrazione contorto del mostro per sostenere che è peggio che se i valori del hard coded fossero stati lì dall'inizio. cioè oltre l'ingegneria.

Come:

SpecialFileClass file = new SpecialFileClass( 200 ); // hard coded

SpecialFileClass file = new SpecialFileClass( DBConfig.Start().GetConnection().LookupValue("MaxBufferSizeOfSpecialFile").GetValue());

Altri suggerimenti

Il punto principale dell ' Articolo WTF quotidiano sulla codifica software è quello a causa dell'ottimizzazione prematura e temo che un sistema che sia ben definito e che non vi siano conoscenze duplicate venga modificato e diventi più complesso senza necessità.

La cosa principale che dovresti tenere a mente è se le tue modifiche migliorano davvero il tuo sistema ed evitano di etichettare leggermente qualcosa come anti-schema ed evitarlo in ogni modo. Configurare il sistema ed evitare l'hardcoding è una cura semplice per la duplicazione della conoscenza del sistema (vedere il punto 11: "DRY Non ripetere te stesso" in La guida di riferimento rapido del programmatore Pragmatic ) Questa è la necessità alla base del suggerimento di evitare la codifica. Cioè idealmente dovrebbe esserci solo un posto nel tuo sistema (che sarebbe codice o configurazione) che dovrebbe essere modificato se devi cambiare qualcosa di semplice come un messaggio di errore.

Ola, un buon esempio di un vero progetto in cui è incorporato il concetto di softcoding è il Django progetto. Il loro file settings.py estrae determinate impostazioni dei dati in modo che tu possa apportare le modifiche lì invece di incorporarle nel tuo codice. Puoi anche aggiungere valori a quel file se necessario e usarli dove necessario.

http://docs.djangoproject.com/en/dev/topics/ impostazioni /

Esempio :

Potrebbe trattarsi di un frammento del file settings.py:

num_rows = 20

Quindi all'interno di uno dei tuoi file puoi accedere a quel valore:

from django.conf import settings
...

for x in xrange(settings.num_rows):
   ...

Il massimo del softcoding:

const float pi = 3.1415; // Don't want to hardcode this everywhere in case we ever need to ship to Indiana.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top