IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第21回 Rails 5.1のリリースとJavaScript連携 (野田貴子) 2017年9月

こんにちはー。野田貴子です。

今月も海外のRails情報で面白そうなものを意訳してご紹介しますね。興味がある方はご覧ください。

###

4月に公開されたRails 5.1のリリース記事(*1)から1ヶ月が経ちましたね。このバージョンアップで一番注目を集めたことは何といっても、RailsがJavaScriptとの連携を強化した点ではないでしょうか。

Webシステムはデータベースなどを操作しながらサーバー上で動く「バックエンド 」のプログラムと、利用者が使いやすいようにブラウザ上で細やかな処理をする「フロントエンド」の技術から成り立っていることは、開発者でなくとも多くの方が知るところだと思います。Ruby on Railsでは前者はRails本体、後者はRailsに内包されたJavaScriptが担当しています。今回はそのJavaScriptの管理機能を強化したことで、Rails界以外の「フロントエンド開発者」と呼ばれる人々の興味も惹き付けました。

このフロントエンド旋風がRailsに起きた発端として私が把握していることは、Ruby on Railsの牽引者であるDHH氏が「jQuery(という古き良きJavaScriptライブラリ)をRailsの基本セットから外したい」という提案(*2)をしたことでした。一年ほど前のことです。

その後、Rails独自のエコシステムの中で管理していたJavaScriptが、現在主流の「パッケージ管理ツール」であるnpmやyarnを使って管理できるように変更されました。フロントエンドのファイルを取りまとめる「モジュールハンドラ」も、流行のwebpackをオプションで使える選択肢が増えました。

昔はおまけ程度だったフロントエンドの技術は今や爆発的に発展しており、フロントエンド開発者という専門職が確立するほどになっています。そのためバックエンド技術であるRailsからフロントエンドの技術を独立させ、餅は餅屋、フロントエンドの方はフロントエンド開発者が担当したいという需要も少なくないのが現状です。

今回のRailsバージョンアップではフロントエンドが大幅に強化されましたが、それでもRailsのエコシステムからフロントエンドが完全に切り離されたわけではありません。しかし、「バックエンドもフロントエンドも両方担当しなくてはならない『フルスタックエンジニア』が1人で簡単に開発するための手段になる」というDHH氏が掲げるRailsの目的にはとてもかなっています。また、「Railsの基本セットはあくまでひとつの提案なので、各自が構成を自由に変えることも可能」なのです(*3)。

このバージョンアップでは、JavaScript以外にも改善されたことがたくさんあります。なにせ4,000以上のコミットがありましたからね(*4)。システムテスト機能の改善、機密情報を保持するためのマスターキー機能の導入、メーラーやルーティング機能の改良、などなど、などなど。「あまり脚光を浴びていないけれども地味に便利な改善」を紹介したブログもあり(*5)、これらにはうなずくことが多いのではないでしょうか。

さて、リリースポリシーによると、今後バグ修正は5.1.xに、セキュリティ修正は5.1.x、5.0.xに、深刻なセキュリティ修正は5.1.x、5.0.x、4.2.xに適用されることになります(*6)。4.x系列はサポートされないとのことですので、ご注意くださいね。

Ruby on Railsはこれまでにも大きな方向性の転換を決断してきました。人気のあるフレームワークが過去に固執せず、新しい技術を取り入れ、これまでの手法を捨てることはとても大変で、さまざまな痛みも伴ってきたと思います。それでもこうして発展し続けて来られたことが、Railsコミュニティの強さを物語っていますよね。

(*1) http://weblog.rubyonrails.org/2017/4/27/Rails-5-1-final/
(*2) https://github.com/rails/rails/issues/25208/
(*3) https://github.com/rails/webpacker/issues/130#issuecomment-282800149/
(*4) https://github.com/rails/rails/compare/v5.0.0...v5.1.0/
(*5) http://www.justinweiss.com/articles/the-lesser-known-features-in-rails-5-dot-1//
(*6) http://guides.rubyonrails.org/maintenance_policy.html/

協力:株式会社Dive into Code 野呂浩良氏
https://diveintocode.jp/

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes