«前の日記(2004年10月05日) 最新 次の日記(2004年10月07日)» 編集

Matzにっき


2004年10月06日 [長年日記]

_ [Ruby]Rubyの教科書

某大学に通う弟からメールが届いた。 彼の大学の後期の教科書のリストにRuby関連の本が大量に選定されているらしい。

どうやらRubyでプログラミング入門を教える先生がいるということのようだ。 弟はその授業を受けないようだが、これでまた一歩野望に近づいた、な。

_ [Ruby]コーディングスタンダード

社内メーリングリストでRubyのコーディングスタンダードの話題が持ち上がる。 個人的には「自分で勝手に決めて」という感じなのだが、 まあ、私のスタイルを参考にしたい人もいるだろうということで、 まとめてみた。

その転載。

  • ローカル変数名はすべて小文字。単語の区切りは"_"。
  • インスタンス変数名は(先頭の"@"以外は)すべて小文字。
  • クラス名、モジュール名は、先頭は大文字、続 く単語も先頭の文字を大文字に(つまりCamelCaseStyle)。
  • クラス・モジュール以外の定数は全部大文字。単語の区切りは"_"。
  • メソッド名は一部の例外を除きすべて小文字。
  • 述語メソッド(真偽値を返すメソッド)には末尾に"?"をつける。
  • "!"をつけるようなメソッドはなるたけ作らない。
  • ライブラリファイル名はそのファイルが提供するクラス名・メ ソッド名を小文字化したもの(もしあれば)。そのような「名前」 はできるだけ一単語のものを用いる。
  • モジュールをネストする時には'foo/bar'のような形にディレ クトリを分ける。
  • 真偽値の判定には"== true"という判定を行わない。なぜなら Rubyではtrueは唯一の真値ではないから。
  • メソッド名とメソッド引数のまわりの括弧の間に空白を置かな い。なぜなら警告されるから。
  • 演算子の両側に空白をいれる。または両側に空白をいれない。 当たり前。
  • kind_of?やisa?を使わない。DuckTyping推奨。
  • ライブラリファイルの末尾には if __FILE__ == $0 で囲んで テストケース(かサンプルプログラム)を書いておくとよい。
  • 他人が使うRubyプログラムにはRDocコメントをつけておく(と 良いと思うが、自分ではなかなかできてない)。
  • インデントは2。なぜなら空間効率が高いから。
  • 自明なことはコメントしない。なぜなら本当に大切なコメント が埋没してしまうから。
  • 「未来の自分が混乱しそう」と思ったことは躊躇せずコメント する。そうでなければコメントはあまり必要ない。
  • 「本当に必要だ」と感じた時以外はメソッドは20行以内に抑え る(数はどうでもよい、目安に過ぎない)。例外は巨大なcase文 を含むディスパッチコードくらいか。
  • 共通機能部分はモジュールにくくり出す。

お役に立つか、立たないか。ご参考までに。

追記

もう一つ参考に。うちの会社で使っている規約を紹介しておきます。こっちの方が具体的かな。


«前の日記(2004年10月05日) 最新 次の日記(2004年10月07日)» 編集