Softcoding - Softcoding
Softcoding è un termine di codifica del computer che si riferisce all'ottenimento di un valore o una funzione da alcune risorse esterne, come file di testo , file INI , macro del preprocessore , costanti esterne, file di configurazione , argomenti della riga di comando , database, input dell'utente, risposte del server HTTP. È l'opposto dell'hardcoding , che si riferisce ai valori e alle funzioni di codifica nel codice sorgente.
Pratica di programmazione
Evitare l'hard-coding di valori comunemente modificati è una buona pratica di programmazione. Gli utenti del software dovrebbero essere in grado di personalizzarlo in base alle proprie esigenze, entro limiti ragionevoli, senza dover modificare il codice sorgente del programma. Allo stesso modo, i programmatori attenti evitano i numeri magici nel loro codice, per migliorarne la leggibilità e assistere la manutenzione. Queste pratiche generalmente non vengono chiamate "softcoding".
Il termine viene generalmente utilizzato quando il softcoding diventa un anti-pattern . L'astrazione di troppi valori e funzionalità può introdurre più complessità e problemi di manutenzione rispetto a quelli che si verificherebbero modificando il codice quando necessario. Il softcoding, in questo senso, è stato descritto in un articolo su The Daily WTF .
Potenziali problemi
All'estremo, i programmi soft-coded sviluppano i propri linguaggi di scripting mal progettati e implementati e file di configurazione che richiedono abilità di programmazione avanzate per essere modificati. Questo può portare alla produzione di utilità per assistere nella configurazione del programma originale, e queste utilità spesso finiscono per essere esse stesse "softcoded".
Il confine tra la corretta configurabilità e la problematica codifica software cambia con lo stile e la natura di un programma. I programmi closed-source devono essere molto configurabili, poiché l'utente finale non ha accesso all'origine per apportare modifiche. Il software interno e il software con distribuzione limitata possono essere meno configurabili, poiché la distribuzione di copie alterate è più semplice. Le applicazioni web personalizzate sono spesso le migliori con una configurabilità limitata, poiché alterare gli script è raramente più difficile che alterare un file di configurazione.
Per evitare il "softcoding", considerare il valore per l'utente finale di qualsiasi flessibilità aggiuntiva fornita e confrontarla con la maggiore complessità e i relativi costi di manutenzione continua che la configurabilità aggiuntiva comporta.
Raggiungere la flessibilità
Esistono diversi modelli di progettazione legittimi per ottenere la flessibilità che il softcoding tenta di fornire. Un'applicazione che richiede una flessibilità maggiore di quella appropriata per un file di configurazione può trarre vantaggio dall'incorporazione di un linguaggio di scripting . In molti casi, la progettazione appropriata è un linguaggio specifico del dominio integrato in un linguaggio di scripting consolidato. Un altro approccio consiste nello spostare la maggior parte delle funzionalità di un'applicazione in una libreria, fornendo un'API per scrivere rapidamente le applicazioni correlate.
Altri significati
Nel feature design , il softcoding ha altri significati.
- Hardcoding : la funzione è codificata nel sistema e non ne consente la configurazione
- Parametrica : la funzionalità è configurabile tramite tabella guidata o file di proprietà con valori parametrici limitati
- Softcoding: la funzione utilizza "motori" che derivano risultati in base a un numero qualsiasi di valori parametrici (ad esempio regole di business in BRE ); le regole sono codificate ma esistono come parametri nel sistema, scritte in forma di script