江の島エンジニアのTips集
Rails

Railsコーディング規約

自分なりのRailsコーディング規約をまとめてみました。 (2015/01/23)

Railsコーディング規約

規約に限らず自分でコーディングする際に気を付けていることです.

事前準備: チュートリアル

ブランチ管理

コーディング規約

  • 以下のコーディング規約に準拠
  • 不要なselfは記述しません
  • 不要なreturnは記述しません
  • 不要なバックスラッシュは記述しません
  • ファイルの末尾は改行1個で終わらせます
  • 委譲の際はForwardableを利用します
  • 変数名、メソッド名ではどのような場合でも省略形を使いません

Ruby

  • 十分なドキュメントが見つからない場合はmethod(:create).sourcemethod(:create).source_locationなどを使ってソースを読む

RSpec

Module

  • ヘルパーモジュールの場合は-ableという名前にします

Rails

  • 規約通りの設定は省略する

MySQL

  • テンポラリテーブルは’CREATE TEMPORARY TABLE’で作成する
  • 特に理由がなければCREATE TABLEでCHARSETとCOLLATEは設定しない

Model

  • スキーマ定義
    • 外部キーにはintegerではなくreferencesを利用します
    • null: falseでnot null制約を設定します
    • 1カラムのインデックスはindex: trueで設定します
    • 1行文字列はstring型に, 複数行文字列はtext型にします
    • natural keyにはadd_index :items, [:key1, :key2], unique: trueでUNIQUE制約を設定します
  • 階層化する場合はtable_name_prefixメソッドを定義する

View

  • render model, render modelsでの_modelパーシャル呼び出しを積極的に利用します

Controller

Locale

  • エラーメッセージの末尾には句点(。)をつける
  • ネストした設定はネスト先のモデルでまとめて設定する

フォームUI

  • 「〜」「未満、以下、以上」はどちらかに揃えます
  • placeholderは積極的に設定します
  • ラジオボタン/チェックボックスにはラベルを設定します
label
  = f.radio_button :blood_type, :a, checked: f.object.blood_type
  | A型

label
  = f.check_box :tags, checked: true, multiple: true
  | Ruby
  • 入力不備のアラートは空の場合には基本的に出しません
  • 未選択状態の場合は「▼項目名」のように選択肢と異なることがわかるようにします
  • 必須項目には必須マークを表示します

ワークフロー

  • チケットへのコメントの際は前のコメントを再確認します

プルリクエスト

  • プルリクエスト作成前に各コミットを自分でレビューします

Github

  • インデントの差分確認ではw=1を指定する

デプロイ

  • DBへの無駄なリクエストが飛んでいないか確認する
  • このエントリーをはてなブックマークに追加
  • follow us in feedly