はじめに 1章 コードを気にかける コードへの正しい取り組み方と態度を身に付ける 第Ⅰ部 you.write(code) 2章 見かけのよい状態を維持する コードの表現：レイアウトと名前付け 3章 少ないコードを書く 不必要なコードを書かない 4章 取り除くことでコードを改善する 死んでいるコードを見つけて取り除く 5章 コードベースの過去の幽霊 過去に書いたコードから学ぶ 6章 航路を航行する なじみのないコードへの取り組み方 7章 汚物の中で転げ回る 不快でひどいコードを取り扱う 8章 そのエラーを無視するな！ エラー処理に対する健全な態度 9章 予期せぬことを予期する あらゆる可能性を考慮して、頑強なコードを書く 10章 バグ狩り バグを見つけて修正する 11章 テストの時代 開発者テスト：単体テスト、インテグレーションテスト、システムテスト 12章 複雑さに対処する 不必要な複雑さを避けるために、コードをうまく設計する 13章 二つのシステムの物語 優れた設計とひどい設計の顛末 第Ⅱ部 練習することで完璧になる 137 14章 ソフトウェア開発とは ソフトウェア開発とは何か 15章 規則に従って競技する 開発チームの役割を明確にする規則を作る 16章 単純に保つ ソフトウェアの簡潔性を追い求める 17章 頭を使いなさい プログラマは頭を使うことができるし、そうするべきである 18章 変わらないものはない コードは不可侵ではなく変化する 19章 コードを再利用するケース コードを再利用するための健全な方法 20章 効果的なバージョンコントロール バージョンコントロールをうまく使う 21章 ゴールポストを抜ける QAチームと協業する 22章 凍結されたコードの数奇な人生 コード凍結とは何か。そもそも必要か 23章 プリーズ・リリース・ミー ソフトウェアリリースを作成する 第Ⅲ部 個人的なこと 24章 学びを愛して生きる 効果的な学び方 25章 試験に基づく開発者 プログラミングと自動車運転の類似：どのように学び、どのように試験に合格するか 26章 チャレンジを楽しむ モチベーションを維持し、スキルを高く維持するための課題の見つけ方 27章 停滞を避ける プログラミングスキルの陳腐化を防ぐ 28章 倫理的なプログラマ 開発者人生における倫理的な問題 29章 言語への愛 多くのプログラミング言語を学び、使っている言語を愛する 30章 プログラマの姿勢 プログラマの健康の改善：姿勢、目の疲労、元気の維持 第Ⅳ部 成し遂げる 31章 一生懸命ではなく、賢く 効果的に働く：不要な作業を回避して、問題を解決する 32章 完了したときが完了 プログラミングのタスクを明確にし、終わったときを正確に把握する 33章 今度こそ分かった…… 視野を狭くしない：問題を解決する最善な方法を見つける 第Ｖ部 人々の営み 34章 人々の力 優れたプログラマと一緒に働く。チームでうまく働く方法 35章 原因は思考 説明責任：自分自身と自らの働きを向上させる 36章 遠慮なく話す ソフトウェア開発者にとってのコミュニケーションスキル 37章 多くのマニフェスト ソフトウェアのマニフェストとは何か。なぜ必要か 38章 コードへの叙情歌 間違ったソフトウェア管理の教訓 結び 訳者あとがき 索引