ニュース
BBAの弱点を補うリファクタリングツール「Scientist 1.0」:重要なコード変更の確実な実行を支援
GitHubが、自社プロジェクトで利用してきたRubyコードのリファクタリングツールをOSSで公開した。
米GitHubは2016年2月3日(米国時間)、重要なコードの変更を確実に行うために開発したという、Ruby用のリファクタリングツール「Scientist 1.0」をオープンソースソフトウェアとしてリリースしたと公式ブログで発表した。
GitHubは数年前に基幹システムの大規模な変更を行った際に、既存の手法では限界があったことからScientistを開発し、以後さまざまな自社プロジェクトに利用してきたという。
大規模な変更を行う際によく用いられる手法としては、抽象レイヤーを挿入する「Branch by Abstraction(BBA)」アーキテクチャパターンが挙げられる。しかし、ブログでは「このパターンでは新システムが旧システムと同じ場所で呼び出されることを保証するが、新システムの動作が旧システムの動作と一致し、正確であることは保証しない」と指摘している。
GitHubでは「こうした問題に対処して本番のデータと動作のテストを支援するツールとしてScientistを開発した」と説明している。
Scientistでは、新旧システムの動作を比較してミスマッチや例外などログをに記録、誤った値がある場合には無視して動作させられるという。
GitHubはここ数年、パーミッションコードの大規模な変更やクリーンアップ、新しいコード検索クラスタへの移行、クエリ最適化などでScientistを利用してきたという。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか
大企業では実施が難しいと思われるソフトウエアのリファクタリング。富士ゼロックスでは、どのように取り組んでいるのか。リファクタリングの実施を決断した理由、課題とその対応方針、成果、今後の展望などについて聞いた。 - テスト駆動開発/振る舞い駆動開発を始めるための基礎知識
TDDの概要と進め方、目的と効果、歴史、さまざまな手法への展開、課題に加え、BDDの概要と種類、 重視される考え方などを解説する。 - なぜNECは、10万件以上のテスト項目があるプロジェクトで、UIテスト自動化ツールを導入できたのか
NECの浦口宗也氏は、2015年10月に開催されたテスト自動化ツールの紹介セミナーに登壇。同社のUIテスト自動化ツール導入に関する取り組みを講演した。 - なぜリファクタリングは必要なのか?
今回からいよいよコードの話を始めます。もはやRubyの文化の一部だという主張もあるリファクタリング、テストについて、その意義や概要を紹介します