Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rubyのコーディング規約 @ Niigata.rb #3

1,011 views

Published on

Niigata.rb #3 の資料です。
ほとんど参考サイトからかいつまんだ程度をアップするのは忍びない気も…。

Published in: Technology
  • Be the first to comment

Rubyのコーディング規約 @ Niigata.rb #3

  1. 1. Rubyのコーディング規約
  2. 2. ¡ ミヒャエル ¡ @mihyaeru21 ¡ 長岡技術科学大学 ¡ Python, Objective-C ¡ 来年度からPerlな会社で何か ¡ 本業は提督 (レベル71) 自己紹介
  3. 3. Rubyの勉強会ですが
  4. 4. Rubyはほとんど やったことない /(^o^)\
  5. 5. コーディング規約だけなら ちょっと調べればなんとか…!
  6. 6. ¡ コードの書き方を統一 § 他人のコードも読みやすい § 自分のコードも読まれやすい § 構造の異常を発見しやい ¡ 言語や会社、団体によって様々な規約 ¡ 今回は、一般的な Ruby の規約をかるく コーディング規約
  7. 7. 命名規約
  8. 8. ¡ パスカルケース ¡  _ は使わない Class ModuleName Class_Name moduleName クラス名・モジュール名
  9. 9. ¡ 全て小文字 ¡ 単語は動詞の原形 ¡  _ で単語区切り do_something method_name methodName DoSomething Method_Name メソッド名
  10. 10. ¡ 全て小文字 ¡ 単語は動詞/形容詞 ¡ 末尾に ? を付与 ¡  is_ を付けない movable? visible? is_movable is_visible? メソッド名 真偽値を返す場合
  11. 11. ¡ 全て大文字 ¡  _ で単語区切り CONSTANT CONSTANT_VALUE ConstantValue BADCONSTANT 定数名
  12. 12. ¡ 全て小文字 ¡  _ で単語区切り variable long_long_variable @instance_variable $global_variable Variable badVariable 変数名
  13. 13. ¡ 全て小文字 ¡  - で単語区切り ¡ ファイル中の主な クラス名を使う file.rb class-name.rb File.rb class_name.rb ファイル名
  14. 14. 構文の規約
  15. 15. ¡ スペース2つ ¡ タブは使わない if hoge == 1 x = fuga end if hoge == 1 x = fuga end インデント
  16. 16. ¡ パラメータなし § カッコなし ¡ パラメータあり § カッコあり def hoge return 1 end def fuga(x, y) return x * y end def hoge() end def fuga x, y end メソッド定義
  17. 17. ¡ パラメータなし § カッコなし ¡ パラメータあり § カッコあり ¡ print, puts, p § カッコなし x = hoge fuga(x, y) print x, y x = hoge() fuga x, y print(x, y) メソッド呼び出し
  18. 18. ¡ { ... } ではなく do ... endを使う ¡ 1行で書くときは { ... } を使う (メソッドチェインだけ?) arr.each do |x| ... end arr.each { |x| ... } arr.each { |x| ... } arr.each do |x| ... end ブロック
  19. 19. ¡ if の then は省略 ¡ if !hoge は unless hoge にする ¡ 条件が単純かつ 1行で書けるときは 後置の if を使う if n == 12 end unless hoge end print n if hoge if n == 12 then end if !hoge end print n if hoge && fuga && piyo 条件分岐
  20. 20. ¡ while の do は省 略 ¡ while !hoge は until hoge にする ¡ 無限ループには loop do を使用 while hoge end until hoge end loop do end while hoge do while !hoge while true ループ
  21. 21. ¡ 省略しても意味解釈に影響ない部分は省略する 印象 if の then や、while の do など ¡ 複雑にならないように配慮されている印象 if !x を unless に、while !x を until x にするな ど ¡ 郷に入れば郷に従え(郷 = 言語, 会社, 団体, ...) まとめ 参考: http://shugo.net/ruby-codeconv/codeconv.html

×