翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 新規会員登録 ログイン
SEshop

レガシーコード改善ガイド

マイケル・C・フェザーズ(著) , ウルシステムズ株式会社(翻訳) , 平澤 章(翻訳) , 越智 典子(翻訳) , 稲葉 信之(翻訳) , 田村 友彦(翻訳) , 小堀 真義(翻訳) , ウルシステムズ株式会社(監修)

商品番号
116830
販売状態
発売中
納品形態
宅配便にてお届け
発売日
2009年07月13日
出荷開始日
2009年07月14日
ISBN
9784798116839
判型
B5変
ページ数
472
キーワード
プログラミング  レガシー

4,620円(税込)(本体4,200円+税10%)
送料無料

420pt (10%)
ポイントの使い方はこちら

在庫あり

初回購入から使えるポイント500円分プレゼント

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

保守開発のためのリファクタリング!

本書は、システム保守の現場でありがちな、構造が複雑で理解できないような
コードに対する分析手法・対処手法について解説します。
つまり、「コードを理解し、テストできるようにし、リファクタリングを可能にし、
機能を追加できるテクニック」を紹介している書籍です。

本書には、以下のことが記載されています。
●仕様が分からないコードの分析方法
●仕様が分からないコードの修正方法、またテストコードの追加方法
●コードの修正で、疎結合な設計に部分的に改善する方法

また、本書には、以下のことは記載されていません。
●COBOLなどで記述されているメインフレーム上のアプリケーションの改修方法

【 対象読者】
●現行のシステムが仕様が分からず保守作業に悩む、保守担当者
●現行のシステムの修正作業は可能であるもののデグレーションに悩む、保守担当者
●疎結合な設計手法を知りたい技術者

本書はJava、C、C++でサンプルを記述していますが、
記載されているテクニックは言語依存するものではないため、
他の言語(Delphi、Visual Basic、COBOL、FORTRAN)でも使えます。

画像01
画像02
画像03
画像04

第1部 変更のメカニズム

第1章 ソフトウェアの変更
1.1 ソフトウェア変更の4つの理由
1.2 危険な変更

第2章 フィードバックを得ながらの作業
2.1 単体テストとは
2.2 上位レベルのテスト
2.3 テストによる保護
2.4 レガシーコードの変更手順

第3章 検出と分離
3.1 協調クラスの擬装

第4章 接合モデル
4.1 巨大な用紙の文字の羅列
4.2 接合部
4.3 接合部の種類

第5章 ツール
5.1 自動リファクタリングツール
5.2 モックオブジェクト
5.3 単体テストハーネス
5.4 一般的なテストハーネス

第2部 ソフトウェアの変更

第6章 時間がないのに変更しなければなりません
6.1 スプラウトメソッド
6.2 スプラウトクラス
6.3 ラップメソッド
6.4 ラップクラス
6.5 まとめ

第7章 いつまで経っても変更作業が終わりません
7.1 理解すること
7.2 遅延時間
7.3 依存関係の排除
7.4 まとめ

第8章 どうやって機能を追加すればよいのでしょうか?
8.1 テスト駆動開発(TDD)
8.2 差分プログラミング
8.3 まとめ

第9章 このクラスをテストハーネスに入れることができません
9.1 いらだたしいパラメータ
9.2 隠れた依存関係
9.3 複雑な生成
9.4 いらだたしグローバルな依存関係
9.5 恐るべきインクルードの依存関係
9.6 玉ねぎパラメータ
6.7 別名のパラメータ

第10章 このメソッドをテストハーネスで動かすことができません
10.1 隠れたメソッド
10.2 言語の「便利な」機能
10.3 検出できない副作用

第11章 変更する必要がありますが、どのメソッドをテストすればよいのでしょうか?
11.1 影響の調査
11.2 前方向の調査
11.3 影響の伝播
11.4 影響調査のためのツール
11.5 影響スケッチの単純化

第12章 1ヶ所にたくさんの変更が必要ですが、関係するすべてのクラスの依存関係を排除すべきでしょうか?
12.1 割り込み点
12.2 絞り込み点で設計を判断する
12.3 絞り込み点の落とし穴

第13章 変更する必要がありますが、どんなテストを書けばよいのかわかりません
13.1 仕様化テスト
13.2 クラスの仕様を明らかにする
13.3 狙いを定めたテスト
13.4 仕様化テストを書くための経験則

第14章 ライブラリへの依存で身動きが取れません

第15章 私のアプリケーションはAPI呼び出しだらけです

第16章 変更できるほど十分に私はコードを理解していません
16.1 メモを取る/スケッチを描く
16.2 印を付ける
16.3 試行リファクタリング
16.4 使用していないコードを削除する

