_ [Ruby]Rubyの教科書
某大学に通う弟からメールが届いた。
彼の大学の後期の教科書のリストにRuby関連の本が大量に選定されているらしい。
どうやらRubyでプログラミング入門を教える先生がいるということのようだ。
弟はその授業を受けないようだが、これでまた一歩野望に近づいた、な。
_ [Ruby]コーディングスタンダード
社内メーリングリストでRubyのコーディングスタンダードの話題が持ち上がる。
個人的には「自分で勝手に決めて」という感じなのだが、
まあ、私のスタイルを参考にしたい人もいるだろうということで、
まとめてみた。
その転載。
- ローカル変数名はすべて小文字。単語の区切りは"_"。
- インスタンス変数名は(先頭の"@"以外は)すべて小文字。
- クラス名、モジュール名は、先頭は大文字、続
く単語も先頭の文字を大文字に(つまりCamelCaseStyle)。
- クラス・モジュール以外の定数は全部大文字。単語の区切りは"_"。
- メソッド名は一部の例外を除きすべて小文字。
- 述語メソッド(真偽値を返すメソッド)には末尾に"?"をつける。
- "!"をつけるようなメソッドはなるたけ作らない。
- ライブラリファイル名はそのファイルが提供するクラス名・メ
ソッド名を小文字化したもの(もしあれば)。そのような「名前」
はできるだけ一単語のものを用いる。
- モジュールをネストする時には'foo/bar'のような形にディレ
クトリを分ける。
- 真偽値の判定には"== true"という判定を行わない。なぜなら
Rubyではtrueは唯一の真値ではないから。
- メソッド名とメソッド引数のまわりの括弧の間に空白を置かな
い。なぜなら警告されるから。
- 演算子の両側に空白をいれる。または両側に空白をいれない。
当たり前。
- kind_of?やisa?を使わない。DuckTyping推奨。
- ライブラリファイルの末尾には if __FILE__ == $0 で囲んで
テストケース(かサンプルプログラム)を書いておくとよい。
- 他人が使うRubyプログラムにはRDocコメントをつけておく(と
良いと思うが、自分ではなかなかできてない)。
- インデントは2。なぜなら空間効率が高いから。
- 自明なことはコメントしない。なぜなら本当に大切なコメント
が埋没してしまうから。
- 「未来の自分が混乱しそう」と思ったことは躊躇せずコメント
する。そうでなければコメントはあまり必要ない。
- 「本当に必要だ」と感じた時以外はメソッドは20行以内に抑え
る(数はどうでもよい、目安に過ぎない)。例外は巨大なcase文
を含むディスパッチコードくらいか。
- 共通機能部分はモジュールにくくり出す。
お役に立つか、立たないか。ご参考までに。
追記
もう一つ参考に。うちの会社で使っている規約を紹介しておきます。こっちの方が具体的かな。
追加-ハンガリアン記法は使わない。
一昨年、とある女子大の助手さんからプログラミングの講義でrubyを使っているという話を聞きました。これでまた野望に一歩...。