CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちはー。野田貴子です。今月も海外のRailsブログで面白いものを意訳して紹介していきます。
今月の紹介ブログは以下です。
http://rubyinrails.com/2015/09/04/what-is-new-in-rails-5-feature-changes/
さて、以下が上記の意訳文章です。ご参考ください。
###
Rails 5の内容については以前にも何度か取り上げていますが、今回は新機能を中心に紹介したいと思います。参考リンクを貼っておきますので、詳細はリンク先(英語)をご覧ください。
1. rakeコマンドの代わりにrailsコマンドを使えるようになりました
参考
https://github.com/rails/rails/issues/18878
https://github.com/rails/rails/pull/21012
https://github.com/rails/rails/pull/21254
2. rake restartコマンドを使えるようになりました
参考
https://github.com/rails/rails/pull/18965/
3. RubyのSynbol GCの利点を生かすため、Ruby 2.2.1以上が対象になりました
参考
https://github.com/rails/rails/pull/19752
4. Richard Schneeman氏による性能改善がされました
Richard Schneeman(https://github.com/schneems)はHerokuのRubyデベロッパーで、Railsにコントリビュートもしています。このパッチにより性能が約11%改善しました。
参考
https://github.com/schneems/rails/commit/0d7a714dcae69668429c4b79e36f1b47d6c898e4
https://github.com/schneems/rails/commit/bff61ba27cb113b90f210a30173a8e66602615ca
https://github.com/schneems/rails/commit/61dae882546f643050c47e573161a467e156c704
https://github.com/schneems/rails/commit/4d2ccc119cac2dc2757d3d977059feba9db858d2
https://github.com/rails/rails/pull/21057
5. 新機能: ActionCable
ActionCableはWebSocketsを利用したリアルタイムコミニュケーションのフレームワークです。Rails/ActionCable(https://github.com/rails/actioncable)にgemで用意されています。
ActionCableの使いどころは、例えば、受信したメールをすぐにアプリケーションの画面に反映したいときです。
この場合、一定時間ごとにサーバーサイド(バックエンド)にポーリング(新着メールの有無を調べるためのリクエストを送信)し、もしレスポンスに新規メールがあればJavaScriptを使って画面を更新する、という方法も考えられます。しかしこれは多くのポーリングの結果が空で無用な通信になりがちです。
一方WebSocket(https://en.wikipedia.org/wiki/WebSocket※)は、一つのTCPコネクション上で全二重(双方向通信で同時に双方からデータを送・受信できる通信方式のこと)のコミュニケーションチャンネルを提供するプロトコルです。
(※日本語版 https://ja.wikipedia.org/wiki/WebSocket)
ActionCable 用語:
Cable - ブラウザ(クライアント)とサーバー間のコミュニケーションの道のようなもの。WebSocketを使って作られるコネクション内を通る。
Connection - WebSocketチャンネルを使って作られるもの。
Channel - 一つのCableは複数のチャンネルを持てる。チャンネルは様々な機能を実現するための送受信をするために作成される。
Broadcast - サーバーは特定のデータを異なるチャンネルにbroadcastすることができる。
参考
https://github.com/rails/actioncable-examples
6. 新機能: Rails APIのみのアプリケーション
これまでにもAPIサーバーとしてRailsでバックエンドだけを実装することが多々ありましたが、Rails API only applicationはこのようなユースケースのために設計されました。
使用例: モバイルアプリから呼ばれるAPIの部分のみをRailsで実装する
この場合画面を作成する必要がないので、Railsの全機能は不要です。API onlyオプションを選択することで、ActionController::Base、Asset Pipeline、View、Helperなどの不要な機能は省き、最小限のものだけを含めることができます。
6. ActiveRecord の改善
最新バージョンで、ActiveRecord::Base#where.notがリリースされました。
Rails 5で、ActiveRecord::Base#where.orがリリースされました。
SQL作成例:
Post.where('id = 1').or(Post.where('id = 2'))
# => SELECT * FROM posts WHERE (id = 1) OR (id = 2)
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes