プロダクティブ・プログラマ ――プログラマのための生産性向上術 (Neal Ford)
書籍情報
- 著者:Neal Ford(著), 島田浩二(監訳), 夏目大(訳)
- 発行日:2009-04-27
- ISBN:9784873114026
- URL:https://www.oreilly.co.jp/books/9784873114026/
書籍目次
- 序文
- まえがき
- 1章 はじめに
- 1.1 本書を書いた動機
- 1.1.1 URL補完機能
- 1.2 この本はどんな本なのか
- 1.2.1 I部:技法編(生産性向上の原理)
- 1.2.2 II部:実践編(生産性向上の哲学)
- 1.3 ここから先の読み方
- 1.1 本書を書いた動機
- I部 技法編
- 2章 加速 ――Acceleration
- 2.1 発射台 ――Launching Pad
- 2.1.1 ランチャー
- 2.1.2 Windowsの[スタート]メニューにランチャーを作成する
- 2.1.3 Mac OS X
- 2.1.4 Linuxでの起動
- 2.2 加速装置 ――Accelerators
- 2.2.1 OSレベルの加速装置
- 2.2.2 クリップボード
- 2.2.3 履歴の記録
- 2.2.4 元の場所に戻る
- 2.2.5 コマンドプロンプトへの即時切り替え
- 2.2.6 マウスよりキーボード
- 2.2.7 ナビゲーションより検索
- 2.3 マクロ ――Macros
- 2.3.1 マクロレコーダ
- 2.3.2 キーマクロツール
- 2.4 2章のまとめ
- 2.1 発射台 ――Launching Pad
- 3章 集中 ――Focus
- 3.1 気を散らす要因を排除する
- 3.1.1 気が散るのを防ぐコツ
- 3.1.2 不要な通知をオフにする
- 3.1.4 「沈黙の時間」を作る
- 3.2 ナビゲーションより検索
- 3.3 正規表現
- 3.4 ルートビュー ――rooted view
- 3.4.1 Windowsのルートビュー
- 3.4.2 Mac OS Xのルートビュー
- 3.5 特殊なコマンドラインを作る
- 3.6 プロジェクトのファイルをショートカットを使って1箇所にまとめる
- 3.7 モニターを複数にする
- 3.8 仮想デスクトップで作業スペースを独立させる
- 3.9 3章のまとめ
- 3.1 気を散らす要因を排除する
- 4章 自動化 ――Automation
- 4.1 車輪の再発明をしない
- 4.2 ローカルへキャッシュする
- 4.3 Webサイトとのやりとりを自動化する
- 4.4 RSSフィードを活用する
- 4.5 ビルド以外の作業の自動化にAntを使う
- 4.6 日常的な作業の自動化にRakeを使う
- 4.7 Webアプリケーションの操作記録にSeleniumを利用する
- 4.8 例外情報抽出の自動化にBashを使用する
- 4.9 バッチファイルではなくWindows PowerShellを使う
- 4.10 Automatorを使って古いダウンロードファイルを削除する
- 4.11 Subversionをコマンドライン上で使いこなす
- 4.12 SQLファイルの分割ツールをRubyで作る
- 4.13 自動化すべきか否かの検討
- 4.14 「ヤク毛刈り」をしない
- 4.15 4章のまとめ
- 5章 正準化 ――Canonicality
- 5.1 DRYなバージョン管理
- 5.2 ビルドマシンの正準化
- 5.3 間接参照
- 5.3.1 Eclipseプラグインの管理
- 5.3.2 JEditマクロの同期
- 5.3.3 TextMateのバンドル
- 5.3.4 設定の正準化
- 5.4 仮想化の利用
- 5.5 インピーダンスミスマッチの解消
- 5.5.1 データマッピング
- 5.5.2 マイグレーション
- 5.6 DRYなドキュメント
- 5.6.1 SVN2Wiki
- 5.6.2 クラス図
- 5.6.3 データベーススキーマ
- 5.7 5章のまとめ
- 2章 加速 ――Acceleration
- II部 実践編
- 6章 テスト駆動設計 ――Test-Driven Design
- 6.1 テストは徐々に複雑に
- 6.1.1 TDDでのユニットテスト
- 6.1.2 評価指標
- 6.1.3 設計変更が容易
- 6.2 コードカバレッジ
- 6.1 テストは徐々に複雑に
- 7章 静的解析 ――Static Analysis
- 7.1 バイトコード解析
- 7.2 ソース解析
- 7.3 Panopticodeによるコード評価
- 7.4 動的言語の解析
- 8章 オブジェクトを「良き市民」に ――Good Citizenship
- 8.1 カプセル化が不十分
- 8.2 コンストラクタ
- 8.3 staticメソッド
- 8.4 オブジェクトの犯罪行為
- 9章 YAGNI
- 10章 古代の哲学者の教え
- 10.1 アリストテレスの本質的特性と偶発的特性
- 10.2 オッカムの剃刀
- 10.3 デメテルの掟
- 10.4 過去の教訓
- 11章 権威を疑う
- 11.1 怒れるサル
- 11.2 流れるようなインターフェイス
- 11.3 アンチオブジェクト
- 12章 メタプログラミング
- 12.1 Javaとリフレクション
- 12.2 GroovyでJavaをテストする
- 12.3 流れるようなインターフェイスを書く
- 12.4 メタプログラミングの利点
- 13章 Composed MedhodパターンとSLAP
- 13.1 Composed Methodパターンの実例
- 13.2 SLAP
- 14章 多言語プログラミング ――Polyglot Programming
- 14.1 過去と現在
- 14.1.1 Javaの誕生と成長
- 14.1.2 Javaの暗黒面
- 14.2 今後、どこに、どのようにして向かうのか
- 14.2.1 現状の多言語プログラミング
- 14.2.2 プラットフォームはそのままで言語を変える
- 14.2.3 Jaskellの使用
- 14.3 Olaのピラミッド
- 14.1 過去と現在
- 15章 理想のツールを探す ――Find the Perfect Tools
- 15.1 理想のテキストエディタを求めて
- 15.1.1 Neal Fordの「理想のエディタ」に必要な機能のリスト
- 15.2 理想のエディタの候補
- 15.3 仕事に合わせてツールを選択する
- 15.3.1 SQLファイルの分割ツールをテストに耐え得るものに書き直す
- 15.3.2 振る舞いをコードに留める
- 15.4 不適切なツールを拒否する
- 15.1 理想のテキストエディタを求めて
- 16章 まとめ:対話の継続
- 6章 テスト駆動設計 ――Test-Driven Design
- 付録A コマンドラインを使いこなす
- A.1 Cygwin
- A.2 コマンドライン
- A.2.1 ヘルプ