Clean Code アジャイルソフトウェア達人の技


Clean Code アジャイルソフトウェア達人の技


株式会社ドワンゴ


著者:Robert C.Martin
訳者:花井志生


前書き
序論
謝辞
カバーの絵について

第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章 境界
 サードパーティーのコードを使用する
 境界の調査と学習
 log4jを学習する
 学習テストは、タダ以上のものである
 まだ存在しないコードを使用する
 きれいな境界
 参考文献

第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 同時並行性II
 クライアント/サーバーの例
 結論
 実行経路候補
 さらに深層へ
 ライブラリを知る
 メソッド間の依存性が同時並行コードを破壊する
 スループットを高める
 デッドロック
 マルチスレッドコードをテストする
 マルチスレッドコードのテストのツールによるサポート
 チュートリアル:コードサンプルの全体
付録B org.jfree.date.SerialDate
付録C 経験則のクロスリファレンス

後書き
索引

書籍目次

Posted by shi-n