BBAの弱点を補うリファクタリングツール「Scientist 1.0」重要なコード変更の確実な実行を支援

GitHubが、自社プロジェクトで利用してきたRubyコードのリファクタリングツールをOSSで公開した。

» 2016年02月09日 18時19分 公開
[@IT]
GitHub Engineeringブログ

 米GitHubは2016年2月3日(米国時間)、重要なコードの変更を確実に行うために開発したという、Ruby用のリファクタリングツール「Scientist 1.0」をオープンソースソフトウェアとしてリリースしたと公式ブログで発表した。

 GitHubは数年前に基幹システムの大規模な変更を行った際に、既存の手法では限界があったことからScientistを開発し、以後さまざまな自社プロジェクトに利用してきたという。

 大規模な変更を行う際によく用いられる手法としては、抽象レイヤーを挿入する「Branch by Abstraction(BBA)」アーキテクチャパターンが挙げられる。しかし、ブログでは「このパターンでは新システムが旧システムと同じ場所で呼び出されることを保証するが、新システムの動作が旧システムの動作と一致し、正確であることは保証しない」と指摘している。

 GitHubでは「こうした問題に対処して本番のデータと動作のテストを支援するツールとしてScientistを開発した」と説明している。

 Scientistでは、新旧システムの動作を比較してミスマッチや例外などログをに記録、誤った値がある場合には無視して動作させられるという。

Scientistの仕組み

 GitHubはここ数年、パーミッションコードの大規模な変更やクリーンアップ、新しいコード検索クラスタへの移行、クエリ最適化などでScientistを利用してきたという。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。