ライブラリやAPIをうまく設計する方法についていくつか読んでいて、GoogleTechTalksでのJoshuaBlochのすばらしい講演に出くわしました。今、私はプロのAPI開発者にはほど遠いですが、同じものの大幅に縮小されたバージョンであるにもかかわらず、一連のクラス/関数のプログラミングは似ていると思います-アクションの明確な分離、使いやすさと楽しい使用、クリーンなコードの奨励、など。
私は広く使用されているオープンソースのJavaコードをいくつか調べていて、このアイデアを思いつきました(新しいことは何もありませんが、明快にそれを提示するだけです...)
擬似コード(またはBASICの方言) の例を見てみましょう。
1. new label
2. set name 'hello world'
3. set color 'blue'
4. show 'topmost'
5. on click hide
Javaコードに触発されて、次のようなことができるようにしたいと思います。
1. Label l = new Label()
2. .setName('Hello World')
3. .setColor('blue')
4. .show(zindex.top);
5. l.onClick = l.hide() ;
私の質問はこれです:
他の誰かがこのような擬似コードから始まるAPIを設計しますか?
小さなものにいいアイデアですか?それぞれがおそらく10個のメソッドを持つ最大10個のクラスを言います。各メソッドは、その中に5〜6行以内のコードを記述します。これは明らかに、設計するクラスのサイズを示すための大まかな数値のセットです。完全なAPIに近いものではなく、趣味のプロジェクトだけではありません。小さなことを実行するが、それをうまく実行するプロフェッショナルパッケージです。
このアプローチに重大な欠点を見つけた人はいますか?
本当のメリットの1つは、最初にユースケースを書き留める必要があることだと思います。
もう1つは、名詞と動詞が単純なままであり、最終製品がMultiPhraseAbstractParadigmDesignPatternImplementor症候群を回避できるようにすることです:-D