レガシーソフトウェア改善ガイド(Chris Birchall)
書籍情報
書籍目次
- 前書き
- 謝辞
- この本について
- 著者について
- 第1部 はじめに
- 第1章 レガシープロジェクトの難題を理解する
- レガシープロジェクトの定義
- レガシーコード
- レガシー基盤
- レガシーカルチャー
- まとめ
- 第2章 スタート地点を見つける
- 恐れとフラストレーションを乗り越える
- ソフトウェアについて有益なデータを集める
- FindBugs、PMD、Checkstyleで検査する
- Jenkinsによる継続的インスペクション
- まとめ
- 第2部 コードベース改良のためのリファクタリング
- 第3章 リファクタリングの準備
- チームのコンセンサスを培う
- 組織から承認を得る
- 候補を選ぶ(価値と難度とリスクによる分類)
- 決断の時(リファクタか、リライトか)
- まとめ
- 第4章 リファクタリング
- 規律のあるリファクタリング
- レガシーコードの一般的な特徴とリファクタリング
- レガシーコードをテストする
- まとめ
- 第5章 リアーキテクティング
- リアーキテクティングとは何か?
- モノリス的なアプリケーションを複数のモジュールに分割
- Webアプリケーションを複数のサービスに分散する
- まとめ
- 第6章 ビッグ・リライト
- プロジェクトの範囲を決める
- 過去から学ぶこと
- データベースをどうするか
- まとめ
- 第3部 リファクタリングの先へープロジェクトのワークフローと基盤を改善する
- 第7章 開発環境を自動化する
- 「仕事を始める日」
- 優れたREADMEの価値
- VagrantとAnsibleで開発環境作りを自動化する
- まとめ
- 第8章 テスト、ステージング、製品環境の自動化
- インフラストラクチャ自動化のメリット
- 自動化を他の環境に拡張する
- クラウドへ!
- まとめ
- 第9章 レガシーソフトウェアの開発/ビルド/デプロイを刷新する
- レガシーソフトウェアの開発/ビルド/デプロイにおける困難
- ツールチェインを更新する
- JenkinsによるCI(継続的統合)と自動化
- リリースとデプロイを自動化する
- まとめ
- 第10章 レガシーコードを書くのはやめよう!
- ソースコードがすべてではない
- 情報はフリーになりたがらない
- われらの仕事は終わらない
- すべてを自動化せよ
- 小さいのが美しい
- まとめ
- 索引