Winnyの技術という本を読みました。
内容は、P2P型のファイル共有ソフトWinnyの動作と構造を解説したものです。Winnyの仕様書と言っても良いでしょう。
本書は、設計を担当するソフトウェア開発者にお勧めの一冊です。
P2Pのことをほとんど知らない私でも、Winnyの動作と構造が良く分かりました。仕様書とはこうあるべきですね。仕様書を分かり易く書くにはどうすれば良いか、参考になる本だと思います。
また、本書で解説されているWinnyの仕様は、とても優れたものだと思います。アイデアが優れているのはもちろんですが、アイデアだけでなく、「多数の機能が、少数の中核機能のバリエーションで実現できている」という点が優れていると思います。これができれば、共通部分が多くなって実装もテストも楽になります。
例えば、Winnyは、ファイルの情報である「キー」をWinnyネットワークに広げていく「キー拡散」機能と、Winnyネットワークのどこかにあるキーを検索する「キー検索」という機能があります。だいぶ違う機能のように見えますが、内部の仕組みはほとんど同じです。
他にも、ファイルのアップロードする機能と、ファイル転送を中継する機能がほとんど同じ仕組みで実現されていたりと、実に共通部分が多く、上手く設計できていると思いました。
本書は、Winnyの優れた仕様を分かり易く解説していると思います。優れた設計のやり方に悩んでいる方、分かり易い仕様の書き方に悩んでいる方にはお勧めです。
投稿者 MASATO : 2005年12月24日 02:52 | トラックバック