いつもお読みいただきありがとうございます。
感謝しています。
本日は、プログラマ必読の本。
「Clean Code アジャイルソフトウェア達人の技 」を紹介です。
Clean Code アジャイルソフトウェア達人の技
posted with amazlet at 09.07.07
Robert C. Martin
アスキー・メディアワークス
売り上げランキング: 24927
アスキー・メディアワークス
売り上げランキング: 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 アジャイルソフトウェア達人の技
posted with amazlet at 09.07.07
Robert C. Martin
アスキー・メディアワークス
売り上げランキング: 24927
アスキー・メディアワークス
売り上げランキング: 24927
0 件のコメント:
コメントを投稿