
無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません。
ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
レガシーコード改善ガイド Kindle版
保守開発のためのリファクタリング!
本書は、システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処手法について解説します。つまり、「コードを理解し、テストできるようにし、リファクタリングを可能にし、機能を追加できるテクニックを紹介している書籍です。
本書には、以下のことが記載されています。●仕様が分からないコードの分析方法
●仕様が分からないコードの修正方法、またテストコードの追加方法
●コードの修正で、疎結合な設計に部分的に改善する方法
また、本書には、以下のことは記載されていません。
●COBOLなどで記述されているメインフレーム上のアプリケーションの改修方法
【 対象読者】
●現行のシステムが仕様が分からず保守作業に悩む、保守担当者
●現行のシステムの修正作業は可能であるもののデグレーションに悩む、保守担当者
●疎結合な設計手法を知りたい技術者
本書はJava、C、C++でサンプルを記述していますが、記載されているテクニックは言語依存するものではないため、他の言語(Delphi、Visual Basic、COBOL、FORTRAN)でも使えます。
※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。
- 言語日本語
- 出版社翔泳社
- 発売日2009/7/13
- ファイルサイズ9729 KB
- 販売:
- Kindle 電子書籍リーダーFire タブレットKindle 無料読書アプリ
この商品を買った人はこんな商品も買っています
登録情報
- ASIN : B01AN97W08
- 出版社 : 翔泳社; 第1版 (2009/7/13)
- 発売日 : 2009/7/13
- 言語 : 日本語
- ファイルサイズ : 9729 KB
- Text-to-Speech(テキスト読み上げ機能) : 有効
- X-Ray : 有効
- Word Wise : 有効にされていません
- 付箋メモ : Kindle Scribeで
- 本の長さ : 448ページ
- Amazon 売れ筋ランキング: - 194,020位Kindleストア (Kindleストアの売れ筋ランキングを見る)
- - 7,365位コンピュータ・IT (Kindleストア)
- - 14,170位コンピュータ・IT (本)
- カスタマーレビュー:
著者について
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
-
トップレビュー
上位レビュー、対象国: 日本
レビューのフィルタリング中に問題が発生しました。後でもう一度試してください。
スプラウドメソッドやラッパーメソッドはレガシーコードでなくても基本的なコーディング方法論としても有益でしょう。
これを読んだら、つぎは「リファクタリング」がお勧めです。
・Java,C++関連がサンプルだが、他の言語(自分の場合はDelphiなんか)にも役に立つ考え方
・訳はあまり良くない。内容がわかっている人にとってはわかりやすいのかもしれないけど、やはり直訳的なものが目立ち、意味がわかりにくいところが多々あり。
・ある程度、開発に携わっている人でないと、初心者の勉強だとピンとこないところが多数だと思う。
・全く古さを感じさせず、現在でも十分に役に立つことが多数。
色々と試行錯誤してテストを作ったものの、テストでコードを保護するという理想には、程遠い、酷いテストケースの山が。。
リファクタリングに耐えられるようなテストコードの書き方が分からなかったのが致命的でした。
ちゃんとしたテストが書けていれば、例えばテスト対象をリファクタリングしても、同じテストでリファクタリング後のコードがテストできるハズなのですが・・・
自分の書いたテストだと・・・リファクタリングしたらテストコードの変更も必要になってしまうという。。
なので、ある程度、ちゃんとしたテストコードが書ける人が読むべき本なのかもしれません。
ただ、どのようなコードがテストしづらいのか?どのようなコードがテストしやすいコードなのか?
といった観点など設計のヒントは読むだけでも手に入りますので、テストが整備できなかったとしても読んだ価値はあったのではないかと思っています。
→テストが無ければ安心してコードが変更できない。
→しかしテストで保護するには、多くの変更が必要になる。
→どうコードを変更し、いかにしてテスト可能にするか?
というストーリーで、テストを導入する方法を豊富な事例と共に紹介しています。
責務が多すぎるクラス、数百行に渡るモンスターメソッド、分岐だらけのロジックなど、現場では当たり前のように出てくる「残念なコード」に対し、解決策を提示しています。
サンプルコードはJavaとC++が大半ですが、私はPHPで実践しました。
オブジェクト指向言語ならこの考え方は汎用的に使えます。
特に役に立ったのは以下の考え方です。
* コードの保護が最優先。保護されたコードは後でいくらでも修正・改善できる。
* 保護するために一時的にコードが醜くなっても構わない。
* 既存のひどいコードを直すよりテストで保護されたパーツで置き換える方が、結局早いし、後々も楽である。
* 仕様が全く不明なコードでも、仕様を把握するためだけのテストを書けば理解が進む。
私は全くテストが無く、「不吉な匂い」で満たされたシステムを担当させられましたが、この本のやり方を知ることで自信を持ってエンハンスができるようになりました。
なお、この本の内容はTDD(テスト駆動開発)を未体験の人にはピンと来ないことが多いと思われます。
「テストを先に書いて後からコードを直す」という手法が当たり前のように使われるからです。
TDDのやり方を習得していないと、この本だけではどう実践していいかわからないかもしれません。
そのため、まずはTDDを習得してから読むことをお勧めします。
私がイメージしていたような「レガシーコード」には私自身、実際に泣かされることも多いため、「銀の弾丸」的なテクニックが載っていないかと期待していましたが、残念ながらこの本からはそのようなテクニックは見つかりませんでした。
この本が主にターゲットとしているのは、「ある程度オブジェクト指向設計に基づいたソースコード」です。オブジェクト指向ではコーディングされにくいVB/VBAや、JavaやC#なのに活用されている言語機能はC言語止まり、といったコードにはあまり向いていないかもしれません。
こういうケースはやはり地道に解析するしかないんですかね・・・。
とはいえ、星は5つです。
改めて自動化テストの重要性を確認する事ができましたし、テストを優先してメソッドの可視性をあえて上げる、といった発想が新鮮でした。
この本で書かれているリファクタリング技法はマーティンファウラーの「リファクタリング」と重なる部分も多いですが、それでも「テストのためのリファクタリング」という視点が新しいと思います。
そして何より「既存のコード」への対処方法をメインに扱った書籍というのは前例がないと思います。この本を読めば間違いなく、これまでにはなかったプログラムに対する新しい視点を持つ事が出来るようになるでしょう。
P.S.
保守開発に苦労している方はこちらの本も参考になるかもしれません。
=> 「派生開発」を成功させるプロセス改善の技術と極意
実際に保守作業をしてる中で、何も考えずでかいクラスにあるでかいメソッドに追加してました。
本書には「書いたあとうまく動くことを祈る書き方」といったような表現で書かれてましたが、的を得ていてなるほどなーと納得しました。
他にもまずテストを追加してその後処理を加えるTDDのこととか、テストを追加し辛い場合のインターフェイスを用いた手法やメソッドの抽出をして影響範囲を少しずつ狭めるところなど参考になりました。
ただ聞けばわかるのですが、いざ現場で実践しようとすると、ちょっと難易度が高いなぁという印象でした。(本質が理解できてない?)
その辺は読み込もうと思います。
複雑に絡み合った依存関係は整理しなければ、テストしやすくならない。テストしにくいコードをテストしやすく変えていくためのリファクタリングの話でもある。
そのためのテクニックが色々紹介されている。
ためになる部分は多かった本だと思う。