第17章 私のアプリケーションには構造がありません
17.1 システムのストーリーを話す
17.2 白紙のCRC
17.3 会話の吟味

第18章 自分のテストコードが邪魔になっています
18.1 クラスの命名規約
18.2 テストコードの配置

第19章 私のプロジェクトはオブジェクト指向ではありませんが、どうすれば安全に変更できるでしょうか?
19.1 簡単なケース
19.2 困難なケース
19.3 新しい振る舞いの追加
19.4 オブジェクト指向の長所の活用
19.5 すべてはオブジェクト指向

第20章 このクラスは大きすぎて、もうこれ以上大きくしたくありません
20.1 責務の把握
20.2 その他の技法
20.3 先へ進む
20.4 クラスの抽出後

第21章 同じコードをいたるところで変更しています
21.1 最初のステップ

第22章 モンスターメソッドを変更する必要がありますが、テストを書くことができません
22.1 モンスターの変種
22.2 自動リファクタリング機能でモンスターに立ち向かう
22.3 手作業によるリファクタリングに挑戦
22.4 戦略

第23章 どうすれば何も壊していないことを確認できるでしょうか?
23.1 超集中編集
23.2 単一目的の編集
23.3 シグネチャの維持
23.4 コンパイラまかせ
23.5 ペアプログラミング

第24章 もうウンザリです。何も改善できません

第3部 依存関係を排除する手法

第25章 依存関係を排除する手法
25.1 パラメータの適合
25.2 メソッドオブジェクトの取り出し
25.3 定義の補完
25.4 グローバル参照のカプセル化
25.5 静的メソッドの公開
25.6 呼び出しの抽出とオーバーライド
25.7 Factory Methodの抽出とオーバーライド
25.8 getメソッドの抽出とオーバーライド
25.9 実装の抽出
25.10 インタフェースの抽出
25.11 インスタンス委譲の導入
25.12 静的setメソッドの導入
25.13 リンクによる置き換え
25.14 コンストラクタのパラメータ化
25.15 メソッドのパラメータ化
25.16 パラメータのプリミティブ化
25.17 メソッドと変数の引き上げ
25.18 依存関係の押し出し
25.19 関数ポインタによる関数の置き換え
25.20 getメソッドによるグローバル参照の置き換え
25.21 サブクラス化とメソッドのオーバーライド
25.22 インスタンス変数の入れ替え
25.23 テンプレートによる再定義
25.24 テキストによる再定義

付録A リファクタリング
A1 メソッドの抽出

付録B 用語集

各種問い合わせは以下のリンクからご連絡ください

感想・レビュー

さん

2021-09-05

「レガシーコードからの脱却」からの「レガシーコード改善ガイド」。「レガシーコードからの脱却」は如何にレガシーコードを書かないようにするか、既に存在してしまっているレガシーコードの規模を如何に小さくしていくかに重きを置いていたけれど、「レガシーコード改善ガイド」はその名の通りレガシーコードの改善に特化した本になっている。一通りざっと目を通しておくのももちろん良いのだが、どちらかと言えば手元に置いておいて、遭遇したレガシーコードの改善方法に悩んだ時に活用するハンドブック的な位置付けがしっくりきそう。

hideoku さん

2012-06-23

テストがないコードをテストで保護されたコードにリファクタリングしていく。その手立てがたくさん紹介されている。自動テストやテスト駆動開発に興味を持ったプログラマに読んでほしい本。コーディングのお勉強にもなった。

benjoe さん

2018-03-11

ク○コードだらけ!と噂を聞いたシステムの保守をやることになったので改善のヒントを!という事で読みました。 目から鱗!というほどの内容ではなかったけど共感を感じる内容。 改修ついでのリファクタリングに消極的な担当者の机に置いておいてやりたい。

関連商品

おうちで学べる Pythonのきほん

2,420円(税込)

2024.05.20発売

おうちで学べる Pythonのきほん【PDF版】

2,420円(税込)

2024.05.20発売

おすすめ特集

法人・教育機関のお客様へ

【法人・教育機関のお客様へ】新年度の大口注文・お見積りなど、お気軽にご相談ください

Webデザイン特集

デザインやコーディングなど、Webデザインに役立つスキルが身につく書籍を揃えました

生成AI特集

テキスト生成、画像生成、動画生成など、生成AI活用のスキルが身につく本をご紹介

新社会人におすすめの本

新社会人の役に立つスキルが身につく本。ビジネスパーソンとしてスタートダッシュを切ろう!

プログラミング教育の本

小学校から必修化!人気の『ルビィのぼうけん』ほかプログラミング教育の本はこちら

翔泳社のセミナー・講座

開発・ビジネス・マーケティング・EC運営・営業支援など、幅広いジャンルの講座を開催

特集をもっと見る