【保存版】Rubyスタイルガイド(日本語・解説付き)総もくじ

こんにちは、hachi8833です。 「Rubyスタイルガイドを読む」シリーズのバックナンバーを改定し、「Rubyスタイルガイド(解説付き)」と題して総もくじ記事といたしました。 本スタイルガイドの元になっているbbatsov/ruby-style-guideは、同じ著者によるRuboCop gemで使われているスタイルです。 誤りや原文の追加・更新にお気づきの場合は、末尾のフォームまたは@techrachoでお知らせください。 1. ソースコードレイアウト (1)エンコード、クラス定義、スペースなど 通し番号 カテゴリ スタイル 1-01 【統一】 ファイルエンコーディングはUTF-8にする 1-02 【統一】 インデントはスペース2文字で表現する 1-03 【統一】 改行文字はUnixスタイル(LFのみ)とする 1-04 【統一】 セミコロン;は文の区切りとしては使わない 1-05 【統一】 本文のない、空のクラス定義は1行で書くのが好ましい 1-06 【統一】 1行に多数の式を書くメソッド(シングルラインメソッド)は避ける 1-07 【統一】 演算子の前後にはスペースを置き、カンマ・コロン・セミコロンの後ろにもスペースを置く 1-07a 【例外】 累乗演算子**の場合はスペースを前後に置かない 1-08 【統一】 ()や[]のすぐ内側にはスペースを置かず、{}のすぐ内側にはスペースを置く 1-08a 【例外】 式展開(interpolation)では波かっこ{}のすぐ内側にスペースを置かない (2)インデント、記号など 通し番号 カテゴリ スタイル 1-09 【統一】 感嘆符!の後ろにはスペースを置かない 1-10 【統一】 範囲演算子..や…の前後にはスペースを置かない 1-11 【統一】 case文内部のwhenのインデントの深さはcaseと同じにする 1-12 【統一】 変数に代入する条件式の後続文は、条件式と同じ位置にインデントを揃える 1-12a 【選択】 1-12のインデントスタイルは「良好1」「良好2」から選べる 1-13 【統一】 メソッド定義とメソッド定義の間には空行を置き、論理上のパラグラフ区切りにも空行を置く 1-14 【統一】 メソッド呼び出しの末尾パラメーターの後ろにはカンマを置かない(特にメソッド呼び出しが1行の場合) 1-15 【統一】 メソッドのパラメータでデフォルト値を与える場合、=の前後にはスペースを置く) 1-16 【統一】 \で行を継続するのは避ける(文字列の結合での利用のみ認める) 1-17 【統一】【選択】 ドット.によるメソッドチェーンの行分割はOption A(1-17a)とOption B(1-17b)のいずれかに揃える 1-18 【統一】 メソッド呼び出しを2行以上に分割する場合はパラメータを揃える 1-19 【統一】 配列リテラルの要素を複数行に分割する場合は縦を揃える 1-19a 【選択】 配列リテラルのブラケット[も次の行に送ってよい 1-20 【統一】 桁数の多い数値はアンダースコア_で区切る 1-21 【統一】 数値のprefixは小文字で書く(0x、0o、0bなど) 1-22 【統一】 (更新)APIドキュメントにはYARDを使う 1-23 【統一】 1行は80文字以内とする 1-24 【統一】 行末にスペース文字(ホワイトスペース)を置かない 1-25 【統一】 ファイルの末尾には空行を1つ置く 1-26 【統一】 =beginと=endによるブロックコメントは使わない 2. 文法 (1)メソッド定義、引数、多重代入など 通し番号 カテゴリ スタイル 2-01 【統一】 ::は、定数(クラスやモジュールも含む)、コンストラクタ(Array()やNokogiri::HTML()など)の参照にのみ使う 2-02 【統一】 メソッド定義にパラメータがない場合は、def行のメソッドにかっこ()をつけない 2-03 【統一】 メソッド呼び出しのかっこ()は省略しない(特に第1引数がかっこ()を使った式の場合) 2-03a 【例外】 次の場合のみかっこ()を省略する:「引数のないメソッド呼び出し」「内部DSLの一部となっているメソッド呼び出し」「ステータスをキーワードで指定するメソッド」 2-04 【統一】 オプション引数は引数リストの末尾に置く 2-05 【統一】 メソッドに論理値を引数として渡す場合はキーワード引数を使う 2-06 【統一】 キーワード引数の方がオプション引数よりも望ましい 2-07 【統一】 変数定義での多重代入は避ける (2)アンダースコア、多重代入、三項演算子、if/unless 通し番号 カテゴリ スタイル 2-06 【統一】 多重代入の左辺で単独のアンダースコア_変数を末尾に置くことはなるべく避ける 2-07 【統一】 forは原則使わない 2-08 【統一】 thenは、ifやunlessが複数行の場合は使わない 2-09 【統一】 ifやunlessと条件は常に同じ行に書く 2-10 【統一】 三項演算子(?と:)の利用を推奨する 2-11 【統一】 三項演算子はネストしないこと 2-12 【統一】 if x; …は三項演算子にする 2-13 【統一】 ifやunlessが値を返す機能を積極的に使う 2-14 【統一】 case文で、1行で終わるwhen節ではthenを使う(when x; …は使わない) (3)演算子とif/unless 通し番号 カテゴリ スタイル 2-15 【統一】 否定は!演算子で表すこと(notは使わない) 2-16 … Continue reading 【保存版】Rubyスタイルガイド(日本語・解説付き)総もくじ