建築家にパターンを学べ?のコメントを書いているとき思いついたのが次のようなテーマと概要
申請テーマ概要
毎年生産されるソースコードの総量の増加に従って、糞コードの絶対数も増加している。糞コードというのは、技術書や他人のソースコードをろくに読んだことのないプログラマーやCOBOL案件の減少に伴ってなし崩し的にjavaを使うことになった似非javaプログラマーが往々にして生成することがあるソースコードの事である。
スパゲティコードと同一視されることが多いが、スパゲティコードとの決定的な違いはパフォーマンス(実行速度,資源利用効率)の差となって現れる。糞コードではパフォーマンスがスパゲティコードと比較したとき5〜100倍以上の差になることが多い。しかし、両者には、ソースコードが読解しづらいという共通点もある。
ところが最近の研究やそれを元にした書籍*1 *2などにより、昨今の糞コードは一定のパターンにそって記述されていることがわかった。
そこで我々はこのパターンに沿ったコードをとりあえず実用に耐えうるコードに改善するツールの開発を試みる。またパターンの例外学習機能を設け、一定のパターンの例外をその都度学習させることにより、利用する度に糞コードリファクタリングの精度向上が期待できる。