zlibが非常に読みにくい
前回ではビット配列の処理をzlibを参考にしては?と言ってみた。
早速zlibをダウンロードしてdeflateを読んでみた。
...
if elseのネストが深くてすっごく読みにくい!
なんですか。これは!どこで圧縮している処理なのか分からない!!
さらに関数内に#ifdef GZIP #endifが・・・。
私はひとつの関数内にこれだけ違う処理になってしまうものは別関数にしてしまうのだが・・・。
多分、互換性を維持するためにこのようにコーディングしたのだろう。
私のライブラリはユーザーがごくごく少数化または存在しないような規模のライブラリなのでこれで仕様変更や出力結果の互換性の維持等はそれほど気にしなくていいのだが、zlibのようにメジャーになるとこうなってしまうのだろう。
互換性の維持でこの記事を思い出した。http://www.radiumsoftware.com/0508.html#050824
Windowsはアレだけひどい*1のにもかかわらず互換性の維持にこれだけがんばっているらしい。
閑話休題。
とりあえず、zlib資料
- 本家:http://www.zlib.net
- deflateアルゴリズムのRFC1951 http://www.ietf.org/rfc/rfc1951.txt
- deflateはHuffmanなの?
- JPEGについて沢山のことを書いている方のページ http://www.coara.or.jp/~tkuri/D/022.htm#D2002-12-14
それにしてもファイル入力クラスの汚さときたら。C 言語で無理やりオブジェクト指向の真似事をやっています。C++ コンパイラを使える以上,このような技は多用すべきではありません。
そうですね。dkutil_cなんて特にそうですね。orz
ちょっとこの日記に興味をもったため読み進めてみた。おぉ![汎用的な]私を惑わし深みに嵌める,非情に強く魅力的に輝く不思議な言葉。崩壊の序曲の音色のなんという美しさよ! ・・分かってるならなんとかせぇハゲ>自分
これ、超→分かるのです。もう、共感共感。このサイトで行っていることは至極私の共感を呼ぶものばかり。
http://www.coara.or.jp/~tkuri/D/031.htm#D2003-04-27
も面白いので是非参照されたし。google:イデア指向なんてのは非常に趣のある指向だ。
http://www.coara.or.jp/~tkuri/
- とっても詳しいWikipedia http://ja.wikipedia.org/wiki/Deflate Wikipedia
*1:ドライバやハードウェアの相性によるものがほとんどだそうだが・・・