レガシーコード改善ガイドの表紙

レガシーコード改善ガイド(レガシー コード カイゼン ガイド)

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

ソフトウェア工学・設計
著者:
マイケル・C.フェザーズ/ウルシステムズ株式会社(フェザーズ,マイケル・C./ウルシステムズ カブシキ ガイシャ)
出版社:
翔泳社
出版日:
2009年07月
ISBN:
9784798116839
シリーズ:
Object oriented selection
在庫:
在庫あり
4.07(34 件 / 楽天ブックス)

なぜ注目されているか

ソフトウェア工学・設計
3
総合6 2 ランクアップ 107 件の言及
言及数
16
04820222023202420252026

書籍紹介

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

技書の森解説

仕様書はなく、書いた人はもういない。それでも明日、そのコードに機能を足さなければならない。『レガシーコード改善ガイド 保守開発のためのリファクタリング』は、システム保守のその現場に正面から答える技法書です。マイケル・ C ・フェザーズ氏の著書 Working Effectively with Legacy Code の日本語版で、ウルシステムズ株式会社の翻訳・監修 (個人訳者は平澤章氏ら 5 名) により翔泳社から 2009 年 7 月に刊行されました。版元はこの本を、構造が複雑で理解できないようなコードに対する分析手法・対処手法の解説書と位置づけています。

内容の柱: 理解し、テストし、改善する

内容の柱は版元の紹介文が簡潔に言い切っています。すなわち「コードを理解し、テストできるようにし、リファクタリングを可能にし、機能を追加できるテクニック」。具体的には、仕様が分からないコードの分析方法、そのコードの修正方法と テストコードの追加方法、そして修正のついでに 疎結合 な設計へ部分的に改善していく方法が語られます。一方で COBOL などメインフレーム上のアプリケーションの改修方法は扱わないと版元が明記しており、守備範囲はオブジェクト指向言語を中心とした業務システムのコードベースです。

読みどころ: テスト不在という前提から始める

この本が特別な位置を占めるのは、リファクタリング書の多くが暗黙に置く前提、つまり「テストがあること」を前提にしない点です。保守の現場の本当の恐怖はデグレーション (直したつもりが別の場所を壊すこと) であり、それを防ぐ安全網のテストがそもそも無い。しかしテストを書くにはコードの変更が必要で、変更するにはテストが欲しい。この鶏と卵のジレンマを、依存関係を少しずつ切り離しながらテストを差し込んでいく手順に分解して見せるのが本書の核心です。安全地帯を一歩ずつ広げていく地道な工程が、具体的なコードとともに示されます。

サンプル言語と 2009 年刊でも古びない理由

サンプルは Java ・ C ・ C++ で書かれていますが、版元はテクニック自体が言語に依存しないことを明言しており、他の言語の使い手にも読める作りです。 2009 年の訳書 (原題は Working Effectively with Legacy Code) という時点の本ながら、扱っているのは特定フレームワークではなく「テストのないコードにどう手を入れるか」という普遍の問題であり、レガシー保守が存在する限り古びない内容です。なお、これから設計を学ぶ入門者が最初に読む本ではなく、既存コードの改修経験があって初めて痛みと処方が結びつきます。

向いている読者: 保守の現場の担当者

版元が対象に挙げるのは、仕様が分からないシステムの保守に悩む担当者、修正はできるがデグレーションに悩む担当者、疎結合な設計手法を知りたい技術者 です。テストのないプロダクトコードを日常的に触る立場なら、読む前と読んだ後で手の動かし方が変わる種類の一冊であり、保守という仕事に体系と希望を与えてくれる定番書です。

言及 Qiita 記事 (85 件)

言及 Zenn 記事 (1 件)

関連記事

関連用語

共有:Xはてブ