2009年7月6日

プログラマ必読 - Clean Code(クリーンコード) アジャイルソフトウェアの達人

いつもお読みいただきありがとうございます。
感謝しています。

本日は、プログラマ必読の本。

「Clean Code アジャイルソフトウェア達人の技 」を紹介です。

Clean Code アジャイルソフトウェア達人の技
Robert C. Martin
アスキー・メディアワークス
売り上げランキング: 24927


いやー、この手のソースコードの可読性を高める、バグの混入を高めるスキルの本を
読むプログラマはどのくらいるんだろう?

おのおのスタイルがあると思いますが、先達の知恵を学んだ、自分のものにするって
それも一つのスキルだと思うので、ぜひ、いろいろと読んでほしいですね。

そのおかげで、バグの混入率が減ったりするわけでだからね。

金額は、4800円と手軽に買えないと思うかもしれないけど、自分の人件費のことを考えたら
めちゃめちゃ安いお買い物です。

チーム図書として、購入してもいいかもしれませんね。


目次
第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 経験則のクロスリファレンス
 後書き
 索引


 
私的には、第13章 同時並行性が、一番読みどころでしたね。

ちょくちょくこの中から、とりあげてみたいと思っています。

Clean Code アジャイルソフトウェア達人の技
Robert C. Martin
アスキー・メディアワークス
売り上げランキング: 24927

0 件のコメント: