2010-11-30 11 views
0

Angenommen, ich habe einige Daten, die ich möchte mehrere Arten von. Ich denke, das einfachste Beispiel könnten Spielsteine ​​in einem Spiel sein: Ich hätte Gras, Stein, Baum usw. mit jeweils unterschiedlichen Werten.Datendateien bei Verwendung von interpretierten Sprachen

Ich würde sofort fortfahren und eine Datei erstellen und es zur Laufzeit einlesen, so dass ich nicht alles für eine Optimierung mit etwas wie C++ neu kompilieren müsste. Aber wenn ich mit Python oder eine andere interpretiert wird Sprache, gäbe es viel Punkt in mit wie die Datei in einem Format zu machen:

Art Gras
Farbe 0xdfdfdf
Spaziergang wahre
wahr sehen

Statt:

Klasse Gras (Dachziegel):
def init (self):
Ich kann mich nicht erinnern, wie zu init. Eltern
self.colour = 0xdfdfdf

Der offensichtliche Vorteil des ersten verloren geht, wenn Sie kompilieren nicht.

Antwort

1

Mehrere andere Gründe, nicht zuletzt, dass ein Nicht-Coder die Konfiguration ändern kann, machen wir es ihnen bequem.

Sie können viele verschiedene Konfigurationsdateien für verschiedene Situationen haben. Wenn Sie Ihren code-basierten Ansatz verwenden, haben Sie einen echten, syntaktisch komplexeren Code, der für jede andere Konfigurationsinstanz repliziert wird. Ich würde behaupten, dass mehrere Kopien von Code eine schlechte Sache sind.

Außerdem muss config nicht von einer Datei kommen, es könnte (zum Beispiel) in einer Datenbank sein - in verteilten Systemen, die besser als eine Datei sein können. Daher kann die Trennung von Code und Konfiguration Flexibilität geben.

+0

Wenn ich die Anforderungen leicht änderte - so dass die einzigen Leute, die dies bearbeiteten, Coder sein würden, und dass es nur von Dateien gemacht wird, würde die Zeit, die durch die Komplizierung der Syntax verloren geht, so groß sein Verlust gegen die Zeit, um einen Parser zu schreiben und zu integrieren? –

+0

In einigen Sprachen wie Java ist das Lesen einer Eigenschaftendatei als Standardfunktion einfach verfügbar. So können Sie bereits eine Standardfunktionalität haben. Mein Appraach ist im Allgemeinen, dass ich solche Dinge in meinem Toolkit tendiere, so dass die Build/Integrate-Kosten im Laufe der Zeit ziemlich gering sind. – djna

Verwandte Themen