IntelliJ IDEAを利用して、コメントからソースコードにある問題のありそうな箇所を見つける


ソフトウェアテスト Advent Calendar 2018 - Qiita の12日目の記事です。

IntelliJ IDEAを利用して、コメントからソースコードにある問題のありそうな箇所を見つける方法について,紹介します.

TODOコメント

TODOコメントは,下記のような例です.

//TODO:処理速度を早くするために,アルゴリズムを改善する

よくありますよね.

このようなコメントは,TODOコメントと呼ばれたり,開発中のコメントと呼ばれたり,
Self-Admitted Technical Debtと呼ばれたりします.
日本語でいうならば、技術負債を表すコメントといってもよいでしょう.

このようなコメントの周辺には,ソースコードに問題が存在しています.
このようなコメントを見つけることで,ソースコードにある問題のありそうな箇所を見つけることができます.

統合開発環境の一つであるIntelliJ IDEAには,TODOコメントを見つける機能があります。
https://pleiades.io/help/idea/using-todo.html

TODOとFixmeのタグのついたコメントであれば,そのままでも見つけることができます.
しかし,TODOの他にも,XXXやHACKやOPTIMIZEなどのタグが使われて記述されます.
また,知識不足により開発者によっては,コメントにタグを付けない人がいます.
他にも,自分独自の言葉でタグを付けていることがあります.
これらのコメントを見つけるためには,カスタマイズしたパターンを追加する必要があります.

パターンの追加方法

IntelliJ IDEAでは,カスタマイズしたパターンを追加する機能があります.
https://pleiades.io/help/idea/using-todo.html

パターンには,正規表現を利用して追加できます.
正規表現については,以下をご覧になってください.
https://pleiades.io/help/idea/regular-expression-syntax-reference.html

日本語で検出したいパターンは,下記のようなものがあると思います.

//これ必要?
//これいる?
//今は使ってない
//なぜか動く?
//暫定的な処理
//今後対応する
//将来対応する
//改善すべき
//暫定的な処理
//仮の処理
//修正開始
//修正完了

このようなコメントを見つけるパターンを,記述して追加しましょう.
以下は例です.

必要\?
いる\?
\?
今後\?
使っていない
なぜか
暫定的な
将来
改善
仮の
修正の

これくらいのであれば,正規表現を利用せずとも引っかかりますね.
ゴミも出てきたりするので,正規表現を工夫する必要があります.

このように,見つけてきてくれますね.

最後に

他のIDEでも同様な機能があるため,同様にパターンを追加すると,コメントを見つけることができます.
ただし,正規表現の記述方法は,IDEごとに違うので,IDEごとの正規表現を調べて従う必要があります.

grepコマンドを利用しても,正規表現を利用して見つけることはできます.
また,それなりに工夫が必要です.grepを利用した方法については,そのうち書くかもしれません.

チームでよく書かれるような,このようなコメントのパターンを追加してみてください.
正規表現を工夫するとゴミが減っていきます.