『プログラミング作法』
https://images-na.ssl-images-amazon.com/images/I/71Pxd6FOYeL.jpg
目次
はじめに
第1章 スタイル
1.1 名前
1.2 式と文
1.3 一貫性と慣用句
1.4 関数マクロ
1.5 マジックナンバー
1.6 コメント
1.7 なぜ手間をかけるのか
1.8 参考文献
第2章 アルゴリズムとデータ構造
2.1 探索
2.2 ソーティング
2.3 ライブラリ
2.4 Java版クイックソート
2.5 O記法
2.6 配列の伸張
2.7 リスト
2.8 ツリー
2.9 ハッシュテーブル
2.10 まとめ
2.11 参考文献
第3章 設計と実装
3.1 マルコフ連鎖アルゴリズム
3.2 データ構造の選択
3.3 Cによるデータ構造の作成
3.4 出力の生成
3.5 Java
3.6 C++
3.7 AwkとPerl
3.8 性能
3.9 教訓
3.10 参考文献
第4章 インターフェイス
4.1 カンマ区切り値
4.2 プロトタイプライブラリ
4.3 他人の使うライブラリ
4.4 C++による実装
4.5 インターフェイスの原則
4.6 リソース管理
4.7 中止しますか、再試行しますか、失敗させますか?
4.8 ユーザーインターフェイス
4.9 参考文献
第5章 デバッグ
5.1 デバッガ
5.2 有力な手がかりのある簡単なバグ
5.3 手がかりのない困難なバグ
5.4 最後の手段
5.5 再現不能のバグ
5.6 デバッグツール
5.7 他人のバグ
5.8 まとめ
5.9 参考文献
第6章 テスト
6.1 コーディング時のテスト
6.2 系統的なテスト
6.3 テストの自動化
6.4 テスト機構
6.5 ストレステスト
6.6 テストのコツ
6.7 誰がテストを担当するのか?
6.8 マルコフプログラムのテスト
6.9 まとめ
6.10 参考文献
第7章 性能
7.1 ボトルネック
7.2 時間計測とプロファイリング
7.3 高速化の戦略
7.4 コードのチューニング
7.5 メモリ効率
7.6 性能の見積もり
7.7 まとめ
7.8 参考文献
第8章 移植性
8.1 言語
8.2 ヘッダとライブラリ
8.3 プログラムの構成
8.4 隔離
8.5 データ交換
8.6 バイト順
8.7 移植性とバージョンアップ
8.8 国際化
8.9 まとめ
8.10 参考文献
第9章 記法
9.1 データの書式化
9.2 正規表現
9.3 プログラマブルツール
9.4 インタープリタ、コンパイラ、仮想マシン
9.5 プログラムを記述するプログラム
9.6 マクロによるコード生成
9.7 オンザフライコンパイル
9.8 参考文献
エピローグ
Appendix:ルール集
索引