2010-11-30 37 views
0

Disons que j'ai des données dont je veux plusieurs types. Je pense que l'exemple le plus simple pourrait être celui des tuiles dans un jeu: j'aurais de l'herbe, du rock, de l'arbre, etc. avec des ensembles de valeurs différents. Je voudrais immédiatement aller de l'avant et faire un fichier et le lire à l'exécution, donc je ne devrais pas recompiler le tout pour un tweak avec quelque chose comme C++. Mais si j'utilisais Python, ou une autre langue intepreted, y aurait-il beaucoup de sens à faire le fichier dans un format comme:Fichiers de données lors de l'utilisation de langages interprétés

type herbe
couleur 0xdfdfdf
promenade vrai
voir vrai

plutôt que:

herbe classe (tuiles):
def init (moi-même):
Je ne me souviens pas comment init. les parents
self.colour = 0xdfdfdf

L'avantage évident de la première est perdu, quand vous ne compilez pas.

Répondre

1

Plusieurs autres raisons, pas moins qu'un non-codeur peut changer la config, rendons-les confortables.

Vous pouvez avoir de nombreux fichiers de configuration différents pour différentes situations. Si vous utilisez votre approche basée sur le code, vous avez un vrai code syntaxiquement plus complexe, répliqué pour chaque instance de configuration différente. Je prétends que plusieurs copies de code est une mauvaise chose.

De plus, config ne doit pas provenir d'un fichier, il peut être (par exemple) dans une base de données - dans des systèmes distribués qui peuvent être meilleurs qu'un fichier. Par conséquent, la séparation du code et de la config peut donner de la flexibilité.

+0

Si je modifiais légèrement les exigences - de sorte que les seules personnes qui éditeraient ceci seraient des codeurs, et que cela ne serait fait que par des fichiers, le temps perdu en compliquant la syntaxe serait-il perte contre le temps nécessaire pour écrire un analyseur et l'intégrer? –

+0

Dans certaines langues, telles que Java, la lecture d'un fichier de propriétés est trivialement disponible en tant que fonctionnalité standard. Vous avez donc peut-être déjà une capacité disponible sur le marché. Mon approche est généralement que j'ai tendance à avoir de telles choses dans ma boîte à outils, donc au fil du temps, le coût de construction/intégration est assez faible. – djna