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版

レガシーコード改善ガイド

Bloaters
Object-Orientation Abusers
Change Preventers
Dispensables
Couplers
Other Smells
その他Code Smellに関する参考
リファクタリング技法
Code Smell をかぎ取ったらリファクタリング技法を使ってリファクタリングする。