この記事はJetBrains IDE Advent Calendar 2015の4日目です。 2年ほど前、命名規約やプログラミングの慣習に違反したお行儀のよくないコードをIntellij IDEAを使って見つけて、改善していくことを書きました。「publicなメソッドの名前がget〜なのに戻り値がvoidで、どうやらgetしてきた何かをフィールドにsetしてて、別なアクセサで取得するらしい…」みたいなアレです。 そういった行儀の悪さも困りものなのですが、既存のコードベースの上に機能追加したり不具合修正したりする上でもう1つ厄介なのは、コードの重複です。 大人数が横串を通す時間もなく作ったので、各人が同じものをあちこちで実装してしまう コードベースが数十万行などと巨大なので、既に誰かが実装済みなことを知らずに実装してしまう 改修するとテストが大変なので、コピーしてちょっとだけ挙動を変えた実装