rubyのコーディング規約 @ niigata.rb #3

Post on 24-May-2015

692 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Rubyのコーディング規約

¡ ミヒャエル ¡ @mihyaeru21

¡ 長岡技術科学大学 ¡ Python, Objective-C ¡ 来年度からPerlな会社で何か ¡ 本業は提督 (レベル71)

自己紹介

Rubyの勉強会ですが

Rubyはほとんど やったことない

/(^o^)\

コーディング規約だけなら ちょっと調べればなんとか…!

¡ コードの書き方を統一 § 他人のコードも読みやすい § 自分のコードも読まれやすい § 構造の異常を発見しやい

¡ 言語や会社、団体によって様々な規約 ¡ 今回は、一般的な Ruby の規約をかるく

コーディング規約

命名規約

¡ パスカルケース ¡ “_” は使わない

ClassModuleName

Class_NamemoduleName

クラス名・モジュール名

¡ 全て小文字 ¡ 単語は動詞の原形 ¡ “_” で単語区切り

do_somethingmethod_name

methodNameDoSomethingMethod_Name

メソッド名

¡ 全て小文字 ¡ 単語は動詞/形容詞 ¡ 末尾に “?” を付与 ¡ “is_” を付けない

movable?visible?

is_movableis_visible?

メソッド名 真偽値を返す場合

¡ 全て大文字 ¡ “_” で単語区切り

CONSTANTCONSTANT_VALUE

ConstantValueBADCONSTANT

定数名

¡ 全て小文字 ¡ “_” で単語区切り

variablelong_long_variable@instance_variable$global_variable

VariablebadVariable

変数名

¡ 全て小文字 ¡ “-” で単語区切り ¡ ファイル中の主な クラス名を使う

file.rbclass-name.rb

File.rbclass_name.rb

ファイル名

構文の規約

¡ スペース2つ ¡ タブは使わない

if hoge == 1 x = fugaend

if hoge == 1 x = fugaend

インデント

¡ パラメータなし § カッコなし

¡ パラメータあり § カッコあり

def hoge return 1end

def fuga(x, y) return x * yend

def hoge()end

def fuga x, yend

メソッド定義

¡ パラメータなし § カッコなし

¡ パラメータあり § カッコあり

¡ print, puts, p § カッコなし

x = hogefuga(x, y)print x, y

x = hoge()fuga x, yprint(x, y)

メソッド呼び出し

¡ { ... } ではなく do ... endを使う

¡ 1行で書くときは { ... } を使う (メソッドチェインだけ?)

arr.each do |x| ...endarr.each { |x| ... }

arr.each { |x| ...}arr.each do |x| ... end

ブロック

¡ if の then は省略 ¡ if !hoge は unless hoge にする

¡ 条件が単純かつ 1行で書けるときは 後置の if を使う

if n == 12endunless hogeendprint n if hoge

if n == 12 thenendif !hogeendprint n if hoge && fuga && piyo

条件分岐

¡ while の do は省略

¡ while !hoge は until hoge にする

¡ 無限ループには loop do を使用

while hogeenduntil hogeendloop doend

while hoge dowhile !hoge

while true

ループ

¡ 省略しても意味解釈に影響ない部分は省略する印象 if の then や、while の do など

¡ 複雑にならないように配慮されている印象 if !x を unless に、while !x を until x にするなど

¡ 郷に入れば郷に従え(郷 = 言語, 会社, 団体, ...)

まとめ

参考: http://shugo.net/ruby-codeconv/codeconv.html

top related