質問

API を設計する際に遵守できるガイドラインとベスト プラクティスにはどのようなものがありますか?最低限、API は使いやすく、柔軟である必要があることを私は知っています。残念ながら、これらの用語は主観的なものになる可能性があるため、優れた API 設計に関する具体的なガイドラインを探していました。

役に立ちましたか?

解決

私が見つかりました。価値の時計であることを、次の ジョシュア・ブロック - どのようにするにはデザインA良いのAPIと、なぜそれが事項する

しかし、まだあなたが平行線を描くことができますが、

の例はJavaです。以来、あなたは、特定の技術については言及しませんでした。私はあなたがニッチのソリューションを望んでいないと仮定します。

他のヒント

大量の API を使用する必要がある人として...

API は一貫した方法で作成してください。

  1. API 自体内での一貫した名前付け。動詞、名詞、キーワードをまったく同じスタイルで使用します。

  2. 使用されるターゲット環境と一致します。.NET の場合は、Microsoft の命名ガイドラインを参照してください。

  3. 一貫したコンセプト。工場パターン?ビルダーパターン?静的メソッド?インターフェース?どれか 1 つを選んで、それを使い続けてください。本当に。などというものはありません。 小さい ルールの例外。それは大きな痛みとして突き出ます。例外が 1 つ以上ありますか?API はますますアマチュアになっています。

もう一つは次のとおりです。特異性。

  1. 実装できる基本クラスは、提供することを選択した場合、実装する関数が少なく、明確に定義されている必要があります。「GetData()」は「object[]」を返しますが、それを実装し、なぜそれを string[] にキャストしなければならないのかを理解してから、なぜそれが 20 回呼び出されるのかをデバッグすることを期待しないでください。DataPoint[] GetChartData()、string[] GetLabelData() などを使用する方がはるかに優れています。そしてどれを実装すべきかを選択させてください。

  2. 名前についてはあまり長くしないでください。PostRenderColorWheelModifyHSVBaseHandler。多くの場合、非常に特殊なものをより一般的な名前とパラメーターにリファクタリングできます。

  3. 文字列パラメータは使用できません。列挙型を使用します。のようなハンドラーを使用したくない

    PostRenderHandler("ColorWheel", "HSV", someDelegate);

むしろ調査できる列挙型が欲しいです。

PostRenderHandler(ModuleType.ColorWheel, Options.ColorWheelHSV, someDelegate);

いや、続けてもいいよ...Josh Bloch 氏のパワー - よく書かれた API は本当に素晴らしいものになる可能性があります...悪いものは本当に痛いかもしれません。

ジョシュア・ブロックからこのトピックに関する良いプレゼンテーションのがあります。プレゼンテーションは、Javaを使用していますが、アイデアは、言語に依存しません。 別のソース(PDF)簡単な概要について。

これは、Microsoftからのリンクです: http://msdn.microsoft.com/en-us/library/ms229042.aspx

この本もあります。 Frameworkの設計ガイドライン:再利用可能な.NETライブラリのための規則、慣用句、およびパターン

あなたが提供する情報の量では、この量のスペースではあなたの質問に答えることはできないと思います。Google で「API デザイン」と入力していくつかのリンクを貼り付けました。最初のページには、かなり良さそうなリンクが表示されます。

http://web.archive.org/web/20151229055009/http://lcsd05.cs.tamu.edu/slides/keynote.pdf

http://www.artima.com/weblogs/viewpost.jsp?thread=142428

http://web.archive.org/web/20090520234149/http://chaos.troll.no/~shausman/api-design/api-design.pdf

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top