3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-12

ソフトウェアテスト 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

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

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

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

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

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

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

スクリーンショット 2018-12-12 23.29.24.png

最後に

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

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

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

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?