かれこれ 4 年近く Ruby と Rails を触っているのですが、それでもいまだに初歩的なことで「これ、どうしよう?」と悩んだり、「以前はこうしたけど、今回はどうしよう?」という問題にぶつかる日々です。
先日再びぶつかったのがタイトルのとおり、boolean 型の値を保持するカラムの命名です。この手の問題は命名規約と既存のテーブルの板挟みに合うことがよくありますが、今回は新プロジェクトだったことと、Rails での boolean 型に関しては命名規約が見当たらなかったので余計に悩みました。
候補として挙がるのは 2 案ですね。例として削除フラグ(論理削除は筋悪という議論は置いておきます)を作ろうとした場合
1. deleted
2. is_deleted
この 2 つの間で悩みます。PHP をやってた頃は delete_flag みたいな名前をつけているのを見かけましたが、Ruby 界隈ではあまり見ない気がします。それと海外の文献を見ててもあまり見かけない気がしますが、私の観測範囲はそんなに広くないので偏見かもしれません。
話を戻して、1 番か 2 番かで悩んでいるわけですが、今回参考にしたのは Stack Overflow の回答でした。公式ドキュメントとかじゃないのかってツッコミは勘弁して下さい、見つけられなかったのです…。
convention - rails boolean fields: is_foo or just foo? - Stack Overflow
http://stackoverflow.com/questions/3112078/rails-boolean-fields-is-foo-or-just-foo
Rails で even?, nil?, empty?, blank?といった使われ方をしているのに対して is で始まるのは is_a?ぐらいしか思い浮かばない、だからis_を取り除いた方が良いのではないだろうかというコメントが支持されていますね。Ruby では変数の後ろに?を付けると true false の判定が行われるので、それもこのシンプルさの手助けをしています。
というわけで私はひとまず 1 番の deleted を採用しました。とはいえ正解・不正解を見つけたわけではないのであくまで主観です。それに変数名によっては変更せざるを得ないので(例:public 等の予約語)、高度の柔軟性を維持しつつ臨機応変に対処する必要がありそうです。