リファクタリング

大学の研究で和声法による作曲支援システムの開発を進めていますが、システムに新たに機能を追加するときに、どこに何があるか分かりにくくなってきています。大規模なプログラムになるほどそういう傾向があるのですが、これを解決すべく、スパゲティプログラム(スパゲティのように絡み合うということから分かりづらいソースコードを持つプログラムのこと)で検索してみたところリファクタリングという言葉を知りました。

リファクタリングとは、まぁプログラミングやってる人ならたぶん誰でも自然にやっていることなんですが、要するにグチャグチャになって読みづらくなったソースコードを一旦整理するという意味です。

それでインターネットで調べるだけでもリファクタリングに関する情報はいくつか入手できたので試してみました。

●クラス・メソッドの細分化
例えば「音符を表示する」という機能を持つクラスがある場合、四分音符は表示できるけど八分音符は表示できない…という状況になったときに、どこが原因でバグが発生したのか分かりにくくなります。その場合、「音符を表示する」というクラスを「八分音符を表示する」、「四分音符を表示する」というクラスに細分化することによって、バグの原因を特定しやすくなります。また、機能の追加もやりやすくなります。コツとしては、長すぎるクラス、メソッドは分かりにくくなり再利用性が低まるので、クラス、メソッドの役割が明確になるまで細分化するべし、ということです。

●クラス・メソッド・変数等の名前を変更
機能の追加によって今まで使ってきた変数の意味が変わり、名前を変更した方がよくなるケースがあります。

とりあえず調べた中で意味がわかるのはこれくらいしかないのですが、これを実行するだけで生産性は高まりそうです。というか機能の追加が難しくなってきたので一度整理せざるを得ないという状況です。

どうでもいい内容だな(笑)とりあえず今大学の研究でやってる内容を書いてみました★次回はいよいよ専門家のT先生を訪問!お楽しみに!!