How to Design Easy-to-Use API (PDF: p27 〜 p75)

コメントと「DRUMのポリシー」に返信。トラックバックは撃たないでおきます。「気づけ〜」と念じながらリンク。


「わかりやすさ」はちょっと疑問だなぁ。なんか Ruby のライブラリではあまり見慣れない形だったので私は戸惑いました。

「記述の少なさ」は確かに私の例より少ないですね。記述量なら私の書いた "require 'drum'" の部分も注目して欲しいです。タイトルの PDF 参照。

可読性の話をするなら、数十行ある時点で「長すぎるメソッド」という「不吉な匂い」に当たるんじゃ……というのは揚げ足取りですw、すいません。

ActionScript の with、Ruby のクロージャが嫌ってヤツは、良く取り沙汰される「暗黙的なレキシカルスコープ」ってヤツですかね?


言語特有の機能は避けたいようですが、現在用意されてる API の set_* とか get_* とかは、私の目から見ると Java 流に見えます。set_client がグローバルに効くところは、また別の何かだけど。C っぽいかな?


うーん、言語特有の機能を使って(簡単に|美しく|スマートに)書けるならば、そういう API を作った方がユーザーは嬉しいと思うし、より使われると思うんですよね。そして、逆もまたしかり、だと思います。特にユーザーが言語に馴染んでれば☆馴染んでるほど、振れ幅は大きいのではないかと。API はその言語の特長(not 特徴)をフルに活かすべき、だと思います。「郷に入っては郷に従え」。あ、上記エントリの私の書き方が Ruby Way かどうかは棚に上げておいて下さい。


私は Ruby のエキスパートじゃないし、DRUM ヲチャに過ぎないので、こんなこと書くのは非常に心苦しいです。期待してますので、どうか、やる気無くさないで下さい m(_ _)m。DRUM だったら GUI にも手を出してみようかな?って気になるのですよ。それだけに惜しいというかなんというか。ラッパー書いたら本体に取り込んでもらえますかね?


とりあえず、これから Ruby のライブラリを設計する人にはタイトルの PDF を読んで欲しい〜。