[Senna-dev 847] Re: %append_output

Back to archive index

Kouhei Sutou kou****@cozmi*****
2008年 5月 14日 (水) 10:05:24 JST


須藤です。

2008/05/14 1:58  <morit****@razil*****>:

> 多分、1〜2週間以内ぐらいに、新しいsennaのAPIを提供したいと思っています。

個人的な好みなのですが、今のAPIに少し思うところがあります。

Sennaにはbasic APIとadvanced APIがあって、basic APIではadvanced APIの一部
を関数名に使っています。(sen_index_update() -> sen_index_upd())
これは、より多く使う方はタイプ数が少ない方が使いやすい、ということからだと
思いますが、upd/ind/selはぱっと見でなんなのかがわからないことが多いです。
(indはいつもインドと思ってしまう。)

現在のようにadvanced APIに普通の名前を使って、basic APIに短い名前を使うの
ではなくて、basic APIの方は普通の名前にしてadvanced APIは長い名前にすると
いうのはいかがでしょうか?(sen_index_update()/sen_index_update_full())

こうすれば他のbasic APIとも統一されて(sen_index_create()などは名前が省略
されていない)自然になる気がします。

まぁ、個人的な好みです。

> そのAPIでは言語バインディングからsennaの機能をもっと本格的に使えるように
> なると見込んでいるので、使いやすさも性能も追求したいと思っています。

楽しみにしています。

> エラー処理の点、なるほどと思いました。すごく参考になります。

それはよかったです。
%append_outputが一段落したらパッチを送ります。ただ、今のAPIが壊れてしまう
んですよね。(今までsen_rcを返していたところで常にSenna::RC_SUCCESSを返
すようにしたままにすればまだマシですが、それでも今まで例外があがらなかった
ところであがるので壊れるといえば壊れる。)

> もしも「このAPI(バインディング)が出来が良い」というような例がありましたら、
> 紹介していただけると嬉しいです。
> (SWIGを使っているものでも使ってないものでも良いです。)

私が今まで使って、ソースも見た少ないサンプルの中だとrcairoが私好みです。

SWIGを使って頑張っているのだとSubversionのRubyバインディングですが、APIは
そんなによくないです。(もう少し頑張らないとダメダメ)

SQLiteのRubyバインディングもSWIGを使っていますが、これもSWIGで生成した
APIをRubyでラップしていますね。ただ、直接使ったことはないのでAPIが良い悪い
はわからないです。でも、頑張っている感じはします。




Senna-dev メーリングリストの案内
Back to archive index