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が良い悪い はわからないです。でも、頑張っている感じはします。