0

使用しているプログラミング言語とは異なるコーディング スタイル ガイドラインを持つ API をラップする場合、言語スタイル ガイドラインに準拠するインターフェイスを作成するか、API ラッパーのユーザーに実装を公開しますか。

特定の例は、ruby および python の場合です。変数は通常、すべて小文字でアンダースコアを使用します。

my_variable = 'Hello World'

一方、Java/C# ではキャメルケースが標準です

myVariable = 'Hello World'

たとえば、Web サービスには、json で連絡先を作成するメソッドがあります。

{contact: {contactId: 1, firstName: 'John', lastName: 'Smith', emailAddress: 'john@smith.com'}}

たとえば、同じ変数名でクラスを作成しますか (キャメルの場合)

class Contact:
    contactId = 1
    firstName = 'John'
    lastName = 'Smith'
    emailAddress = 'john@smith.com'

またはメソッドで

def create_contact(contactId, firstName, lastName, emailAddress): 
    # make remote request

または、スタイルのガイドラインに従って、リクエストを行うときに変数名を隠しますか

def create_contact(contact_id, first_name, last_name, email_address):
    # convert variable names
    # make remote request 
4

3 に答える 3

2

既存の API のラッパーを作成する場合、ラッパーのコンシューマーに公開する部分は、ラッパーを記述している言語のスタイルにする必要があります。

于 2009-07-17T13:05:36.863 に答える
0

多くの場合、JSON を使用している場合、Python の dict やリストなど、JSON 構造に相当する言語を直接使用することは理にかなっています。これは常に機能するとは限りませんが、多くの場合、正しいアプローチです。

つまり、Python {'contactId': 1, 'firstName': 'Justin'} などのキャメル ケースを使用することになりますが、これらは変数ではなく単なる識別子なので、あまり心配する必要はありません。

構造を直接処理できる場合、関数とクラスの作成は非常に冗長です。

XML API は別の問題ですが、JSON のポイントは軽量であり、ネイティブ言語の構成要素にマップされることです。

于 2009-08-24T23:12:14.450 に答える
0

できるだけ早くあなたの言語のコーディング標準に戻りたいと思います。この方法では、何かが Web API から来たかどうかに関係なく、システム内のすべてのコードが同じように見えます。システム全体を移動するラクダケースのキー (あなたの場合) を持つオブジェクトをすぐに見つけることができると思います。

ただし、極端なパフォーマンス要件がない場合は、キャメルケースのキーをアンダースコア付きキーに自動変換する汎用 API Caller クラスまたはモジュールを作成することを考えることができます。もちろん、これがうまくいかない状況もありますが (APIKey と呼ばれるキーは通常 a_p_i_key になります)、これを知っている限り、API ラッパーでハードコーディングされた方法でこれらの特定のケースを修正できます。このようにして、頭痛は最小限に抑えられ、コード スタイルは一貫したままになります。

于 2009-07-17T13:07:53.247 に答える