Frage

fand ich die Wikipedia-Eintrag auf dem weichen Codierung anti-Muster terse und verwirrend. So was ist weich Codierung? In welchen Einstellungen ist es eine schlechte Praxis (anti-Muster)? Auch wenn es könnte als vorteilhaft, und wenn ja, wie sollte es umgesetzt werden?

War es hilfreich?

Lösung

Kurze Antwort: Gehen zu Extremen harte Kodierung zu vermeiden und mit einiger Monstern gewundene Abstraktionsschicht enden, zu behaupten, ist schlimmer, als wenn die hart codierten Werte von Anfang an dagewesen. das heißt über Engineering.

Wie:

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

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

Andere Tipps

Der Hauptpunkt der Täglich WTF Artikel auf weiche Codierung , dass wegen der vorzeitigen Optimierung und befürchtet ein System, das sehr gut definiert ist, und es gibt kein duplizierten Wissen verändert und wird immer komplexer, ohne dass.

Die Hauptsache, die Sie beachten sollten, wenn Sie Ihre Änderungen tatsächlich Ihr System verbessern und vermeiden auf die leichte Schulter etwas wie anti-Muster kennzeichnen und es mit allen Mitteln zu vermeiden. Konfigurieren des Systems und die Vermeidung von Hardcoding eine einfache Heilung für duplizierte Wissen in Ihrem System (siehe Punkt 11: „DRY Sie sich nicht wiederholen“ in

Ola, ein gutes Beispiel für ein reales Projekt, welches das Konzept hat softcoding um es gebaut ist der Django Projekt. Ihre settings.py Datei abstrahiert bestimmte Dateneinstellungen so, dass Sie die Änderungen vornehmen können dort statt sie in Ihrem Code einbetten. Sie können auch Werte hinzufügen, auf diese Datei bei Bedarf und nutzen sie, wo nötig.

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

Beispiel: :

Dies ist ein Ausschnitt aus der Datei settings.py sein könnte:

num_rows = 20

Dann innerhalb einer Ihrer Dateien, die Sie diesen Wert zugreifen können:

from django.conf import settings
...

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

Die ultimative softcoding:

const float pi = 3.1415; // Don't want to hardcode this everywhere in case we ever need to ship to Indiana.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top