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

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

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

本について

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

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

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

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

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

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

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

  • この本をシェアする

  • カテゴリー

    • 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の60日間100%満足保証

購入後60日以内であれば、たった2クリックでLeanpubでの購入について100%返金を受けることができます。

技術的には、本やコースのファイルはお手元に残るため、これは私たちにとってリスクとなります。しかし、私たちは自社の製品やサービス、そして著者と読者を深く信頼しているため、販売する全ての商品に対して全額返金保証を喜んでご提供しています。

何かの良し悪しは実際に試してみないとわかりません。100%返金保証があるため、試すことに全くリスクはありません!

ですから、カートに追加するボタンをクリックしない理由はないですよね?

利用規約の詳細を見る...

$10の購入で$8、$20の購入で$16を獲得

$7.99以上の購入に対して80%のロイヤリティを、$0.99から$7.98までの購入に対して50セントの定額手数料を差し引いた80%のロイヤリティをお支払いします。$10の売上で$8、$20の売上で$16を獲得できます。つまり、あなたの本が$20で5000部返品なしで売れた場合$80,000を獲得できます。

(はい、すでに多くの著者がLeanpubでそれ以上を稼いでいます。)

実際、著者たちはLeanpubでの執筆、出版、販売を通じて1,400万ドル以上を獲得しています。

Leanpubでの執筆についてさらに詳しく

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

Leanpubの本を購入すると、著者が本を更新し続ける限り、無料でアップデートを受け取ることができます!多くの著者は執筆中の本をLeanpubで公開しています。全ての読者は、購入時期や支払額(無料も含む)に関係なく、無料アップデートを受け取ることができます。

ほとんどのLeanpubの本は、PDF(コンピュータ用)とEPUB(スマートフォン、タブレット、Kindle用)で利用できます。本に含まれるフォーマットは、このページの右上に表示されています。

さらに、Leanpubの本にはDRMによるコピー保護は一切ないため、対応デバイスで簡単に読むことができます。

Leanpubの電子書籍フォーマットと読書方法についてもっと詳しく

Leanpubで執筆・出版

Leanpubを使えば、進行中や完成済みの電子書籍やオンラインコースを簡単に執筆、出版、販売することができます!

Leanpubは真剣な著者のための強力なプラットフォームで、シンプルでエレガントな執筆・出版ワークフローと、進行中の電子書籍の販売に特化したストアを組み合わせています。

Leanpubは著者のための魔法のタイプライターです:プレーンテキストで書くだけで、ボタンをクリックするだけで電子書籍を出版できます。(または、独自の方法で電子書籍を制作している場合は、自分のPDFやEPUBファイルをアップロードして、ワンクリックで出版することもできます!)本当にそれだけ簡単です。

Leanpubでの執筆についてもっと詳しく