テストコードの注入から始めるレガシーコードのリファクタリング
テストコードの注入から始めるレガシーコードのリファクタリング
レガシーコードに立ち向かう一歩目は、とりあえずテストを書いてみることだ
本書について
本書籍では、レガシーコードに対しての最初の一歩を踏み出したいと考えている人に向けて書いた本になります。その際、テストコードの記述にも重点をおきながら、レガシーコードをリファクタリングする過程を説明しています。
本書籍では下記のような人を想定読者としています。
- テスト駆動開発(以下、TDD)を知っている
- レガシーコードやリファクタリングとは何か知っている
- 実際の現場でレガシーコードと出会っている
- レガシーコードに対してリファクタリングを行う時に、まず何から手を付ければ良いのか分からない
- 今後、自分がレガシーコードを作らないように心がけたい
本書籍を読み、写経することで、下記の 2 点が身につきます。
- 少しずつテストケースを追加して改善していく方法を実感する
- 苦しくないリファクタリングの方法を学ぶ
本書籍では Java および JUnit5 を用いて解説していきますが、基本的な考え方はどの言語でも似ていると考えていますので、読者の皆さんの言語に置き換えて読むことが可能です。
また、本書籍を購入していただいた方には、第3章で扱っている「要件を元に責務ごとにロジックを分割して整理する」のリファクタリングの様子を収めたライブコーディングのビデオも付いてきます。
目次
-
第1章 テストしづらい部分を分割する
- 1.1 題材
- 1.2 最初のテストコード
- 1.3 仕様を理解してテストを作る
- 1.4 別のテストケースを作る
- 1.5 依存関係を見つける
- 1.6 依存関係を削除する(その1)
- 1.7 依存関係を削除する(その2)
- 1.8 ここまでのまとめ
- 1.9 実装コードをリファクタリングする
- 1.10 要件が間違っているところを、テストケースを追加しながら修正する
- 1.11 実装コードを分割するために、一部分をメソッド化する
- 1.12 まだ確認していないロジックの確認を行う
- 1.13 まとめ
-
第2章 ロジックを分解して整理する
- 2.1 題材
- 2.2 とりあえずテストを実行する
- 2.3 次のテストケースを加える
- 2.4 switch文部分の実装コードをリファクタリングする
- 2.5 別部分のロジックに注目する
- 2.6 クラスを新たに作成する
- 2.7 再び実装部分のリファクタリングをする
- 2.8 残りの実装部分をリファクタリングをする
- 2.9 責務を持つクラスにロジックを移動させる
- 2.10 まとめ
-
第3章 要件を元に責務ごとにロジックを分割して整理する
- 3.1 題材
- 3.2 とりあえずテストを実行する
- 3.3 最初のメソッド切り出し
- 3.4 実装コードを理解していきながらテストケースを追加する
- 3.5 早期returnを目指し、ロジックをシンプルにしていく
- 3.6 否定系のif文をなくす
- 3.7 外側と内側にあるif文を入れ替える
- 3.8 商品ごとにif文をまとめる
- 3.9 それぞれの種類毎で処理ロジックをまとめて、インタフェース化を検討する
- 3.10 Factory Methodパターンを用いる
- 3.11 クラスの責務から考えたロジックの移動
- 3.12 機能追加の対応
- 3.13 まとめ
- 付録A IDEの入力補助の画像解説
- 付録B 参考文献
- おわりに
Leanpubは無条件かつノーリスクで100%の満足を保証します
Leanpubでお買い上げいただいた書籍は、ご購入後60日以内であれば全額返金いたします。払い戻しはわずか2クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。
10ドルの購入で8ドル、20ドルの購入で16ドルを稼ぐ
私たちは7.99ドル以上の購入で80%のロイヤリティを支払い、0.99ドルから7.98ドルの購入には80%のロイヤリティから50セントの定額料金を差し引いた金額を支払います。10ドルの販売で8ドル、20ドルの販売で16ドルを稼ぐことができます。したがって、20ドルで本を5000冊売却し、返金されなかった場合、80,000ドルを稼ぐことができます。
(はい、すでにLeanpubでそれ以上の収益を上げた著者もいます。)
実際に著者はLeanpubで1,300万ドル以上を書き、出版し、販売して稼いでいます。
Leanpubでの執筆について詳しく知る
無料更新。無料アップデート。 DRMフリー。
Leanpubの本を購入すると、著者が本を更新している限り、無料で更新されます!多くの著者は、Leanpubを使用して、執筆中の書籍を出版しています。いつ本を購入したか、いくら支払ったかに関係なく、すべての読者は無料のアップデートを入手できます(無料も含む)。
Leanpubの本はPDF(コンピューター用)、EPUB(iPad用)、MOBI(Kindle用)のフォーマットに対応してます。本に含まれるフォーマットは、このページの右上隅に表示されます。
Leanpubの本には、DRMコピー防止のナンセンスがないため、サポートされているデバイスで簡単に読むことができます