ライブラリを複数のサブライブラリに分ける際に大抵以下の2種類のパターンで迷う:
- 機能ごとに分ける(例:型、手続き、etc.)
- オブジェクト指向的に分ける
今作っているライブラリはXMLのDOMを扱うものなのだが(最終的にどこまでサポートするかは不明)、DOMには
querySelector
なる手続きがある。これはParentNode
で定義されているが、このインターフェースはDocument
、DocumentFragment
及びElement
で実装されている。CLOSを使っていないので、これらは別々に実装される必要があって、どう実装するかは考えてないんだけど、3つの似たりよったりな手続きが実装されることになると思われる。そうすると、この手続きはどこか別の場所に分けたいのだが、ライブラリをオブジェクト指向的に分けるとこんな感じになって、循環する:Element
ライブラリ:Selector
ライブラリが必要Document
ライブラリ:Selector
ライブラリが必要DocumentFragment
ライブラリ:Selector
ライブラリが必要Selector
ライブラリ:Element
ライブラリが最低必要
Selector
ライブラリに分けたいのはこいつが別仕様だからだったりする。)こういう時は機能毎に分ければうまく行くんだけど、なんだかなぁという気がしていて、う〜ん。ライブラリの遅延ロードみたいなのを導入して循環参照を許してもいいんだけど、それもなぁ的な。Schemeのライブラリは生まれて日が浅い(と言っても既に数年経っているが)ので、こういう場合のベストプラクティス的なものはないし(Scheme的にはこういうケースでベストプラクティスが必要なのって言語仕様的にどうよってなる気もしないでもないがどうなの?)、さてどうしようかね…
No comments:
Post a Comment