TOP

このエントリーをはてなブックマークに追加

Code Smell

Code Smellとは?

以前(2019年8月頃)、CSD (Certified Scrum Developer) 研修を受講しました。非常にためになる研修で、その研修の中でCode Smellというものについて学びました。 Code Smellとは、ソースコードにリファクタリングすべき問題が存在することを示す何らかの兆候のことです。 ペアプロでTDDで開発を行い、開発したコードからCode Smellを嗅ぎ取ったらリファクタリングして取り除く。という開発の流れを教わりました。 研修受講後、このCode Smellについてもっと知りたいと思ってググったりしたのですが、日本語で解説しているサイトはまだ少ないと感じました。 英語で解説しているサイトが多く、その中でも以下のサイトがCode Smellとリファクタリングの技法について体系的にまとめていると思いました。

このサイトでは、以下5つの大分類を元に、それに関連するCode Smellを紹介しています。

ここから先は、このページをベースに、各Code Smellを翻訳したものを記載しています。このページだけだとよくわからないこともあったので、その場合は別のページと組み合わせたものを記載しています。 Code Smellを解消するために参考となるリファクタリング技法や、その他参考になりそうな概念もこの記事の最後の方に記載しているので合わせて見てください。

書籍としてはこの辺りが参考になると思います。


リファクタリング第2版
refactoring
レガシーコード改善ガイド
legacy_code

Bloaters

Bloaters

Object-Orientation Abusers

Object-Orientation Abusers

Change Preventers

Change Preventers

Dispensables

Dispensables

Couplers

Couplers

Other Smells

Other Smells

その他Code Smellに関する参考

リファクタリング技法

Code Smell をかぎ取ったらリファクタリング技法を使ってリファクタリングする。