2008年5月18日 (日)

x86プログラム解析入門

【 評価    】★★★☆☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】978-4-7980-1705-1

一度くらい、逆アセンブルをしようと思った人なら必ず見ている、Digital Travesiaの管理人が書いた本です。対象となる読者はC言語によるWindowsプログラミングを経験していて、かつ、実行ファイルの解析をしたことがない人です。評価が3つ星である理由は、本の内容ではなく、この本の購読者層をどこにしたんだろうという疑問点からです。つまり、簡単な話と難しい話が両極と感じたのです。

続きを読む "x86プログラム解析入門"

11:30 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2007年12月 9日 (日)

Windowsプログラミングの極意 - The OLD NEW THING -

【 評価    】★★★★★ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】978-4-7561-5000-4

MSDNブログを眺めていた人は知ってるんじゃないんでしょうか。常にトップのコメント数がついていたあのブログが本になって帰ってきました。対象となる読者はWindowsプログラミング(WIN32API)に精通した人です。まず初めに日本語のタイトルで勘違いしちゃならないのは、この本は技術書ではなく、娯楽本だということです売るためとはいえ、勘違いさせるような主題をつけちゃうのはよくないと思いますね。

続きを読む "Windowsプログラミングの極意 - The OLD NEW THING -"

01:30 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2006年10月 9日 (月)

C++の設計と進化

【 評価    】★★★☆☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-7973-2854-1

通称D&E、Bjarne Stroustrup氏本人による読み物です。対象となる読者は言語を設計することに興味がある人、C++には何故こんな機能がないんだと思う人です。これだけの本が3つ星評価なのは、価格が高めな事と、あと10年早く日本語で読めたらという事からです。和訳は良くできてますし、訳者による注釈も助かりました。

続きを読む "C++の設計と進化"

01:49 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2006年7月 2日 (日)

ハッカーのたのしみ

【 評価    】★★★☆☆ Amazonレビュー

【 難易度 】★★★★★

【 ISBN    】4-434-04668-3

プログラマ屋さんの本ではなく、コンパイラ屋さんのための本です。購読対象は、科学技術計算や画像処理、暗号アルゴリズムを実装する人です。本のタイトルから、セキュリティ本と勘違いしそうですが、その要素はまったく有りません。ひたすら数学とコンピュータの内部処理の話です。最初にいっておきますが、評価が不当に低い(☆3つ)のは、私のような普通のプログラマにこのような技術が要求されることは少ないからです。日本語訳が駄目な所以外は、良く纏まっていると思います。

続きを読む "ハッカーのたのしみ"

08:21 午後 技術書レビュー | | コメント (0)

2006年5月 9日 (火)

Joel on Software

【 評価    】★★★★★ Amazonレビュー

【 難易度 】★★☆☆☆

【 ISBN    】4-274-06630-4

プログラマ向けの簡易テスト、「Joel Test」で有名な彼による日記本です。購読対象は中堅プログラマから管理者向けです。同テストを知らない人はこのページだけでも読んでみましょう。彼の文章を面白いと思ったのならば、私と同様、この本を楽しんでよめる人の1人です。

続きを読む "Joel on Software"

11:23 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年4月23日 (日)

Effective COM

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★★★

【 ISBN    】4-756-118-089

企業向けMicrosoft技術であるCOMの実用書です。「COM+」、さらに「.NET」となっている今では多少古いですが、まだ利用価値の高い本です。購読対象は熟練したC++のCOMプログラマのみです。つまり、COMを実務として最低半年従事した位の知識がないと、全くといっていいほど読みこなせません。

続きを読む "Effective COM"

11:49 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年3月21日 (火)

インサイドCOM+ 基本編

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★★☆

【 ISBN    】4-89100-149-6

企業向けMicrosoft特化プログラミング技術の中核をなしてきたCOM技術の最終版です。現在、COMの技術は.NET Frameworkとして受け継がれました。購読対象者はC++を扱える企業プログラマのみです。

続きを読む "インサイドCOM+ 基本編"

10:08 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年3月 3日 (金)

C/C++ セキュアプログラミングクックブック VOLUME1

【 評価    】★★★☆☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-87311-200-1

セキュリティの高いプログラムを書く方法と題して3巻セットの基本編です。私が考える適切な購読対象者はWebプログラマ及びシェアウェア作家です。理由は後述します。

