12/21(土)に開催されたRails東京 第90回の勉強会のレポート記事です。
この勉強会は全員参加型で議論し合うので、そこで出た多様な意見や答えを通して、考えを広げることができます。本当にためになる勉強会です^^
今回は僕が参加した次の2つのセッションについてレポートします。
(1) Railsのテストについて (2) Rails 4.1のChangeLogについて
この記事は基本的には僕の忘備録ですので、読みにくいかもです。こうしてほしいなどのリクエストがあればどんどんコメントください。あと、病み上がりで若干ぼけてたので、変なところがあればツッコミよろしくお願いします!
🗽 (1) Railsのテストについて
テストの種類や代表的なツール
テストの種類を大きく分けると2つ。
(A) MVCの動作を保証するためのテスト(カバレッジを上げるためのテストなど) (B) Acceptance Test(受け入れテスト)について
MVCのテストフレームワークとして代表的なものは、Rspec, Mini Test、Jasminなどなど。
受け入れテストとして代表的なのは、Cucumber、Turnip、Capybara、Selenium、Capybara-webkit、PhantomJS、Poltergeistなど。
ちなみにテスト周りではこちらの記事がオススメ。
Rubyist Magazine - エンドツーエンドテストの自動化は Cucumber から Turnip へ
🐞 カバレッジについて
テストは「振る舞い」を確実に記述するようにする。カバレッジは100%を目指す必要はなくって、低い時に確認をするための指針にする。コスト見合いでシステムに応じて着地点を見出す。
🎂 受け入れテストについて
受け入れテストは、Request specよりもCapybaraやTurnipなどで書いたほうがシナリオとして記述できるのでわかりやすくなる。その際にテストの記述が複雑になる場合は、custom matcherを別途作るのもあり。
😼 (2) Rails 4.1のChange Logについて
Change Logsのリスト
ということでChange Logsのリスト。細かくすると結構なボリューム。
Ruby on Rails 4.1 Release Notes — Ruby on Rails Guides
What’s new in Rails 4.1 - Coherence Blog
rails/actionmailer/CHANGELOG.md at master · rails/rails
rails/actionpack/CHANGELOG.md at master · rails/rails
rails/actionview at master · rails/rails
rails/actionview/CHANGELOG.md at master · rails/rails
rails/activemodel/CHANGELOG.md at master · rails/rails
rails/activerecord/CHANGELOG.md at master · rails/rails
rails/activesupport/CHANGELOG.md at master · rails/rails
rails/railties/CHANGELOG.md at master · rails/rails
ここからは実際に読み合わせをしてみて特に気になった新機能について。
Preloaderの『spring』が標準搭載に
Springが標準搭載になりました。これでRailsのRakeやRSpecが早くなりそう!
$ bin/spring status |
Viewの切り分けが簡単に
action pack variants
を使うことでViewの使い分けがより簡単に。イメージ的にはjp-mobileの機能の一部がRailsの標準になった感じです。
こちらがapp/contorller/application.rb
。
class ApplicationController < ActionController::Base |
でView側ではこんなふうに振り分けができます。
respond_to do |format| |
メールのプレビュー機能がついた
http://localhost:3000/rails/mailers/notifier/welcome
にアクセスするとプレビュー機能がつかえるようになるみたい。
class NotifierPreview < ActionMailer::Preview |
ちなみに個この話題の中でたサービス。無料で使える開発専門のSTMPサーバ。便利便利!
concerningの書き方が増えた?
これは僕が勘違いしているような気もしますが、concerning
がこんな風に書けるようになったみたいです。
class Todo < ActiveRecord::Base |
User FriendlyなURLを作りや少なった
to_param
でSEOに適したPretty URLをかけるようになった。
# example |
他にもたくさんありますが、PostgreSQLのサポートが手厚くなったのとメール関係の機能が増えたのが印象的でした。
🐯 おまけ: Railsの設計について
こちらのセッションは僕は参加できなかったんですが、@tchikubaさんのブログ記事『Rails勉強会@東京#90に参加してきました』にわかりやすい説明をアップしていただいています。ありがとうございます^^
せっかくですので、その話題の中で出たリンクも一応共有。
オブジェクト指向エクササイズのススメ
Ruby - てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!
🐹 おまけ:認証系のGem Sorceryについて
Deviseと似たGemで、おもしろそうなGem『Sorcery』を教えてもらいました。今度試してみます!
参考リンク
Railsのプラグインを勉強した。[Sorcery編] - NOT SO BAD
ASCIIcasts - “Episode 283 - Sorceryで認証”