Rubyを使っているプロジェクトのコーディング規約を見てみよう【Ginza.rb #20】


2015/2/17にみんなのウェディングさんで開催された
Ginza.rb 第20回 Rubyを使っているプロジェクトのコーディング規約を見てみよう
に参加してきました。コーディング規約をじっくり議論できる場所はなかなかなかので、かなりおもしろかったです!


🏈 スタイルガイド

今回Ginza.rbで一緒に読んだコーディング規約。

Rubyのコーディング規約

ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide

Railsのコーディング規約

rails-style-guide/README-jaJA.md at master · satour/rails-style-guide

🐮 おもしろかった規約

議論に聞き入りすぎて、あんまりメモしきれませんでしたが今日から使いたいコーディング規約の俺得メモです。

whenはcaseと同じ深さにそろえる

このスタイルは”The Ruby Programming Language”、”Programming Ruby” 双方で確率されている。
matzのオススメ「良い例」だそうです!

# 悪い例
case
when song.name == 'Misty'
puts 'Not again!'
when song.duration > 120
puts 'Too long!'
when Time.now.hour > 21
puts "It's too late"
else
song.play
end

# 良い例
case
when song.name == 'Misty'
puts 'Not again!'
when song.duration > 120
puts 'Too long!'
when Time.now.hour > 21
puts "It's too late"
else
song.play
end

なぜRubyのcase/whenはインデントしないのかを考えてみた - give IT a try

大きな数にはアンダースコアを入れる

ついつい忘れがちだけど大切!

# 悪い例 - 0はいくつありますか?
num = 1000000

# 良い例 - 人の頭でもより簡単に解析できます
num = 1_000_000

🐠 self[:attribute]を使おう

```

## Railsの国際化(i18n)の「lazy lookup」について

辞書ファイルで下のように訳語が定義されている場合、app/views/users/show.html.hamlでは次の呼び出し方でusers.show.titleを呼び出すことができます。
このような呼び出し方を "lazy lookup" と呼びます。

config/locales/en.yml

en:
users:
show:
title: ‘User details page’

app/views/users/show.html.haml

🚜 悪い例

= t users.show.title

🎂 良い例

= t ‘.title’
`

🍮 最新のスキーマでDBを作る場合

Rake db:migrateでなくRake db:schema:loadを利用しよう。

🚕 おもしろそうなGem

brakeman

presidentbeef/brakeman - GitHub

セキュリティ関係の静的解析をしてくれるGem。

active_attr

cgriego/active_attr

アクティブモデルっぽい動作を実装してくれるGem。

friendly_id

norman/friendly_id

ユーザーフレンドリーなIDを生成してくれるGem。

mailcatcher

sj26/mailcatcher

シンプルなSTMPサーバとして振る舞ってくれるGem。

roadie

Mange/roadie

HTMLメールを作りやすくしてくれるGem。

👽 おもしろそうなサービス

Hound

Hound

コーディング規約をチェックしてくれるサービス。オープンソースなら無料で使えます!

ninefold

ninefold

Rails専門のPaaSサービス。

🤔 おもしろそうな記事

【Rails】なぜクラスメソッドよりもスコープを使うべきなのか? - kotatu.org

我々(主語が大きい)は何故MySQLで外部キーを使わないのか

🗽 おもしろそうな書籍

アプリケーションをつくる英語 - 達人出版会

英語版アプリケーション開発のために、UIやメッセージでよく使われる英単語や構文パターン、さらに英語ライティングの
基本やメッセージの書き方、I18N/L10Nの基本から翻訳業者への依頼まで、幅広く紹介されている書籍だそうです!

🚌 そのほか紹介されたコーディング規約の資料

thoughtbot/guides- GitHub

guides/best-practices at master · thoughtbot/guides

styleguide/ruby.ja.md at master · cookpad/styleguide

Contributing to Ruby on Rails — Ruby on Rails Guides

moneyforward/rails-style-guide

moneyforward/ruby-style-guide

Ruby · Styleguide - GitHub

Ruby - Plataformatec Guidelines

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