Loading article…
3の法則(「3回ストライクしたらリファクタリング」)は、類似したコードの重複を避けるために、いつリファクタリングすべきかを判断するためのコードリファクタリングの経験則です。この法則によれば、類似したコードが2回使用されている場合はリファクタリングは不要ですが、類似したコードが3回使用されている場合は、新しいプロシージャに抽出する必要があります。この法則は、Martin Fowlerが著書『Refactoring』[ 1 ]で広め、Don Roberts に帰属するとされています。
コードの重複は、保守性を低下させるため、プログラミングにおいては好ましくない慣習とされています。複製されたコードに記述されたルールが変更された場合、そのコードを保守する担当者は、すべての箇所を正しく修正しなければなりません。
しかし、重複を避けるための適切な設計を選択するには、パターンを見つけるためのより多くの例が役立つかもしれません。時期尚早なリファクタリングを試みると、誤った抽象化を選択するリスクがあり、新しい要件が出現するとコードが悪化し[ 2 ]、最終的には再びリファクタリングが必要になります。
このルールは、コピーが3つある場合はメンテナンスのコストがリファクタリングのコストや潜在的な設計不良のコストを上回ることを示唆しており、コピーが2つしかない場合はそうとは限りません。