[Kazehakase-devel] RSSやLIRS の自動判別

Back to archive index

Hiroyuki Ikezoe poinc****@ikezo*****
2003年 10月 20日 (月) 18:58:06 JST


zoeです。

On Mon, 20 Oct 2003 04:02:49 +0900
Takuro Ashie <ashie****@homa*****> wrote:

> コード的には,改善の余地があると思います.
> と言ってもほとんど好みの問題だとは思いますが,もう少し将来の拡張を考慮
> した構造になっていると良いかと思います.(検出用のコードや
> kz_hoge_parse_from_stringを直接kz-meta.cに埋め込むのでは無く,関数ポイ
> ンタを通して呼ぶようにする)

そこ、確かにおまぬけだなと思ったんですが、やり方を思い付かなかったわけです
。

> 「拡張性」という点からもう一点言及しておくと,本質的にはCで書く必要性
> すらなく,本体側では一種類のフォーマットだけに対応し,残りのフォーマッ
> トに関しては,標準入出力経由なりファイル経由なりで外部スクリプトに渡し,
> そちらで本体がパースできる形式に変換して返せば良いだけの事ですよね.
> その方が文字列処理が遥かに楽になりますし.
>
> ただ,外部スクリプト(あるいは風博士に直接処理系を埋め込んでも良いので
> すが)にしてしまうと処理系の起動コストがかかって若干重くなる,実質的に
> 依存性が発生する等の問題があるので,well knownなフォーマットに関しては
> Cで対応しておくのは良い事だと思います.
> 
> その上で外部スクリプトによる拡張性も確保しておけば,ユーザーが自分自身
> で比較的楽に新たなフォーマットを追加する事もできます.

そうですね。実際Cで文字列を処理するのはめんどいです。Rubyなんかだともっと楽
なのになあと、パーサを書きながら思ってました(←実際自分でRuby使って書けるか
は別問題)。
ただ、めんどいといっても一回書いてしまえばそれっきりなのであまり問題ではな
いかなとも思ってます。そんなにいろんなフォーマットが乱立してるわけでもない
ですし。
ぼくが気になってるのはどっちかというとMVC でいうところのVの部分です。
こっちの方が各人各様な好みがあって結構めんどくさいんでないかなと。
Ruby-Gnomeとか使うと楽なんでしょうか。知らんので適当ですが。。

> ファイルのfetch部分も,同様に拡張性が確保されているとなお良いと思います.

ええ、fetch部分にどういう拡張性がいるのか理解できません(汗。 

> > 最初、LIRS対応するときは、オブジェクト思考に取り憑かれてて仮想関数だあ
> > あだこうだやってましたが、今となってはそれぞれ独立したオブジェクトであ
> > る必要がないような気がしてます。
> 
> ここで注目すべきは,KzBookmarkで全てのプロパティを単一の表現に統一し
> (これまでは,例えばKzBookmarkのlinkに当たるプロパティが,KzRSSでは
> rss_link,KzLIRS等ではantenna_uriという具合に,(UI側での扱いが)本質的
> に同一のプロパティが別々の物として扱われていた),一つのモデルですべて
> のタイプのリモートブックマークを表現できるようになった,という事だと思
> います.
> 
> であるため,KzRSSやKzLIRS等が独立のオブジェクトである必然性が無くなっ
> た,という事です(であるからこそ,当初からブックマークの抽象化にこだわっ
> ているわけですが).

まったくおっしゃるとおりです。
足永さんがKzBookmarkであの辺り一帯を統一してくれたからこそ、見えて来たわけ
です。
ただちょっと大局観がなかったというか先見の明がなかったなあと、自分に対して
思ったわけです。まあ別にコードを書き直すのは苦じゃないんで大したことはない
んですが。むしろダメだと思ったコードは完全に作り直しになったとしても書き直
すべきだと思っってます。

> ちなみに,今,私が悩んでいるのは,「KzBookmarkとKzMETAは統合すべきか?」
> という点です.当面は今のままの方が都合が良いのですが,将来的には統合し
> たほうがスマートになるかもしれません(ならないかもしれません).

ぼくも今のとこは別のままでいいと思います。なんとなく、通常のブックマークと
性質が違うように感じてますし。
今後、統合した方がよいと判断したときに統合すればいんでないでしょうか。今回
のように。

> > ただ、自動判別といってもかなりいい加減でRSSなんかは
> > if (strncmp(buf, "<?xml", 5) == 0)
> > しか見てません(汗。
> 
> もうちょっとだけ頑張ってもらえると嬉しいかも(わら
> 極端な話ですが,リモートのXBELを取って来るような機能が追加される可能性
> もあるわけで.

頑張らさせていただきます(笑。



Kazehakase-devel メーリングリストの案内
Back to archive index