本書は小さなトピックの集合で構成されています。課題、解決法、解説の構成になってます。WindowsとUNIXが半々ずつ書かれていて、ソースコードが多めです。

続きを読む "C/C++ セキュアプログラミングクックブック VOLUME1"

12:39 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2006年2月18日 (土)

CODE COMPLETE 第2版(上)

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-89100-455-X

開発をやっていれば知らない人は居ないと思われるSteve McConnel大先生の本が第2版になって帰ってきました。購読対象者は全ての職業プログラマです。管理者にはこちら強くお勧めします。

第1版が歴史的名著であることは間違いないですが、第2版の評価が4つ星になってしまったのは、内容がその分野の有名人の影響を受けすぎた事と、時代に流されすぎた記述が多いと思ったからです。いつの時代も変わらぬ価値のある内容のみで構成して欲しかったです。

続きを読む "CODE COMPLETE 第2版(上)"

03:17 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年2月 5日 (日)

C++ FAQ

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-89471-194-X

C++において良く寄せられる質問をプロフェッショナルが答えるという価値ある一冊です。購読対象者はC++を初めて1年以上の職業プログラマです。

続きを読む "C++ FAQ"

04:06 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年2月 2日 (木)

標準C++:STLの基礎知識

【 評価    】★★★☆☆

【 難易度 】★★☆☆☆

【 ISBN    】4-7561-3804-7

豊富なソースコードからSTLの使い方を学べる貴重な本です。購読対象者はC++の入門書を理解した上で、STLを使いこなせていない人です。C++を学びたての頃に買って難しいと感じさせない本でした。

C言語では文字列をchar型の配列として使っています。しかし、char型の配列は固定長であり、拡張が困難でした。同様に何か構造体の配列を作成、その後になって要素を追加したりソートするは困難です。

続きを読む "標準C++:STLの基礎知識"

11:27 午後 技術書レビュー | | コメント (4) | トラックバック (0)

2006年1月16日 (月)

Efficient C++

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-89471-245-8

C++の高速化全般について良く纏まった本だと思います。購読対象者はC++を1年以上利用した人です。CよりC++のが速くなるというキャッチコピーが目を引きました。

続きを読む "Efficient C++"

10:22 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年1月10日 (火)

Exceptional C++

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★★★

【 ISBN    】4-89471-270-9

C++の落とし穴を問題にして、解説しながら理解を深めていくことが出来る本です。購読対象者は中級以上のC++プログラマです。

続きを読む "Exceptional C++"

11:07 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2006年1月 5日 (木)

明解C言語

【 評価    】★★☆☆☆

【 難易度 】★☆☆☆☆

【 ISBN    】4-7973-2792-8

なぜか評価の高いC言語の入門書です。実はパソコン歴1年の時に薦められて買って失敗した本でした。

続きを読む "明解C言語"

02:40 午前 技術書レビュー | | コメント (2) | トラックバック (0)

2006年1月 4日 (水)

C++ Primer

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★☆☆☆

【 ISBN    】4-7561-4006-8

人を選ぶ入門書だと思います。著者のLippmanはC++標準化大きく貢献し、MicrosoftのVisual C++チームで働いているように、スキルには問題ないです。ただ、対話形式で基礎から説明していくため、やたらと分厚い事仕上がりになっています同氏が書いた「Essential C++」という薄めの本もあります。そちらの評価もこれとほぼ同様になります。

続きを読む "C++ Primer"

01:33 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2005年12月18日 (日)

Win32/C++ マルチスレッドプログラミング詳説

【 評価    】★★★☆☆

【 難易度 】★★★☆☆

【 ISBN    】4-900900-69-9

経験を積んだプログラマであればあるほど、マルチスレッドプログラミングの怖さを知っていると思います。少しでも理解の助けとなれば、という期待の元に最近読んだ本です。読んでみて分かったのは、本書の購読対象はこれからWindowsのC++でマルチスレッドプログラミングを始めようとしている人です。

続きを読む "Win32/C++ マルチスレッドプログラミング詳説"

01:59 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2005年12月13日 (火)

インサイドWindows 第4版 上・下

【 評価    】★★★★★ Amazonレビュー

【 難易度 】★★★★★

【 ISBN    】4-89100-473-8, 4-89100-474-6

Microsoft MVPの中でも特に有名な「Devid Solomon」が書いたWindowsの内部技術を徹底的に解説する本です。購読対象者は「Windowsで人に負けたくない技術者」です。それだけに難易度は高いですが、Microsoftの新人教育に使われるなど、Windowsを専門とする技術者のバイブルになっています。

この本を読むのにプログラマである必要はありません。ソースコードは一切無く、この本に従ってツールを使いこなしていくうちに内部技術が理解していけるのです。

具体的には以下の事が全てつまっています。

  • システム分析(リソースキット・カーネルプロファイラ・システムカウンタ)
  • プロセス、スレッド、ジョブの内部構造
  • メモリ管理(ページファイル・WOW64拡張等)
  • セキュリティ(DACL・SACL・偽装・特権)
  • ファイルシステム(NTFS・キャッシュ)
  • フィルタドライバ(ネットワークプロトコル・ファイルシステム等)
  • クラッシュダンプ(ブルースクリーン)解析

まだまだ書ききれないくらいですが・・・。

あなたはこれらを人に説明できますか?

半分も説明できない人は、まともなシステムは提案・構築できていないと断言します。そのシステムはWindowsである必要性すらないでしょう。

優秀なアーキテクトは、提案内容に対し、手段を複数思いついた結果、最適なものを顧客に説明出来ます。優秀なSEはWindowsのアプリケーションに障害が起こったときに適切な分析方法と、人が知らないようなツールを用いて解決していきます。優秀なプログラマの開発するアプリケーションは、高速でかつ安全であり、それはしっかりした内部技術に対する理解の元に成り立ちます。

ちなみに、私はWindowsプログラマなわけですが、「インサイドWindows」と「Advanced Windows」だけは絶対買えと、言います。後は好みで本を選べば良いと思います。

生半可な知識では読みこなせないのは私が重々理解しています。学習途上の身でありながら言います。

本物のWindows技術者になるには避けられない本である。

それが私のこの本に対する評価です。

11:56 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2005年12月10日 (土)

C++ デバック技術 - Visual C++プログラマのためのトラブルシューティング

【 評価    】★★★☆☆

【 難易度 】★★☆☆☆

【 ISBN    】4-7741-1125-2

私はデバックマニアなので、デバックと名が付く本はみんな買ってしまいます。本書の購読対象はVisual C++でデバッカの使い方が分からない人です。挿絵もおおく、読みやすいとは思います。ただし、Visual C++のバージョンが6.0であることに注意してください。

続きを読む "C++ デバック技術 - Visual C++プログラマのためのトラブルシューティング"

02:05 午後 技術書レビュー | | コメント (0) | トラックバック (0)

Writing Secure Code第2版 上・下

【 評価    】★★★★☆ Amazonレビュー

【 難易度 】★★★★☆

【 ISBN    】4-89100-446-0, 4-89100-447-9

Windowsのセキュリティに特化した本で、本書を読む前に多少の知識と経験が必要になります。自然と購読対象は「セキュリティプログラマを目指す中級者」です。初級者はIPAのホームページでも読んだ方が参考になるでしょう。

続きを読む "Writing Secure Code第2版 上・下"

01:15 午後 技術書レビュー | | コメント (0) | トラックバック (0)

C言語ポインタ 完全制覇

【 評価    】★★☆☆☆

【 難易度 】★★★☆☆

【 ISBN    】4-7741-1142-2

ポインタというものを殆ど理解した頃に何か得ることはないかと思って買った本です。購読対象はポインタが何となく分かる人です。分からない人を対象にしているとしていますが、それにしては内容がマニアックすぎます。

続きを読む "C言語ポインタ 完全制覇"

03:00 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2005年12月 6日 (火)

標準C#.NETプログラミング1 C#言語構文編

【 評価    】★★☆☆☆

【 難易度 】★★☆☆☆

【 ISBN    】4-7981-0111-7

購読対象はC#を始めたばかりの人というより、プログラミング言語初心者な気がします。本書の殆どがソースコードで埋まっております。そのため、真似をすればとりあえず動く物が作れます。

続きを読む "標準C#.NETプログラミング1 C#言語構文編"

01:51 午前 技術書レビュー | | コメント (0) | トラックバック (0)

プログラミングMicrosoft .NET Framework

【 評価    】★★★★★ Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-89100-3030

