|
コードの臭い(英: Code smell)とは、コンピュータプログラミングにおいてプログラムのソースコードに深刻な問題が存在することを示す何らかの兆候のことを言う。 コードの臭いが示す深刻な問題は、小さく管理された手順でリファクタリングする短いフィードバックサイクルを廻し、それ以上のリファクタリングが必要なことを示すコードの臭いがないかどうか、設計を検査しなければならない。 リファクタリングを実施するプログラマの視点からは、コードの臭いはいつリファクタリングするか、どのリファクタリング手法を用いるか、発見するための方法である。すなわち、リファクタリングを後押しするものである。 「コードの臭い(code smell)」という呼び方は、ケント・ベックがWardsWikiで初めて用いたようである。マーチン・ファウラーの著書 ''Refactoring. Improving the Design of Existing Code'' で 〔 〕(邦訳〔 〕) 採り入れられたあと、様々なところで用いられるようになった。 何がコードの臭いで、何がそうでないかは主観的な判断であり、プログラミング言語、開発者や開発手法などによって異なる。 Java向けにはCheckstyle、PMD、FindBugsなどのツールがあり、ある種のコードの臭いを自動的にチェックすることができる。 ==一般的なコードの臭い== ;重複したコード :同一あるいは同様のコードが複数箇所に存在。 ;長すぎるメソッド :メソッド、関数、手続きが長くなりすぎている。 ;巨大なクラス :大きくなりすぎたクラス。神オブジェクト参照。 ;機能の横恋慕 :他クラスのメソッドを過度に用いるクラス。 ;不適切な関係 :他のクラスの実装の詳細に依存しているクラス。 ;相続拒否 :基底クラスの規約が尊重されない形でのメソッドオーバーライド。リスコフの置換原則参照。 ;怠け者クラス :行うことが少なすぎるクラス。 ;重複メソッド :同一あるいは同様のメソッドが複数箇所に存在。 ;不自然な複雑さ :簡潔な設計で十分なところに、過剰に複雑なデザインパターンの使用を強制する。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「コードの臭い」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Code smell 」があります。 スポンサード リンク
|