04-09-2009, 07:35 AM
(Modification du message : 04-09-2009, 08:56 AM par Sephi-Chan.)
Si tu crois développer bien dès le départ, c'est que tu n'évolues pas. Si tu évolues, tu vas très rapidement avoir un œil très critique sur ton propre code. Or, faire du code peu lisible sous peine d'optimiser des conneries, c'est mauvais.
Si tu veux un vraie preuve de code peu évolutif, je peux te citer ton exemple sur Petite solution pour alléger le code de certains. C'est une catastrophe du point de vue de la maintenabilité et de l'évolutivité.
Une bonne solution, c'est d'utiliser une base de données : avec le coût des bâtiments dans la table bâtiments. Ce genre de table est quasiment statique puisqu'elle ne contient que les bâtiments existants.
Cette table est mise en cache dans un fichier un fichier (JSON, XML ou YAML) ou grâce à Memcached. Et tu y accèdes de manière totalement transparente en faisant toujours des :
C'est bien plus simple, élégant, maintenable, évolutif, etc. Et c'est là que les frameworks entrent en jeu : ils te permettent de faire tout ça de manière transparente, de changer très simplement de technique de cache, etc. Et même sans framework, seulement en jouant un peu avec l'orienté objet et l'abstraction, tu ferais déjà un pas en avant.
Ton problème, c'est vraiment de ne croire qu'en toi, alors que quand je lis le post cité plus haut, le débat sur les exceptions, etc. je me dis que tu progresserais si tu écoutais les autres.
Enfin bref, faut évoluer un peu, comme un petit Pokémon !
Sephi-Chan
Si tu veux un vraie preuve de code peu évolutif, je peux te citer ton exemple sur Petite solution pour alléger le code de certains. C'est une catastrophe du point de vue de la maintenabilité et de l'évolutivité.
Une bonne solution, c'est d'utiliser une base de données : avec le coût des bâtiments dans la table bâtiments. Ce genre de table est quasiment statique puisqu'elle ne contient que les bâtiments existants.
Cette table est mise en cache dans un fichier un fichier (JSON, XML ou YAML) ou grâce à Memcached. Et tu y accèdes de manière totalement transparente en faisant toujours des :
@building = Building.find(3)
@user = current_user
# Ah ben rien ne change, tout est encapsulé dans le modèle User !
if @user.has_enought_resources_for?(@building)
# ...
else
# ...
end
C'est bien plus simple, élégant, maintenable, évolutif, etc. Et c'est là que les frameworks entrent en jeu : ils te permettent de faire tout ça de manière transparente, de changer très simplement de technique de cache, etc. Et même sans framework, seulement en jouant un peu avec l'orienté objet et l'abstraction, tu ferais déjà un pas en avant.
Ton problème, c'est vraiment de ne croire qu'en toi, alors que quand je lis le post cité plus haut, le débat sur les exceptions, etc. je me dis que tu progresserais si tu écoutais les autres.
Enfin bref, faut évoluer un peu, comme un petit Pokémon !
Sephi-Chan