Optez pour la deuxième approche, simplement parce que vous pouvez introduire de nouveaux types de ressources ou éléments à tout moment sans avoir à réécrire ou mettre à jour le code ( développement piloté par les données ).
Modifier:
Pour en savoir un peu plus sur les raisons pour lesquelles il s'agit d'une bonne pratique générale, même si vous êtes sûr à 100% qu'une valeur ne changera jamais.
Prenons l'exemple du jeu sur console mentionné dans les commentaires, car cela fournit une très bonne raison pour laquelle vous ne devriez rien coder en dur, sauf si vous en avez vraiment (ou voulez), par exemple des clés de cryptage, votre propre nom, etc.
Lors de la sortie d'un jeu sur des consoles, celles-ci doivent généralement passer par un processus d'examen, où le propre AQ du fabricant de la console testera le jeu, le jouera, recherchera les problèmes, etc. Ceci est obligatoire et coûte de l'argent, beaucoup d'argent. Je pense avoir lu une fois qu'une version pourrait coûter entre 30 000 et 50 000 $ rien que pour la certification.
Imaginez maintenant que vous poussiez votre jeu à sortir, en payant les 30 000 $ et attendez. Et soudain, vous remarquez que certaines de vos valeurs de jeu sont littéralement brisées. Disons que vous pouvez acheter des barres de fer pour 50 pièces d'or et les vendre pour 55 pièces d'or.
Que faire? Si vous avez codé en dur ce genre de choses, vous devrez créer une nouvelle version de mise à jour / version, qui devra être revue une fois de plus, alors dans le pire des cas, vous paierez à nouveau pour la recertification! Je parie qu'Ubisoft ne m'en voudra pas, mais pour votre propre poche de développeur de jeux indépendants… aïe!
Mais imaginez que le jeu vérifie occasionnellement les définitions de jeu mises à jour (par exemple sous la forme d'un fichier JSON). Votre jeu peut télécharger et utiliser la dernière version à tout moment sans nécessiter de nouvelle mise à jour. Vous pouvez corriger ce déséquilibre / exploiter / bug à tout moment sans exiger de recertification ou tout autre argent payé. Juste une petite décision de conception, vous ne pensiez pas que cela en valait la peine, vous avez simplement économisé une somme d'argent à 5 chiffres! N'est-ce pas génial? :)
Ne vous méprenez pas. Cela s'applique également à d'autres types de logiciels et de plates-formes. Le téléchargement de fichiers de données mis à jour est en général beaucoup plus facile et réalisable pour l'utilisateur standard, qu'il s'agisse d'un jeu ou d'une sorte d'application / d'outil. Imaginez un jeu installé sous Program Files dans Windows. Votre programme de mise à jour a besoin de droits d'administrateur pour modifier quoi que ce soit et vous ne pouvez pas modifier les programmes en cours d'exécution. Avec DDD, votre programme télécharge simplement les données et les utilise. Le joueur pourrait même ne pas remarquer qu'il y a eu une mise à jour.