著者が「Jeffrey Richter」であり、現状、.NET Framework関連で私が推薦できる唯一の本です。しかし、購読対象者は.NETの要素技術を知りたい人です。本の名前によるイメージとは異なり、この本をみてもプログラミングが出来るようになるわけではありません。

続きを読む "プログラミングMicrosoft .NET Framework"

01:34 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2005年11月23日 (水)

Advanced Windows 改訂第4版

【 評価    】★★★★★ Amazonレビュー

【 難易度 】★★★★☆

【 ISBN    】4-7561-3805-5

この本を知らない全てのWindowsプログラマへ。すぐ入手してください。絶対に後悔はさせません。基礎をマスターと書かれているのに難易度は高め、おまけにこの値段ですが、この本なしに本当のWindowsプログラミングを理解するのは不可能と言い切ります(私のバイブルです)。

Windowsプログラマの最初の壁、ハンドルとは何か?に始まり、プロセスとスレッドの基礎から実戦までの知識、DLLの解説は全て無駄にならない事です。全体としてNTのシステム系プログラミングに内容が偏っていますが、Windows 95系列を今後意識していく必要性は少なくなっていくし問題はありません。

この本を理解した時、Windowsのソフトウェア開発において人に負けることはそうはないでしょう。学んだ基礎知識をもって、「COM+」と「.NET Framework」という実装を理解すれば良いだけです。

初級を脱したWindowsプログラマ全員が持っていて欲しい本です。

01:50 午後 技術書レビュー | | コメント (2) | トラックバック (0)

C#によるプログラミングWindows(上)(下)

【 評価    】★★★☆☆

【 難易度 】★★☆☆☆

【 ISBN    】4-89100-292-1, 4-89100-293-X

ペゾルド氏の「プログラミング Windows」に一定の高い評価を持つ人間としてこれは押さえておかねばと思い購入しました。読んでみて分かったのですが、対象となる読者は「Windowsプログラマ初級者」です。

続きを読む "C#によるプログラミングWindows(上)(下)"

01:34 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2005年11月14日 (月)

WRITING SOLID CODE

【 評価    】★★★★☆

【 難易度 】★★☆☆☆

【 ISBN    】4-7561-0364-2

C言語を使用する人を対象とした高品質プログラムを書くための本です。書いてあることは難しくないですが、重要な事ばかりです。その反面、プログラミング中級以上の人には当たり前に感じる事ばかりかもしれません。

続きを読む "WRITING SOLID CODE"

10:19 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2005年11月13日 (日)

Essential .NET

【 評価    】★★★☆☆

【 難易度 】★★★★☆

【 ISBN    】4-89100-368-5

DonBoxが書いた「.NET Framework 1.0」に対する技術調査書です。読んでも「.NET Framework」を利用したプログラミングは出来ませんが、出来る人が知識を深めることが出来ます。

ソースコードは「C#」と「VB.NET」で書かれていますが、全く読めなくても問題ないです。「.NET」のコア技術を一通り細かく説明しており、アプリケーションドメイン(AppDomain)やデリゲートについては特に参考になりました。その他では「アウトサイドCLR」の章が現状の.NET Frameworkの内部を理解する助けになりました。このあたりは2.0でも変わらない部分であると予想しています。

全体的に「Windowsプログラミング」に疎い方にはまったくオススメできない本であり、かなり難解な「.NET Framework」の本であることは間違いないです。

普通の本にあきた方にオススメです。

12:13 午後 技術書レビュー | | コメント (0) | トラックバック (0)

2005年11月12日 (土)

ラピッドデベロップメント

【 評価    】★★★★★Amazonレビュー

【 難易度 】★★★☆☆

【 ISBN    】4-75610-803-2

アメリカのソフトウェア工学第一人者であるSteve McConnell大先生の本です。開発者というより、開発者を管理するマネージャクラス向けの本です。

工程管理や開発手法モデルなど手法によるものから、開発者の心理などの人間関係までを網羅、事例から学んだベストプラクティスを紹介していくその内容は、ただただ感動するばかりでした。

非常に豊富な統計データを元にしているので、大きく間違っている内容は殆どないです。コードコンプリートを感激しながら読んだことのある方も、是非よんでみてください。

会社の上司がこの内容を20%でも実行できる人であることを願いつつ。

05:02 午後 技術書レビュー | | コメント (0) | トラックバック (0)

C++ パフォーマンス戦略

【 評価    】★★★☆☆

