API にはユーザーが存在するため、あらゆる決定を行う際には、初心者であろうと経験豊富な開発者であろうと、常にユーザーのことを念頭に置いてください。 API にはユーザーが存在するため、ユーザー エクスペリエンスも関係します。あらゆる決定を下す際にはユーザーを考慮してください。ユーザーが初心者であろうと経験豊富な開発者であろうと、ユーザーの視点から問題を考えてください。
API の使用中にユーザーに課される認知的負荷を最小限に抑えるよう常に努め、自動化できるものは自動化し、ユーザーが必要とするアクションと選択肢を最小限に抑え、重要でないオプションを公開せず、シンプルで一貫したワークフローを設計します。シンプルで一貫したメンタルモデルを反映しています。 製品 API を使用する際のユーザーの認知的負荷を最小限に抑えます。自動化できるステップはすべて自動化し、ユーザーが行う必要のある操作と選択を最小限に抑える、重要でないオプションは表示せず、シンプルで一貫したメンタル モデルを反映したシンプルで一貫したワークフローを設計します。
ドメインの専門家や実践者のメンタル モデルと一致する API を探すようにしてください。ドメインの経験はあっても、API の経験がない人でも、ほとんどの場合、いくつかのコードを見るだけで、最小限のドキュメントを使用して API を直感的に理解できるはずです。例を参照し、利用可能なオブジェクトとその署名を確認します。ドメインの専門家や実践者のメンタルモデルに一致する API を作成するよう努めてください。ドメインの経験はあるが、API を使用した経験がない人は、通常、いくつかのコード例を見て、使用可能なオブジェクトとその特性を確認することで、最小限のドキュメントで API を直感的に理解できるはずです。
引数の意味は、基礎となる実装に関するコンテキストがなくても理解できる必要があります。ユーザーが指定する必要がある引数は、コード内の実装の詳細ではなく、問題に関してユーザーが持つメンタル モデルに関連している必要があります。すべてはソフトウェアが解決する問題についてであり、ソフトウェアがバックグラウンドでどのように動作するかについてではありません。 パラメーターの意味は、基礎となる実装に関する背景情報がなくても簡単に理解できる必要があります。ユーザーが指定する必要があるパラメーターは、コード内の実装の詳細ではなく、ユーザーの問題モデルに関連する必要があります。 API の中核は、API が解決する問題にあり、バックグラウンドでのソフトウェアのワークフローとは何の関係もありません。
最も強力なメンタル モデルはモジュール型で階層型です。大まかにはシンプルですが、詳細に進む必要があるため正確です。同様に、優れた API はモジュール型で階層型であり、アプローチが簡単でありながら表現力が豊かです。より少ないオブジェクトに複雑な署名を持つか、より単純な署名を持つより多くのオブジェクトを持つかのどちらかを選択すると、優れた API には適度な数のオブジェクトと適度に単純な署名が含まれます。 最も強力なモデルはモジュール式で階層的であり、高レベルではシンプルであり、細部では正確です。同様に、優れた API は、モジュール化され、階層化されており、使いやすく、表現力豊かである必要があります。。優れた API には、適度な数のオブジェクトとシンプルな機能が備わっています。
API は必然的に実装の選択、特にデータ構造の選択を反映します。直感的な API を実現するには、対象のドメインに自然に適合する、つまりドメイン専門家のメンタル モデルに一致するデータ構造を選択する必要があります。 API は、選択した実装、特に選択したデータ構造を必然的に反映します。直感的な API を実装するには、関連するドメインに適した、つまりドメイン専門家のモデルに一致するデータ構造を選択する必要があります。
アトミックな機能のセットではなく、エンドツーエンドのワークフローを意図的に設計します。ほとんどの開発者は、「どのような機能を使用できるようにするか?」と尋ねて API 設計に取り組みます。代わりに、「このツールの使用例は何ですか?」と尋ねます。ユースケースごとに、ユーザーアクションの最適なシーケンスは何ですか? このワークフローをサポートできる最も簡単な API は何ですか? API のアトミック オプションは、高レベルのワークフローで生じる明確なニーズに応える必要があります。誰かがそれを必要とするかもしれない。」アトミックな機能のセットではなく、エンドツーエンドのワークフローを意図的に設計してください。ほとんどの開発者は、API を設計するときに、「どのような機能を提供する必要があるか?」と尋ねます。これらの機能の構成オプションを提供しましょう。実際、開発者にとっての正しい質問は次のとおりです。「このツールの使用シナリオは何ですか?」 使用シナリオごとに、ユーザーにとって最適な操作シーケンスは何ですか? このワークフローをサポートできる最も単純な API は何ですか?
エラー メッセージ、および一般に API との対話中にユーザーに提供されるフィードバックは、API のエラー メッセージを意図的に設計するために不可欠です。API との対話中にユーザーに提供されるエラー報告とフィードバックは API の一部です。インタラクティブ性とフィードバックはユーザー エクスペリエンスに不可欠な部分です。 API のエラー メッセージは慎重に設計する必要があります。
ドキュメントは API のユーザー エクスペリエンスの中心です。これはアドオンではありません。より多くの機能に投資するよりも、高品質のドキュメントに投資する方が大きな成果が得られます。 ドキュメントは API ユーザー エクスペリエンスの鍵です。追加パーツではありません。質の高い文書を書くことに力を入れ、これにより、より多くの機能を開発するよりも大きな利益が得られます。
説明するのではなく、説明する: ドキュメントでは、ソフトウェアの動作方法について説明するのではなく、エンドツーエンドのワークフローのコード例を示し、すべての一般的なユースケースと主要な機能のコード例を示す必要があります。 API の。 ユーザーに説明することは、直接示すことよりも悪いです。ドキュメントでは、ソフトウェアがどのように機能するかについて説明するのではなく、ソフトウェアの使用方法を直接示す必要があります。エンドツーエンドのワークフローを示すコード例。API の一般的なユースケースと主要な機能ごとにコード例を示します。