レガシーコード改善ガイド【PDF版】

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

商品番号
146350
販売状態
販売終了
納品形態
会員メニューよりダウンロード
発売日
2017年06月08日
ISBN
9784798146355
データサイズ
約18.1MB
制限事項
印刷可・テキストのコピー可
キーワード
プログラミング  電子書籍【PDF版】  レガシー

販売価格:¥4,620(税込)

ポイント:420pt (10%)
詳細はこちら

送料無料

現在、本商品は販売しておりません。 紙の書籍を見る
ほしい物リストに追加
  • 本製品は電子書籍【PDF版】です。
  • ご購入いただいたPDFには、購入者のメールアドレス、および翔泳社独自の著作権情報が埋め込まれます。
    PDFに埋め込まれるメールアドレスは、ご注文時にログインいただいたアドレスとなります。
    Amazon Payでのお支払いの場合はAmazonアカウントのメールアドレスが埋め込まれます。
  • 本製品を無断で複製、転載、譲渡、共有および販売を行った場合、法律により罰せられる可能性がございます。
  • ご購入の前に必ずこちらをお読みください。

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

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

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

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

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

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

PDF版のご利用方法

  1. ご購入後、SEshopにログインし、会員メニューに進みます。
  2. ご購入電子書籍およびデータ > [ご購入電子書籍およびダウンロードデータ一覧]をクリックします。
  3. 購入済みの電子書籍のタイトルが表示されますので、リンクをクリックしてダウンロードしてください。
  4. PDF形式のファイルを、お好きな場所に保存してください。
  5. 端末の種類を問わず、ご利用いただけます。

第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 用語集

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

関連商品

Pythonによるあたらしいデータ分析の教科書 第2版

販売価格:2,838円(税込)

2022.10.24発売

独学Photoshop 楽しく基本が身につくガイドブック【PDF版】

販売価格:2,750円(税込)

2022.09.21発売

福祉教科書 保育士 完全合格問題集 2023年版【PDF版】

販売価格:2,420円(税込)

2022.09.21発売

おすすめ特集

プログラミング本特集

翔泳社のプログラミング書籍の中から、入門・初級者向けの書籍をピックアップ!

アルゴリズムと数学の本

プログラマ脳を鍛える!エンジニアが読むべきアルゴリズムと数学の本特集。

20代社会人におすすめの本

20代の社会人が読むべき本!若手のうちに上質なビジネスマインドを身に付けよう

発達障害おすすめ本

大人の発達障害におすすめの本を紹介!「ちょっとしたことでうまくいく」シリーズ

電気工事技術者

第二種電気工事士、電験3種など、電気工事技術者関連の資格参考書はこちら

翔泳社のセミナー・講座

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

特集をもっと見る