コードの臭い

コードの臭い(こーどのにおい、: Code smell)とは、コンピュータプログラミングにおいてプログラムソースコードに深刻な問題が存在することを示す何らかの兆候のことを言う。

コードの臭いが示す深刻な問題は、小さく管理された手順でリファクタリングする短いフィードバックサイクルを廻し、それ以上のリファクタリングが必要なことを示すコードの臭いがないかどうか、設計を検査しなければならない。

リファクタリングを実施するプログラマの視点からは、コードの臭いはいつリファクタリングするか、どのリファクタリング手法を用いるか、発見するための方法である。すなわち、リファクタリングを後押しするものである。

「コードの臭い(code smell)」という呼び方は、ケント・ベックWardsWikiで初めて用いたようである。マーチン・ファウラーの著書 Refactoring. Improving the Design of Existing Code[1](邦訳[2]) 採り入れられたあと、様々なところで用いられるようになった。

何がコードの臭いで、何がそうでないかは主観的な判断であり、プログラミング言語、開発者や開発手法などによって異なる。 Java向けにはCheckstylePMDFindBugsなどのツールがあり、ある種のコードの臭いを自動的にチェックすることができる。

一般的なコードの臭い

重複したコード
同一あるいは同様のコードが複数箇所に存在。
長すぎるメソッド
メソッド、関数、手続きが長くなりすぎている。
巨大なクラス
大きくなりすぎたクラス神オブジェクトを参照。
機能の横恋慕
他クラスのメソッドを過度に用いるクラス。
不適切な関係
他のクラスの実装の詳細に依存しているクラス。
相続拒否
基底クラスの規約が尊重されない形でのメソッドオーバーライドリスコフの置換原則参照。
怠け者クラス
行うことが少なすぎるクラス。
重複メソッド
同一あるいは同様のメソッドが複数箇所に存在。
不自然な複雑さ
簡潔な設計で十分なところに、過剰に複雑なデザインパターンの使用を強制する。

関連項目

参考文献

  1. Fowler, Martin (1999). Refactoring. Improving the Design of Existing Code. Addison-Wesley. ISBN 0-201-48567-2
  2. ファウラー, マーチン (2001). リファクタリング―プログラムの体質改善テクニック. ピアソン・エデュケーション. ISBN 4894712288

外部リンク

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.