-
Notifications
You must be signed in to change notification settings - Fork 23
リファクタリング
irof edited this page Mar 29, 2021
·
3 revisions
JIGを使用したリファクタリングの例
この相互依存の原因は、ソースコードのimport文だけでわかる場合と、それだけでは分からない場合があります。 完全修飾名で記述している場合はimport文は不要ですし、メソッドチェーンの途中で登場するものや、メソッドの戻り値を使用していない場合などは、ソースコードから見つけることは困難でしょう。
パッケージ内に数クラスしかないならば、全クラス丁寧に読めばわかるとは思います。
しかし確信が持てない場合は package-relation-depth{深さ}.additional.txt
が使用できます。
このファイルは相互依存が存在する場合のみ作成されます。
# a <-> b
a.Hoge -> b.Fiz
b.Buz -> a.Fuga
#
から始まる行には対象の相互依存を示します。
以降、該当パッケージ間のクラスの依存関係が全て出力されます。
ここでは a.Hoge
クラスか b.Buz
クラスにそれぞれ相手パッケージへの依存があるので、どちらかの依存を解消すれば相互依存は解消されます。
区分使用図で孤立した区分を発見出来ます。
(モザイクをかけています)
最上位および最下位の区分が孤立しています。 このような区分は本当に使用されていないか、画面やDBでのみ使用されている可能性があります。 ビジネスルールを表現しているとは言い難い状況と言えます。
ビジネスルールを表現する区分をサービスメソッドから直接もしくは間接的に使用することで、区分を使用してビジネスロジックを整理できます。