koheitakahashiのブログ

2020.07.01にプログラマーとして生を受けた私が学んだことや、日常について徒然に書いていきます。

Ruby on Rails 6 の新機能を勉強しました

はじめに

11月18日にsendagaya.rbに初めて参加させていただくため、その予習として、Ruby on Rails 6.0 リリースノート - Rails ガイドと『Ruby on Rails 6 エンジニア 養成読本 』を読んで、概要だけですがRuby on Rails 6 の新機能を勉強しました。

そこで、学んだことを簡単にですがまとめたいと思います💪

Ruby on Rails 6 の新機能

Action Mailboxとは?

メールを受信したときの処理を扱えるようになる機能のようです。メールを送信に関する処理はAction Mailerという機能がありますが、それと対になる機能のようです。

Action Textとは?

リッチテキストコンテンツと編集機能をRailsで使えるようにする機能のようです。

リッチテキストとは、文書ファイルのフォーマットの一つで、プレーンテキストに比べて、フォントの指定や文字の色、大きさなどなどの装飾や簡易レイアウトを行えるという特徴があります。

つまり、以下のように、リッチテキストを編集する機能をアプリケーションに簡単に実装することができるようになったということだと思います。 また、ドラッグアンドドロップで、ファイルをアップロードする機能にも対応しているとのこと。 素晴らしい・・・😱

f:id:NMP300:20191116104746p:plain
https://trix-editor.org/より

並列テストとは?

Ruby on Rails6から、デフォルトで並列にテストが実施されるようになったようです。これにより、テストにかかる時間が短縮されます‼️

例えば、テストファイルに、テスト1(3秒かかる)、テスト2(3秒かかる)というテストを書いたとします。

それが、これまでの直列のテストだと、単純にテスト1が終わってから、テスト2が実行されるため6秒かかると考えられますが、並列テストだと、同時にやってしまえるため、3秒で済むということです。

これも、素晴らしい機能です✨

Action Cableのテスト支援とは?

そもそもAction Cableとは?

Action Cableは、 WebSocketとRailsのその他の部分をシームレスに統合するためのものです。 Ruby on Rails 6.0 リリースノート - Rails ガイドより

Websocketとは、通信規格の1つで、Webアプリケーションに置いて、双方向通信を実現するためのものです。一度、サーバとクライアントがコネクションを行った後は、今後の必要な通信を全てそのコネクション上で専用のプロトコルを使って、行うというものです。

これにより、通信ロスが減る、同一サーバに接続する他のアプリケーションへの影響が少ないなどのメリットがあるようです。

つまり、Action Cable機能とは、一度HTTPのコネクションができると、Websocketによって、サーバーとクラアントの両方からリクエストが送れる状態を簡単に実装する機能のことだと思います。

つまり、この新機能は一体・・・

ここは、あまりピンときていませんが、Action Cableの機能をテストすることができるようになったようです🤔

最後に

非常に簡単にではありますが、Ruby on Rails 6.0 リリースノート - Rails ガイドと『Ruby on Rails 6 エンジニア 養成読本 』で学んだことをまとめてみました。

ただ読むだけでは、中々理解することができなかったのですが、こうして自分なりに文章にすると、なんとなくでも理解できたような気がしてます💪

参考にさせていただいたサイト

Rich Text Format - Wikipedia

Trix: A rich text editor for everyday writing

WebSocket - Wikipedia

Action Cableについて調べたことまとめ - Qiita