ククログククログRubyで変数宣言っぽいものをした方が読みやすくなるときRubyはCのように変数宣言のための特別な構文はなく、変数に代入する式を書くとそれ以降その変数を使えるようになります。ここでは「message」変数を使えるそのため、明示的に変数を宣言しようとすることはほとんどありません。そのように書かれているRubyのコードを見ると違和感を覚えるほどです。何か特別な意図があるのではないかと考えてしまいます。"Hello"puts(message)しかし、このように変数を宣言するために代入式を使った方が読みやすくなる場合があります。いう場合かを例と理由をつけて説明します。してこのようなことを書く気になったのかというと、コミットへのコメントサービスを実施したときのコメントのやりとりで話題になり、「こういう考えでやっている」ということを説明したからです*1。スコープを広げるためには変数宣言をする「必要」がありますが、今回は、どういうときに必要かという話はしません。いうときに使うのが「オススメ」という話だけします。デフォルト値を設定するケース「オススメ」のケースはデフォルト値を設定するケースです。このケースでは変数宣言のように最初に変数を初期化する必要はありません。次のように初期化した方が読みやすくなります。これは、一見、変数宣言のように見えますが、そうではなく、単にnilを設定しているだけです。default_valuevariableこの書き方をしない場合はifを使って書いたりします。default_valueend単純な場合はこれでもよいのですが、次のように値を取得しようとしても失敗するかもしれない、という場合はデフォルト値の設定箇所が複数になります。デフォルト値の設定箇所3endこうなると複雑なので次のような形にする方がオススメです。デフォルト値の設定variableこの形では「デフォルト値の設定」という処理を1回だけ書けば済むようになっているのがよいところです。その処理をifの中ではなく必ず通るところに書いているおかげで「あぁ、この処理の塊では必ずデフォルト値を設定するんだな」感がでるのもよいところです。ifでがんばる場合だと「抜けはないよね?抜けがあったとしたらそれは意図的なもので問題ないんだよね?」というのが気になります。まとめ変数宣言をする必要のないRubyでも、変数宣言っぽいことをした方が読みやすくなるケースがあります。それは「デフォルト値を設定するケース」です。したことでも、読みやすくしたり、意図を伝えやすく書けたりするものです。この話を書くきっかけになったのは、Rubyをよく知らない人がRubyのコードのコミットを見て「Rubyはよく知らないんだけど、変数宣言はいらないのに変数宣言っぽいことをしているのはなんで?」とコメントしたことでした。このような何気ない疑問からちょっとした工夫が明文化され、開発チームの資産になったりします。間違ったところを指摘するためだけに他の人のコードをチェックするのではなく、コミットを見て、気になったことを気軽にコメントできる文化を作ってみてはいかがでしょうか。今まで気づいていなかった自分たちのよいところに気づけるかもしれませんよ。今、そのコメントを見なおしてみると、このやりとりは2013/5/13にあったので、書こう思い立ってから半年も経っていたのですね。コミットへコメントすることがメインではないので、もっとよいしっくりくるサービス名がありそうだけど。4.0とGFDLのデュアルライセンスで自由に利用できます。クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。クリアコードは「クリアコードをいい感じにする人」を1名募集しています。クリアコードはフリーソフトウェア開発で培った技術力を提供しています。Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。