テストコードの注入から始めるレガシーコードのリファクタリング
$10.00
最低販売価格
$15.00
希望販売価格

テストコードの注入から始めるレガシーコードのリファクタリング

レガシーコードに立ち向かう一歩目は、とりあえずテストを書いてみることだ

本書について

本書籍では、レガシーコードに対しての最初の一歩を踏み出したいと考えている人に向けて書いた本になります。その際、テストコードの記述にも重点をおきながら、レガシーコードをリファクタリングする過程を説明しています。

本書籍では下記のような人を想定読者としています。

  • テスト駆動開発(以下、TDD)を知っている
  • レガシーコードやリファクタリングとは何か知っている
  • 実際の現場でレガシーコードと出会っている
  • レガシーコードに対してリファクタリングを行う時に、まず何から手を付ければ良いのか分からない
  • 今後、自分がレガシーコードを作らないように心がけたい

本書籍を読み、写経することで、下記の 2 点が身につきます。

  • 少しずつテストケースを追加して改善していく方法を実感する
  • 苦しくないリファクタリングの方法を学ぶ

本書籍では Java および JUnit5 を用いて解説していきますが、基本的な考え方はどの言語でも似ていると考えていますので、読者の皆さんの言語に置き換えて読むことが可能です。

また、本書籍を購入していただいた方には、第3章で扱っている「要件を元に責務ごとにロジックを分割して整理する」のリファクタリングの様子を収めたライブコーディングのビデオも付いてきます。

  • 本書をシェアする

  • Categories

    • Automated Software Testing
    • Testing
    • Java
  • フィードバック

    Contact the Author(s)

著者について

Yuya Kazama
Yuya Kazama

After graduating, he joined an internal tool development team for 2 years and gained experience in design and development. 4 years later, he worked as a QA for test automation and process improvement.

Currently, he is participating in the launch team of QA, and is coaching how the QA team work with a small test base.

And he is now educating ourselves on the importance of creating quality from the upstream process in parallel with his daily work.

新卒から2年間、社内ツールの開発チームに参画し設計・開発の経験を積み、その後の4年はテスト自動化やプロセス改善など、QAとして従事した。

現在は、QAの立ち上げチームに参画し、テストベースが少ない状態からQAチームが活動できる体制を整備・啓蒙している。

また、普段の業務と並行して、上流工程から品質を作り込むことの大切さを社内外に啓蒙中。

目次

  • 第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クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。

Do Well. Do Good.

著者はLeanpubで執筆、出版、販売を利用して$11,721,492稼ぎ、80% royalties儲けました。最大2500万ポンドのCO2を節約し、最大46,000本の木を助ける事が出来ました。

Leanpubでの執筆についてもっと知る

無料更新。無料アップデート。 DRMフリー。

Leanpubの本を購入すると、著者が本を更新している限り、無料で更新されます!多くの著者は、Leanpubを使用して、執筆中の書籍を出版しています。いつ本を購入したか、いくら支払ったかに関係なく、すべての読者は無料のアップデートを入手できます(無料も含む)。

Leanpubの本はPDF(コンピューター用)、EPUB(iPad用)、MOBI(Kindle用)のフォーマットに対応してます。本に含まれるフォーマットは、このページの右上隅に表示されます。

Leanpubの本には、DRMコピー防止のナンセンスがないため、サポートされているデバイスで簡単に読むことができます

Leanpubの電子書籍形式とそれらを読む場所の詳細をご覧ください

Leanpubで執筆と出版

著者や編集者はLeanpubを通して執筆中や完成した素晴らしい本を出版しています。Leanpubを利用して本を執筆、出版、売ることが出来ます! Leanpubは、真剣な著者にとって強力なプラットフォームであり、シンプルでエレガントな執筆と出版のワークフローと、執筆中の電子書籍の販売に焦点を当てたストアを組み合わせています. Leanpubは、著者にとって魔法のタイプライターです。プレーンテキストで書くだけで、電子書籍をボタン一つで出版出来ます。すごく簡単です。

Leanpubでの執筆についてもっと知る