Entry

連休中に読む本を買ってきた - ATL COMプログラミング / アナリシスパターン

2008年04月26日

せっかくの連休だから,本をがっつり読もうと思って,趣味に走ってみました。

ATL COMプログラミング―ATLとVisualC++で作る高性能COMコンポーネント (Programmer’s SELECTION)
リチャード グリムス ジョージ ライリー アレックス ストックトン ジュリアン テンプルマン
翔泳社
売り上げランキング: 28661
おすすめ度の平均: 4.0
4 ATLを使ってCOM開発をするには必携

ATL を使って,COM プログラミングをするための本です。

ATL(Active Template Library)というのは,COM(Component Object Model)のプログラミングを簡単にするために使われる,C++ のクラスライブラリです。今となっては .NET の方が主流になっちゃったもんで,いまさら COM ってのもアレなんですけれど,Microsoft の基盤技術として知ってないと恥ずかしい,というのはあったのでした。まぁ……あたしが趣味で使ってる処理系が VC6 だから(.NET 未サポート)ってのもあるんですが……。

実のところ,最近流行りの XML ウェブサービスと ATL ってのは割と相性がいいんだそうで(そう聞いた),個人的には今になって ATL の時代がきた!とか思っていたりします(思い違いかもしれんけど)。MSDN では WSDL から C++ のネイティブクライアントコードを生成してくれるツールを提供していたりするもんで,何かとウェブサービスベースのクライアントアプリを作りやすい環境があったりします(参照:ネイティブ Web サービス プロキシ ジェネレータ (ATL Server))。

というわけで,ATL をぼちぼちちゃんと勉強してみる。

つづきまして,『アナリシスパターン』。何度か読んでたんですけど,借り物だったのでした。

アナリシスパターン―再利用可能なオブジェクトモデル
マーチン ファウラー
アジソンウェスレイパブリッシャーズジャパン
売り上げランキング: 173171
おすすめ度の平均: 2.0
2 モデリングおたく向け

この手のモデリング本は,とても抽象度が高いもんで,実際にどうやって役立てるか,とても難しかったりします。そこらのデザパタ本よりよっぽど抽象度が高い。

けど,こういうのは,突き詰めると順番の問題なわけで,抽象度が高かろうが低かろうがあまり関係ないと思うんですね。どういうことかというと,非常に具体的なケーススタディ本を読むにしても,本に書いてあることができるようになるだけじゃ,似たような「別の」システムを作ることはできない,ということです。「別の」システムを作るには,ケーススタディで知った内容を,結局どこかで抽象化して解釈しないといけない,と……。順番の問題,というのはそういうこと。

で,ケーススタディ本のいけないところは,このような抽象化を「自分で」しないといけないところです。これは,手間を惜しむのがよくない,というわけじゃありません。そうではなくて,自分だけでこういう作業をすると,変な癖が付きやすいと思うんです。オブジェクト指向でやってるぜ!とか言ってはいるものの,ハタと気が付くと,毎度のように同じやり方しか使っていない(または使えなくなっている)ことに気が付くことはないでしょうか。黄金パターンだと思い込んでいる設計/実装手法。それが癖です。

具体的なケースを見てから,似たような別のシステムをさっさと作ることができる人ってのは,そのケースでミソになっているアーキテクチャや発想,利点・欠点,適切な適用場面等々をその場で抽象化してつかむことができる人です。言ってみりゃ,一を聞いて十を知ることができる人なわけで,そうそういません。実際,こゆことができる人は,設計/実装以外の場面でも,この手の抽象化がとてもうまい。

一方,そうではない凡人は,一を聞く前に,あらかじめ十を知っちゃった方が何かと便利だと思ったりするんですね。つまるところ,アーキテクチャや発想,利点・欠点,適用場面等々の「パターン」をあらかじめ知っておく,ということです。

そんな感じで本書を読むと,具体的なケーススタディ本よりも,実は凡人向けなんじゃないかと思ったりします。たしかに,はじめて読むとなんのこっちゃかさっぱりなんですけどね。

……とまれ,今回の2冊はかなりゴツイので,連休中に読破するのは多分無理。てか,絶対無理。本書2冊で半年はオカズに困らないだろうなぁ……。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN