ソフトウェアテスト 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を利用した方法については,そのうち書くかもしれません.
チームでよく書かれるような,このようなコメントのパターンを追加してみてください.
正規表現を工夫するとゴミが減っていきます.