Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2004-10-06)
[go: Go Back, main page]

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

Matzにっき

<< 2004/10/ 1 1. ChangeLog
2. 長女の帰還
3. Ruby Conference 2004
4. U-20プログラミングコンテスト表彰式
2 1. 文法のデザイン
2. 初心者パラドックス
3. DSL(domain specific language)と組み込み言語
3 1. 松江、そして岡山
4 1. AC
2. (行ってないのに)RubyConf 2004レポート
5 1. コダック、Java特許訴訟で勝訴--判決に批判の声が噴出
2. tDiary 2.0
6 1. Rubyの教科書
2. コーディングスタンダード
7 1. Skype
2. 携帯電話の2画面特許,NECとドコモ側が東京地裁で勝訴
8 1. [特許]KodakとSun、オブジェクト特許で和解
2. テレビ番組の録画サービス、東京地裁が差し止め命令
3. rubyist.netドメイン
4. Amazonアソシエイト支払い履歴の罠
9 1. 総大会ビデオ
2. キリスト教信仰
10 1. 総大会ビデオ(その2)
11 1. 市立図書館
2. ブラックジャック
3. 来客・家庭の夕べ
4. Skypeコール
12 1. 『ソフトウェアの匠』
2. 島根県が“地元発オープンソース言語”Rubyの講習会,地域のIT人材育成を目指す
3. 知財プロ
4. 『リーグ・オブ・レジェンド 』
13 1. 知財あれこれ
14 1. DRMとDMCRA
2. 突然の仕事
15 1. 忙しい
2. DRMのあるべき姿
16 1. 洗濯機
2. Skypeコンファレンスコール
3. 『Beyond C++』
17 1. 好きな言葉
2. 岡山
18 1. 東京出張
19 1. 地方でのRuby意識
20 1. JASRAC、CCCD廃止の流れに疑問を提示〜船村徹会長ら新役員が会見
2. 台風28号
21 1. コンテンツ業界の硬直化が生む最悪のシナリオ
2. クマデス
22 1. 「Curl」言語普及促進へ新会社
2. 松本零士氏の珍妙なる主張
3. 関西オープンソース 2004
23 1. 関西オープンソース2004に参加
2. recommuni
24 1. 松江
25 1. LogoはLispじゃない(当たり前)
2. Ruby講習会初級コース前半1日目
3. 「300年ぶりの著作権のパラダイム・シフトが起きている」−経済産業省 村上敬亮氏
4. 検索メールリーダー
26 1. Ruby講習会初級コース前半2日目
2. Logoの式
3. 好かれる言語、広まる言語
27 1. 『プログラミングのための線形代数
28 1. 出産と満月
2. 誕生
29 1. 特許は地雷か
2. 名前重要
30 1. 親子活動
2. ハロウィーンパーティ
31 1. 松江
2. 新潟中越地震について
>>
迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


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文 を含むディスパッチコードくらいか。
  • 共通機能部分はモジュールにくくり出す。

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

追記

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

本日のツッコミ(全2件) [ツッコミを入れる]
_ AC (2004-10-08 14:19)

追加-ハンガリアン記法は使わない。

_ さくらい (2004-10-08 18:48)

一昨年、とある女子大の助手さんからプログラミングの講義でrubyを使っているという話を聞きました。これでまた野望に一歩...。

お名前:
E-mail:
コメント:

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

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.