【 難易度 】★★★☆☆

【 ISBN    】4-89471-355-1

C/C++の最適化に的を絞った本は多々ありますが、理論だけではなく実測を元に分析しています。例を挙げるとインラインアセンブラを利用してみる、ビット演算に代えてみる、if...elseとswitch、iostreamとcstdioを比較検討などを行います。

しかし、実際にはswitchはジャンプテーブルが使われるから早くなるという話だけを知っていればいい(※1)ですし、iostreamとcstudioの比較に至っては安全性が同じで無い事から比較する表を作る事自体オカシイ。その他、コンパイラ依存だろ、これは?と思われる話も多いです。

実測値に基づいた本としては「Efficient C++(※2)」より劣りますが、その分最適化の初心者に対して読みやすい本だと思います。

買ってまで読む価値があるかどうかは、各々の判断に任せます。

※1 連続するif...else文をちゃんとジャンプテーブルに変換するコンパイラもあるはずです。

※2 "C++ In Depth"シリーズの一冊です(ISBN 4-89471-245-8)。RVO、仮想関数、インライン、STLと一通り網羅した上で実測値に基づいた考察を行っています。私的には結構オススメですが、安全なコードを書けるようになってから読むべきだと思います。

11:26 午前 技術書レビュー | | コメント (0) | トラックバック (0)

2005年11月10日 (木)

.NET&Windowsプログラマのためのデバックテクニック徹底解説

【 評価    】★★★★★Amazonレビュー

【 難易度 】★★★★☆

【 ISBN    】4-89100-352-9

MSDN Magazineで連載のBugSlayerを元にした本です。日本で出ているデバックの本は殆ど目を通した位、マニアな私ですが、この本だけは別格と思っています。

彼のコードはデバッカが要らない為のコーディングに重きを置く防御的プログラミングを採用しています。カスタマイズされたASSERT文はその極みとも言えるでしょう。

自作のデバッカまで紹介されており、そのソースコードが公開されているのも必見です。

本書で使用される用語とその機能はVisual C++中心ですが、理解すれば「gdb」でも「windbg」でも「OllyDbg」でも応用が利く、という点で本質をついているといえます。

私が技術書を一冊だけ無人島にもっていけるとしたら、この本を選びます。

10:55 午後 技術書レビュー | | コメント (0) | トラックバック (0)

Visual C++ .NET 実践講座 vol.1 基礎編

【 評価    】★☆☆☆☆

【 難易度 】★★☆☆☆

【 ISBN    】4-89100-283-2

3年前ほどに買ったのですが、偉く後悔した本です。現時点でも「C++」の.NET拡張ともいえる「Managed C++」の本は多くありません。「MC++」を勉強したてだったので、何かの参考になればと中身を見ずに購入。

まず、狙っている購読者層が分かりません。初心者向けの本と思いきや、CやC++を理解している人間には馬鹿らしく、何も知らない人には難しすぎます。

加えて中身の無い「授業的なサンプル」と「マウスやキーボード操作を含めて紙面を稼ぐ(softbank形式)」あたりが泣けてきます。技術的に難しい所は適度に誤魔化し、どうでも良いところだけ細かい。

コードを真似していたら動いた、こんな感じで喜べる人にはお勧めできない事もないかもしれません。

10:41 午後 技術書レビュー | | コメント (0) | トラックバック (0)

C++ Coding Standards

【 評価    】★★★★★Amazonレビュー

【 難易度 】★★★★☆

【 ISBN    】4-89471-686-0

C++をそろそろ極めたかなと思っている人にお勧めです。101の原則ルールを元に、例外を追加した事で極めて実践的なコードが書けます。

個人的に一押しなルールは以下の3つ。

■実行時エラーよりもコンパイル時エラーとリンク時エラーを歓迎しよう

■基本クラスのデストラクタはpublic仮想かprotected非仮想にしよう

■デストラクタ、リソース解放、およびswapは決して失敗させない

swapを何故失敗させないかは、過去の著書である「Exceptional C++」で紹介されている「swapイディオム」を利用するためです。何ソレ?とおもった方はその部分だけでも読んでみてください。

ルールを読み返していくうちに、極めたと思ったC++が、自分の勘違いであることが確認されてしまう悲しい本でもあります・・・。

10:25 午後 技術書レビュー | | コメント (0) | トラックバック (0)