Demandez conseil régulièrement
Aujourd’hui je réparais un bug, rien de très compliqué, juste un évènement qui n’était pas appelé. Et j’en ai profité pour faire un refactoring: passer d’une grosse méthode de classe à quelque chose de plus construit.
En gros on avait cette structure:
module Machin
class Truc
def self.foo(des, arguments)
# Plusieurs
# lignes
# d'initialisation
# de variables.
# Plusieurs
# lignes
# de calculs
# divers.
# Et j'en passe
# ...
end
end
end
J’ai fait un refactoring dans ce genre:
module Machin
class Truc
def self.foo
implementation = TrucImplementation.new(des, arguments)
implementation.fait_ce_que_tu_as_a_faire
end
class TrucImplementation
def initialize(des, arguments)
# Initialisation.
end
def fait_ce_que_tu_as_a_faire
# Ceci.
# Cela.
end
private
def ceci
# ...
end
def cela
# ...
end
end
end
end
Mais j’étais vraiment ennuyé avec ce nom TrucImplementation
. Je trouvais
que ça ne faisait pas très Ruby. Bref j’avais un sentiment bizarre sur ce
code donc j’ai demandé aux collègues une revue de code en disant que
j’aimerais bien nommé ça autrement…
La réponse n’a pas tardée, simple et sybilline: «Tu passes juste les méthodes de
TrucImplementation
dans Truc
et plus de soucis».
Pourquoi je raconte ça ? Pour me rappeler que parfois, avoir le nez dans le code trop longtemps fait que tu ne vois plus ce qui est évident. Il ne faut pas hésiter à demander un coup de main ; un point de vue différent, ou juste plus frais, peut vite faire une différence.
Je pense que je n’ai pas fini d’être chambré là-dessus ;)
À demain.