Entry

今日読んだ本 - 『Visual C++プログラマのためのCOM入門』

2009年08月29日

どっぷりと仕事に漬かった本を読む。

Visual C++プログラマのためのCOM入門―はじめるWindowsシステムプログラミング (DeV selection)
豊田 孝
翔泳社
売り上げランキング: 72370
おすすめ度の平均: 3.0
4 C++設計思想が分かれば掴める内容
2 入門書?
5 絶対お勧め
1 com入門者にはお勧めできません。
2 確かに入門書ですが…。

Windows 上で開発した方は身に染みて分かってることなんでしょうけど,Windows 開発は,段階を追って難しくなるものの,その段階ごとに横道が用意されていたりします。ちと分かりにくいので,もう少し説明すると,Windows 上の開発には,次のような段階があったりするんですね。

  • プログラミングの基礎知識や概念を習得していること。
  • C/C++(特に C++)で基本的なプログラミングができること。
  • Windows API を利用して基本的なプログラミングできること(メッセージの受け渡し,WinSock 等の API を使えること)。
  • MFC を使ってプログラミングできること。
  • DLL を作れるようになること。
  • ATL/COM のクライアントを作ることができること。
  • Windows API を利用して複雑な資源管理ができること(メモリ管理,スレッド管理など)。
  • ATL/COM のサーバを作ることができること。
  • 特定の CPU やアーキテクチャ固有の命令を踏まえてプログラミングできること(デバイスドライバを作れること)。

最後の方は専門分化しているので,段階というよりは分野と言った方がいいんだろうけれど,ま,そんな感じ。

で,ここに挙げた段階というかロードマップというか,そゆもんが王道だとすると,次の段階に進む前の横道も用意されているわけです。例えば,プログラミングがどんなもんだか分かってるんだけれど,C/C++ はさっぱり分からん,という向きには Visual Basic や C# のような簡単な言語が用意されているし,C++ はちょっと自信ないという向きにも,Managed なプログラミング手法が用意されている。

また,DLL なんか作れなくても,Windows プログラミングと言えるもの自体はすることができるし,ぶっちゃけ COM なんて面倒なもんを知らなくても,便利なアプリケーションを作ることはできます。

ただ,仕事となると話は別で,その会社なり開発チームなりの技術水準に自分が合わせる必要があったりします。例えば,自社ライブラリ製品を COM コンポーネントの形で配布している会社だったら,「COM ってなんですか?」なんつのはお話にならない。

このことは,時々某匿名掲示板で,「いまどき MFC なんて古い古い!これからは .net で C# だよ!」とか言ってる向きにも当てはまることで,単純に Windows 上のテクノロジの「利用者」に収まったことを表明しているだけだったりします。「MFC 使えないから C# に逃げます」と言うのと同じ,というか……。もちろん,それでもお金は稼げるわけで,それで食い扶持を得ることができてるなら,何も問題はないわけですけれど。レガシーで基礎的な技術を食い扶持にして,屋台骨を支えている人もいる,と。

つことで,本書は,今となってはレガシーな技術もいいとこで,「いまどき使ってるやつなんているんかいな?」とかいった COM の入門書です。残念なことに,うちの開発チームでは,超ゴリゴリ使ってるもんで,COM を知らない若手開発者さんの教育用に,いい本はないかとちと読んでみたのでした。

内容は,簡単な COM サーバ/クライアントを作ることで,基本的な COM の仕組みを理解することが主眼になっています。COM プログラミングというと,C++ から扱う本が多いんですけれど,本書は C++ の他に VBScript からも COM コンポーネントを扱っている点でとっつきやすいんじゃないかと思います。また,基本的に「作りながら覚える型」の入門書なので,COM 開発の実際も割とつかみやすいんじゃないかと思う。

一方で,COM に触れる人ってのは,C/C++ の経験がある程度ある人で,Windows 上のプログラミングにもある程度慣れ親しんでいる人だったりします。そゆ向きからすると,本書のいかにも入門本的なたとえ話や無駄な画面ダンプは,冗長に見えてしまう。個人的に,本書は半分くらいのページ数でもすべて説明できたんじゃないかと思います。

また,これはしょうがいないんですけれど,本書の開発環境はちと古い Visual C++ 6.0 だったりします。先日,同僚と Windows xp + VC6 + まともな C++ コンパイラが最強の Windows 開発環境,みたいな話をしていて,あたしもそう思っているので,にんともかんともなんですけれど,いまどきの開発環境を使っている読者は,本書の説明とすりあわせながら読む必要があるので,ちと面倒かもしれません。

本書は入門書なので,COM の極々サワリの部分だけを扱った本と割り切って読むのがいいと思います。とりあえず理解しておいてもらわないと困る点については網羅しているので,読む価値はあると思うんですけれど,本格的な開発に進むには他書が欠かせません。

あたしはというと,1年くらい前から本格的に COM をはじめたんですけれど,そのときは『ATL COMプログラミング』を読んだのでした。しかし,これを読むのは本当に辛かった。そういう意味で言うと,本書は『ATL COMプログラミング』を読むための,いい前説本になるような気がします。

ATL COMプログラミング―ATLとVisualC++で作る高性能COMコンポーネント (Programmer’s SELECTION)
ATL COMプログラミング
posted with amazlet at 09.08.29
リチャード グリムス ジョージ ライリー アレックス ストックトン ジュリアン テンプルマン
翔泳社
売り上げランキング: 186544
おすすめ度の平均: 2.5
2 内容が古い
2 COMの知識が前提となっています
4 ATLを使ってCOM開発をするには必携

ところで,本書の一部レビューもそうなんですけれど,「オレが理解できないから悪い本」とかいったレビューは,なんつかちとトホホ。そゆ人は,MFC でも使ってりゃいんでね?とかとか。うちでは半ば必須だけれど,無理に理解しなくちゃいけない技術でもないし。

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