2011-08-03 15 views
6

「DoSomething()」のAPIの例は、このメソッドには、非同期と同期の2つのバージョンがあります。私たちはAPIユーザーに非同期のものを使用するよう促すべきです。そうすれば、もっと複雑で明示的な名前になるはずです。 問題は、このペアの名前をどのようにするかです。これまでに我々は思い付いてきました:非同期メソッドの名前を付ける最善の方法

  • DoSomethingAndWaitForResult()/ doSomethingの()
  • のdoSomething()/ DoSomethingAsync()
  • DoSomethingSync()/ doSomethingの()
  • のdoSomething()/ RequestSomething()

上記のスキームはどれも最適ではないようです。どんな提案?

更新。 BTWはあなたに合っている場合、上記のいずれかを回答として投稿するのをためらっています。

答えて

3

これらの名前を同じにして、それらを区別するために異なるシグネチャ(コールバック関数を使用するもの、含まないもの)はどうですか?

そうでない場合は、アドビシステムズ社が良い十分過ぎるようだActionScriptに "非同期" サフィックス、使用しています:BeginDoSomething/doSomethingの:.NET Frameworkのhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html

+1

良いものですが、戻り値の型によってのみ異なります(タスク対TResult)、自分の言語でのメソッドの署名には影響しません。 –

+0

PHPでは良い考えではありません:/ –

+0

その場合は、ASyncの命名規則に従います。利点は、自動補完を使用するとすぐに利用可能な2つの方法があることがわかります。 –

1

を、非同期メソッドは、 "開始" で始まります。

+3

私たちの非同期メソッドは、クライアントコードが待つことができるタスクを返すべきですが、 'Begin'で始まるメソッドは' End'メソッドを持つべきです。 –

6

あなたはシンクの上に非同期のものを使用するようにユーザーを奨励したい場合は、私はこの1のために行くだろう:DoSomethingSync()/DoSomething()

しかし、聞いていない場合は、すべてのメソッドが非同期であることをはっきりとユーザーに伝えますさもないと。

例:Node.jsのは、この表記を使用しています:fschmodSync

fschmodしかし、最も重要なのは、あなたが選んだ 1に固執するです。

関連する問題