世界が幸せで在ります様に

ITエンジニアになりたい人・エンジニアの人にとって役立ちそうな商品を紹介するブログ

GitHubがRails3.2からRails5.2へのアップグレードをしたということについて感想

GitHubがブログでRails3.2から,Rails5.2へアップグレードしたとポスト.

githubengineering.com

 GitHub社のブログにはこう書かれている.

期間

1年半かかった

長いスパンでGemfileをどうやって管理したか

2つ用意し管理した.コードでは,バージョンで分岐させてロードしていたらしい

 

僕も何回か,バージョンを変更するタスクを任されたことがあるが,正直辛いの一言.手順を整えたつもりが,想定外の細かい作業が出現してくる.

特にGitHubの場合,10年間のRailsコードの軌跡があり,さらにメジャーバージョンを2つインクリメントするという負担は相当なものだろう.

GitHubのブログにも書かれているように,アップグレードは頻繁にするべきで,後回しにしないほうがよい.これが一番のアップグレードの負担を減らすことの解決策だと思う.

頻繁にアップグレードする利点は,アップグレードの負担を減らすだけではなく,Railsのパフォーマンスアップ,あるいはバグの修正といった恩恵が得られる.この部分はRailsに限った話ではなく,Ruby自体のバージョンにも同様のことが言える.パフォーマンスは具体的な数値のため,PMを説得するときにはベンチマークも用意しておくとよいかと思う.

それ以外でいうと,Railsの場合GemをRails標準に組み込んだり,あるいは除外したりといったことがバージョンごとに行われるのでそれに追従することで正しいサポートの恩恵を受けることが可能.例えば,Rails5系からはActionCableが標準となった.4系まではGemfileにいちいち追加していたものが標準で使えるようになったのは大きい.要は,Railsが管理してくれるものはそこで一括管理したいし,そうでないものは除外された理由を元に別のGemを使うきっかけとなるかもしれない.

また,Railsのより便利な機能を利用することでコードが簡潔に,そして時流に乗ることができる.Rails3から4へアップグレードしたとき,EnumがActive Recordに追加されたり,今当然とされている機能がしっかりとサポートされてくる.独自クラスやモンキーパッチのデメリットはテストコードが余分に必要,かつメンテが必須なことなので,それを葬ることができることは非常に嬉しい.

 

多くのプロジェクトで,ベース言語や,フレームワークのバージョンアップは辛いものとされているが,Ruby on Railsにおいては間違いなくやったほうが良いと思う.規模が大きいなら,まずは小さなところから,例えばバグフィックスバージョンから変えてみて,マイナーバージョンアップ,最後にメジャーバージョンを上げるというように一気にやるとプロジェクトが壊れてしまうので,できることからやるべきだろう.

 

最後に

バージョンアップについて以下のサイトを一読してから始めたい.

railsguides.jp

 

 

GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ

GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ

 

 

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

 

 

プロフィールと免責事項