Ruboty | Extract gem Pattern を用いて Ruboty Plugin 内で利用する一塊の機能を持つロジックを外部 gem 化する
概要
Extract gem Pattern を用いて Ruboty Plugin 内で利用する一塊の機能を持つロジックを外部 gem 化します
Extract gem Pattern とは?
一塊の機能を持つプログラムを外部 gem 化するパターン。
私が勝手に命名しました。
すでにどこかで命名されているかもしれませんし、ただ単に単一機能を切り出して gem にするだけの話です。
Extract ○○ という命名は リファクタリングカタログ の
- Extract Class
- Extract Method
などに合わせた命名です。
Ruboty Plugin 開発時の課題
- Ruboty の仕組みの中でテストをするので、内部に 一塊の機能を持つロジックを含む場合、
本来のテスト対象の In - Out をテストするよりもコストが高くなる。
Extract gem の効果
- 単一の機能に専念することでテスタビリティが上がる
- 他のプログラムからも利用可能になる
Extract gem 適用前の構成
Extract gem 適用後の構成
補足
- 外部 gem 化するほどでもない機能なら、 Extract Class で別ファイルにしてテスタビリティを上げるのもよい。
- Hubot も・・・