レガシーコード改善ガイド (Object Oriented SELECTION)
posted with amazlet at 12.10.12
マイケル・C・フェザーズ
翔泳社
売り上げランキング: 18244
翔泳社
売り上げランキング: 18244
「本書はJava、C、C++でサンプルを記述していますが、記載されているテクニックは言語依存するものではないため、他の言語(Delphi、Visual Basic、COBOL、FORTRAN)でも使えます」と本の紹介にはあるけれど、どうだろう……。書いてあることから言語依存しないテクニックを抽出するなら「依存関係は少なくしろ」とか「既存部分に影響がないような機能追加の仕方を見つけろ」とかになるんだけれど、それって普通のこと、じゃないの……? 機能変更のために方法がいくつかあって、そのなかに「一番簡単だけど、あとで直す必要が出てきたときに影響がデカい方法」があるなら、それは長いスパンでみるとコストがデカいからやめろ、とかも、企業に勤めてチームのなかで開発をする経験が浅い、とかいう人ならまだしも、それなりに経験を積んでたらそっちは選ばないでしょう。
普段私はCOBOLで仕事をしてるんだけれど、テスト自動化をメインフレーム上で支援してくれるツールとかないし、本書の値段分の得られて知見があったか、というと、得られませんでしたね。残念ながら完全にこの本の想定読者からハズれている。たくさんの改善事例が載っているのは良いけど、でもこれ読んで「なるほど、こんな風に改善すれば良かったのか!」と学べる(特にサンプルにはいってない言語を使っている)人は、自分で適切な改善方法を見つけられるような気もするし。「テストを書く」にしても「Javaはこういう書き方ができて良いなあ……」と指をくわえてうらやましく思うしかないですよ、クソCOBOLerとしては……。
ホントに言語依存していない知識としては、16章「変更できるほど十分に私はコードを理解していません」、17章「私のアプリケーションには構造がありません」ぐらいだろうか。16章はコードの読み方をメモの取り方とかから教える記事。17章はチーム・リーダーがプロジェクトやアプリケーションの意味について部下に伝えるというところから解決策が提示される。これも教えられなくてもすでにやってるよ、という人のほうが多いでしょ、でも、もしかしたら「そうか、コードはこんな風に読めばいいのか!(読ませれば良いのか)」とか気付きを得られる人もいるかもしれない。新人プログラマーにコードの読み方を教える機会もないわけじゃないので、今後はこれを教材として渡そうかな、とは思った。
コメント
コメントを投稿