2012年9月10日月曜日

boolean 引数

boolean をそのまま引数に取るようなことはあまりしないようにしている。過去 ActiveRecord の save メソッドは validation をするかどうかを boolaen の引数で切り替えていた。

  save(true) #=> validation あり
  save(false) #=> validation 無し

save くらい良く使うメソッドならまだ良いが、そうではないメソッドにおいて、このような引数設計をしてしまうと、あとで読むとその boolean が何を意味するかが読み取りづらい。

rails3 からは上記メソッドは

 save :validate => false

のような書き方になっており、その boolean で何を切り替えているのかが呼び出し元を見てわかるようになっている。自分でメソッドを作る場合もこれに倣うようにしている。

0 件のコメント:

コメントを投稿