10-09-2011, 06:13 PM
(Modification du message : 10-09-2011, 06:41 PM par Sephi-Chan.)
Pourquoi trop ? Qu'est-ce que tu crains ?
Je n'ai jamais lu aucune contre-indication sur la quantité de constantes et quand bien même, ça n'a aucune importance : tout ce qui est bon pour la lisibilité doit être fait.
En Ruby, j'utilise pas mal les constantes. Sinon il existe les symboles (qu'on utilise généralement pour les clés de hash), qui correspondent en interne à des nombres et sont donc très efficaces en terme d'occupation mémoire.
Après, Ruby s'y prête bien parce que les constantes sont faciles à définir (exactement comme une variable, mais en majuscule), mais si je faisais du PHP, c'est quand même ce que je ferais.
Je n'ai jamais lu aucune contre-indication sur la quantité de constantes et quand bien même, ça n'a aucune importance : tout ce qui est bon pour la lisibilité doit être fait.
En Ruby, j'utilise pas mal les constantes. Sinon il existe les symboles (qu'on utilise généralement pour les clés de hash), qui correspondent en interne à des nombres et sont donc très efficaces en terme d'occupation mémoire.
class Game < ActiveRecord::Base
MAXIMUM_PARTICIPATIONS_COUNT = 5
UNITS_COUNT_AT_BEGINNING = 25
PLAYER_COLORS = %w( blue green orange purple yellow )
# States.
WAITING_FOR_PLAYERS = 10
DEPLOYMENT = 20
RUNNING = 30
FINISHED = 40
default_value_for tate, Game::WAITING_FOR_PLAYERS
has_many :ownerships
has_many :participations
has_many :users, through: :participations
# Keep games with free slots.
def self.not_full
where { participations_count < Game::MAXIMUM_PARTICIPATIONS_COUNT }
end
# Assign territories and set the limit time.
def start_deployment!
update_attributes!(state: Game:EPLOYMENT, deployment_finish_at: 24.hours.from_now)
dispatch_territories!(Territory.all.shuffle, participations.shuffle)
end
end
Après, Ruby s'y prête bien parce que les constantes sont faciles à définir (exactement comme une variable, mais en majuscule), mais si je faisais du PHP, c'est quand même ce que je ferais.