2004年08月14日

状況の分析と、それに合わせた設計を


『珠玉のプログラミング』『珠玉のプログラミング』

税込価格: \3,570 (本体: \3,400)
出版:ピアソン・エデュケーション
サイズ:A5判 / 305p
ISBN:4-89471-236-9
発行年月:2000.10
利用対象: 一般 





ひさしぶりの書評です。

[この本の特徴]
著者が実際に起った様々なケースを基に、「こういう場合にはどうすべきか」というような話が沢山載っている。実践に基いた知識を集めた本。冒頭が「メモリが切迫した環境」や「メモリは1Mしか使っちゃいけないが、中間ファイルはいくら使ってもいい」というような条件下での設計の話が載っているためか、各所で「性能ばかりを追い求める古臭い手法ばかり」と評される事もしばしばだが、そこしか見ないのであればこの本の価値のほんの数%も見えていない。

そもそも、富豪的なコーディングが横行する世の中だが
現実的には「コンピュータの上では複数のソフトが動いている」という事実があり、そして資源は有限であるから、他の物との連携を取るあるいは他の物の補佐をするソフトウェアというのはしばしば大くの資源を使う事は許されない場合がある。そういった際の注意点や解法がこの本の冒頭で学べるだろう。この本でもご多分に漏れず「性能だけを追及する行為」は推奨されてはいない。あくまで環境に合わせて「どのようなアプローチでアルゴリズムを選ぶか」「どうチューニングしていくべきか」「問題を一早く解決するには」といった事が「全体の設計」と天秤にかけつつ解説されている。この本で紹介されているのはプログラム全体の設計というよりは、関数一つやアルゴリズム単位での設計となっている。そもそも、この本では「性能が必要な状況下でもスマートで美しく実装する」という方法を追及していて、けして可読性や実装の美しさを捨てて性能のみを追い求めるものではない。目から鱗が落ちるような内容も沢山ある。

[内容]
コードは全て仮想言語で書かれている。わりかし一般的なものだと思われるが、日本ではあまり見掛けない。ある程度、何らかの言語を経験していれば読めるレベルのもの。内容自体は「性能」に偏っている部分はあるが、実際に起った出来事をベースにしており非常に実践的な解決方法が学べる。内容は古いのは否めないが、現代の考え方を加味した上で性能と設計の美しさや可読性を両立させようという人に向いている本と言える。こういった本の殆どは読者の発想や応用力を養うと同時に最低限そういう意気込みで読んで貰う事を期待していると言える。

[感想]
仮想言語が煩わしい。CかC++、あるいはjava等であれば良かったかと思うし、いくつかの言語(特色を活かした上)での解法が載っていると良かった。逆に言えば、そういった物に依存しない事で読者の応用力や考え方、発想なんかを養おうという意図が見られて、それはそれで中々良いと思う。訳者は「これならわかるC++」の著者で、同じようにわかりやすい言葉で書かれているし、訳も上手。ある程度経験を積んだ人なら読み物としても非常に楽しめる出来である。

[読者層]
・何らかの言語の経験者、あるいは言語仕様くらいは理解できているという人
・現職のプログラマ、あるいはそれに近い人
・メモリを食い潰すような設計こそが現代の設計と考えている人
・上記のような設計以外は悪だと考えている人、あるいはそういう設計が業界の常識と思っている人
・ハードの性能に甘んじず、性能と可読性の両立を目指そうという人
・プラグインだとかモジュールといった物の設計を始めようという人
・携帯電話等の資源が限られるもののソフトの設計をしたい人
・現在作っているものの性能に明確な目標がある人
・作る上である程度の性能を保証しなければならない人
・スマートに性能アップしたいと考えているが、良い手法や実際の問題等を知りたい人
posted by bf109 at 18:29| 🌁| Comment(0) | TrackBack(0) | 本と勉強 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック