ホーム > 読んだ >

リファクタリング
プログラミングの体質改善テクニック

書誌

tagJava
authorマーチン・ファウラー
editor児玉公信, 友野晶夫, 平澤章, 梅澤真史(訳)
publisherピアソン・エデュケーション
year2000
price4,800+tax
isbn89471-228-8

目次

1感想
2抄録
3正誤表

履歴

editor唯野
2001.9.13読了
2001.9.13公開
2001.9.27修正
2012.1.17タグ追加

オブジェクト指向による「機能を保ちつつプログラムを改善する」ためのテクニックについて述べた本。サンプル・プログラムとして取り上げられているのは Java だが、C++ プログラマでも十分に読みこなせる内容になっている。リファクタリングが脚光を浴びているというのは、それだけプログラムにおけるメンテナンス性の問題が重視されてきていることへの裏返しであり、近頃話題の XP プログラミングに限らず(オブジェクト指向も含め)そういう問題を包括して提示しようとしている点は示唆に富んでいるといえるだろう。なぜなら個々のテクニックに関していえば、それほどトリッキーなものがあるわけではないため、それだけに継続的なテストとのセットという側面が協調されることになるからである。つまり個々のテクニックだけではなくてテストのあり方に対する認識までを学ばないとリファクタリングが大きな効果を生むのは難しいということであり、プログラミングにおける開発工程のシームレスなつながり、並行性が基本になってくるからである。

抄録

xiii/xvi/53-54/67/424

リファクタリング(ファクタリングの繰り返し)は Smalltalk コミュニティより生まれたもので、フレームワークの開発で特に不可欠なものとなる。リファクタリングとは「ソフトウェアの外部的振る舞いを保ったままで、内部の構造を改善していく作業」であり、「実装したあとで、設計を改善する」側面を持つ。そうすることで初期の設計が唯一無二の完璧な解決策である必要性がなくなる。

リファクタリングには名詞的側面(外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること)と動詞的側面(一連のリファクタリングを行って、外部から見た振る舞いの変更なしに、ソフトウェアを再構築すること)とがある。

7/21/55/58

機能追加の難しいプログラムに対しては、まず機能追加の簡単になるようなリファクタリングを施してから機能追加を行うようにする。(読みやすいコードに書き換える。)リファクタリングを行わない場合、そのプログラムの設計は徐々に劣化する。リファクタリングにおける重要事項として重複や一時変数の排除が挙げられる。または同じようなことが 3 度目になったらリファクタリングを開始するなど。

8/52/90-91/93/94/97/100/101

テストの実施と判定は自動実行されるようにしておく。そうすることでデバッグの手間も大幅に軽減させられる。コーディングでも先にテストコード(assert)から手を付けていくとよい。そのためのリファクタリングのリズムとなる「テスト、少しの変更、テスト、少しの変更」という繰り返しの重要性について。とにかくテストを頻繁に行うということ。(Java には JUnit と呼ばれるテストのためのフレームワークがある。)

全文を読まれる場合はログインしてください


Up