Clean Code(Robert C. Martin)
書籍情報
- 著者:Robert C. Martin(著)、花井志生(訳)
- 発行日:2009-05-29
- ISBN:9784048930598
- URL:https://asciidwango.jp/post/171118672245/clean-code
書籍目次
- 前書き
- 序論
- 謝辞
- カバーの絵について
- 第1章 クリーンコード
- そこにコードありき
- 粗悪なコード
- 混乱のために支払う総コスト
- 道場
- 我々が著者です
- ボーイスカウトの規則
- 続編と原則
- 結論
- 参考文献
- 第2章 意味ある名前
- 序文
- 意図が明確な名前にする
- 偽情報を避ける
- 意味のある対比を行う
- 発音可能な名前を使用する
- 検索可能な名前を用いる
- エンコーディングを避ける
- ハンガリアン記法
- メンバープレフィクス
- インターフェースと実装
- メンタルマッピングを避ける
- クラス名
- メソッド名
- 気取らない
- 1つのコンセプトには1つの単語
- ごろ合わせをしない
- 解決領域の用語を使用
- 問題領域の用語を使用
- 意味のある文脈を加える
- 根拠のない文脈を与えない
- 最後に
- 第3章 関数
- 小さいこと!
- 1つのことを行う
- 1つの関数に1つの抽象レベル
- switch文
- 内容をよく表す名前を使う
- 関数の引数
- 副作用を避ける
- コマンド・照会の分離原則
- 戻りコードよりも例外を好む
- DRY(Don't Repeat Yourself)原則
- 構造化プログラミング
- なぜ関数をこのように書くのでしょう?
- 結論
- SetupTeardownIncluder
- 参考文献
- 第4章 コメント
- コメントで、ダメなコードを取り繕うことはできない
- 自分自身でコードの中身を説明する
- よいコメント
- よくないコメント
- 参考文献
- 第5章 書式化
- 書式化の目的
- 縦方向の書式化
- 横方向の書式化
- チームの規則
- アンクルボブの書式化規則
- 第6章 オブジェクトとデータ構造
- データ抽象化
- データ/オブジェクトの非対称性
- デメテルの法則
- データ転送オブジェクト
- 結論
- 参考文献
- 第7章 エラー処理
- リターンコードではなく、例外を使用する
- 最初にtry-catch-finally文を書く
- 非チェック例外を使用する
- 例外で状況を伝える
- 読み出し元が必要とする例外クラスを定義する
- 正常ケースのフローを定義する
- nullを返さない
- nullを渡さない
- 結論
- 参考文献
- 第8章 境界
- サードパーティーのコードを使用する
- 境界の調査と学習
- logh4jを学習する
- 学習テストは、タダ以上のものである
- まだ存在しないコードを使用する
- きれいない境界
- 参考文献
- 第9章 単体テスト
- TDD三原則
- テストをきれいに保つ
- クリーンテスト
- 1つのテストに1つのアサート
- F.I.R.S.T
- 結論
- 参考文献
- 第10章 クラス
- クラスの構成
- クラスは小さくしなければならない!
- 変更のために最適化する
- 参考文献
- 第11章 システム
- あなたは、街をどうやって造りますか?
- システムを使うことと、構築することと分離する
- スケールアップ
- Javaプロキシ
- Pure JavaのAOPフレームワーク
- AspectJアスペクト
- システムアーキテクチャのテスト実行
- 意志決定を最適化する
- 論証可能な価値を追加する際には、標準を賢く使用する
- システムはドメイン特化言語を必要とする
- 結論
- 参考文献
- 第12章 創発
- 創発的設計を通して、洗練する
- 単純な設計への規則1:全テストを実行する
- 単純な設計への規則2-4:リファクタリング
- 重複の排除
- 表現に富む
- クラスとメソッドを最小限に
- 結論
- 参考文献
- 第13章 同時並行性
- なぜ同時並行性が必要なのか?
- 難問
- 同時並行性防御原則
- 使用しているライブラリを知る
- 実行モデルを見分ける
- 同期化メソッド間の依存関係に注意
- 同期化セクションを小さくする
- 正確な終了処理コードを書くのは難しい
- スレッド化されたコードのテスト
- 結論
- 参考文献
- 第14章 継続的改良
- Argsの実装
- Argsクラス。大雑把な下書き
- 結論
- 第15章 JUnit内部
- JUnitフレームワーク
- 結論
- 第16章 SerialDateのリファクタリング
- まずは、動作するようにする
- そして正しく直した
- 結論
- 参考文献
- 第17章 においと経験則
- コメント
- 環境
- 関数
- 一般
- Java
- 名前
- テスト
- 結論
- 参考文献
- 付録A 同時並行性Ⅱ
- クライアント/サーバーの例
- 結論
- 実行経路候補
- さらに深層へ
- ライブラリを知る
- メソッド間の依存性が同時並行コードを破壊する
- スループットを高める
- デッドロック
- マルチスレッドコードをテストする
- マルチスレッドコードのテストのツールによるサポート
- チュートリアル:コードサンプル全体
- 付録B org.jfree.date.SerialDate
- 付録C 経験則のクロスリファレンス
- 後書き
- 索引