大規模で複雑なコードについて、改善できる部分を特定し、本番のコードに与える影響と対策を解説します。JavaScript、PHP、Java、Pythonなどのプログラミング言語の実例を使って、拡張や保守に役立つ方法を学びます。可読性、結合度、テスト容易性などの基本的な概念と、注意すべき状況とそれらへの対処方法を解説します。
クリーンコードとは、読みやすく、理解しやすく、メンテナンスしやすいコードのことです。日々変更が加えられるシステムにおいて、クリーンコードはコードの品質を保ち、ソフトウェアの進化を促します。
本書では、ソフトウェアは現実をモデル化したものとして捉え、ソフトウェア設計においてドメインオブジェクトは現実世界の概念と1対1に対応しているべきだとしています。この考えに基づき、コードに頻繁に発生する問題への解決策をレシピという形で解説します。ドメインモデル貧血症、プリミティブ型への執着、命名やコメントの適切な使い方、YAGNI原則、フェイルファストの考え方、if文やnullの使用方法、早すぎる最適化の回避、結合度の低減、階層構造の整理、技術的負債の対処法、メタプログラミングや型の活用など、幅広いテーマを網羅します。
コード改善の実装例を使ってリファクタリングを学ぶ本書は、コーディングスキルを向上させたいプログラマやアーキテクトにとって、必携の一冊です。