こんにちは、阿部と申します。
> 特に、リファクタリングとテストとの関係、つまりしっかりしたテストが用意
>されていればリファクタリングも怖くない、っていうあたりが面白かったです。
現在はテストとコードだけ書いていて、リファクタリングはこれからですが、
この辺は直感的にわかる利点ですね。
#個人的にはXPの大半がリファクタリングの為にあるんじゃないかと
思ってます。リファクタリングにさまざまなエッセンスを加えたのが
XPかと。
> 会社に、もう仕様変更をしなくてもいいくらい枯れた VB のライブラリがあり、
>でもコードを読んでみるとまだリファクタリングの余地があります(ロジックと
>UI と DB アクセスと COM アクセスが一枚岩のように動作している関数群)。
> これを C++ に移植して DLL 化するという計画があがりました。ただし、関数
>のシグニチャは変えちゃだめ、変えたくない、バグが入り込むのが嫌だから、と
>いうのが多くの意見でした。VB 特有のコンポーネントを引数にしているものが
>あったりと、そのままでは C++ で DLL にできません。
> XP に従い、しっかりしたテストを書けば、安いコストでリファクタリングで
>きると思うのですが、そういうことは知られていないようです。VBUnit に限ら
>ず、テスト・コードというものも書かれていません。
ええと、確認ですけど、上記の文章は繋がっているんでしょうか?なんか
異なる言語間の移植性の確保にリファクタリングやテスティングが使えそうな
表現に見えますが?
#そりゃ、C++でActiveX作ればVBUnitが使えるかもしれませんが
個人的には、後からテストコードを書いてもいいと思ってます。ただし、
リファクタリングの必要性があるなら、という条件付で。リファクタリングしたい
ならまずテストを用意しろ、という点は、精神安定のためにも譲れないですね。
でないと怖くてできません。当然、品質保証のためにも。
でも、完成したコードをリファクタリングする利点があるのか?という点を
考慮する必要はあると思います。
> テスト・コードを書いて、いつもプロジェクトといっしょに使えるようにして
>おくことがとても有用で、そうしてあればリファクタリングも恐れることはない
>んだよということを説得するのにいい方法ってありますでしょうか。
テスティングそれ自体の有用性も強調してはどうでしょうか?
リファクタリング自体は、有用では合っても必須でない(やらなくても一応動く、
という意味で)ですけど、テスティングは必須だと思います。コーディングの
初期段階から最終段階までコードの品質を一定レベルに保てるので、全体の
コストが下がります。(コスト=時間とかお金とか人月とか色々)これは実際に
今のプロジェクトで試して、成果が上がっているので事実です。まだ数値に
換算していませんけど。
私はまだリファクタリングを体験していないので、コードの品質を上げる行為が
開発プロジェクトにどう貢献するか(保守性をどこまで上げられるか)答えることが
できませんので、この辺は他の方にお任せします。
-------------------------------------------------------------
Takashi Abe <abetaka@....jp>
HP: http://homepage1.nifty.com/taka-page/
合気道 薫友会 : http://homepage2.nifty.com/kun-yu/index.html
-------------------------------------------------------------