2011-08-03 19 views
6

Dónde se encuentra una API de, digamos, un método: "DoSomething()". Debe haber dos versiones del método: asincrónico y sincrónico. Deberíamos alentar a los usuarios de API a utilizar async uno para sincronizar uno que probablemente debería obtener un nombre más complicado y explícito. Entonces, el problema es: ¿cómo debemos nombrar este par? A la fecha hemos llegado con:La mejor manera de nombrar el método asincrónico

  • DoSomethingAndWaitForResult()/HacerAlgo()
  • HacerAlgo()/DoSomethingAsync()
  • DoSomethingSync()/HacerAlgo()
  • HacerAlgo()/RequestSomething()

Ninguno de los esquemas anteriores parece óptimo para nosotros. ¿Alguna sugerencia gente?

Actualización. BTW no dude en publicar uno de los anteriores como respuesta si le queda.

Respuesta

3

¿Qué tal nombrarlos de la misma manera y tener una firma diferente para diferenciarlos (uno con una función de devolución de llamada, otra sin)?

De lo contrario, Adobe utiliza el sufijo "asíncrono" para ActionScript, que parece lo suficientemente bueno también: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html

+1

Bueno, pero difieren solo por tipo de devolución (Tarea vs. TResult) y no afecta la firma del método en mi idioma. –

+0

No es una buena idea en PHP:/ –

+0

En ese caso, simplemente seguiría con la convención de nomenclatura ASync. La ventaja es que cuando utiliza la finalización automática, inmediatamente ve que hay dos métodos disponibles. –

1

En el marco .NET, métodos asincrónicos comienzan con "Begin": BeginDoSomething/HacerAlgo.

+3

Creo que el método que comienza con 'Begin' debe tener la contraparte' End', mientras que nuestro método async debería devolver la tarea que podría esperar el código del cliente. –

6

Si desea animar a sus usuarios a utilizar los asincrónicos sobre sincronización, entonces yo iría a éste: DoSomethingSync()/DoSomething()

Sin embargo, decirle a sus usuarios alto y claro que todos los métodos son asíncrono si no se dijo de otra manera.

Ejemplo: Node.js utiliza esta notación: fschmodSync y fschmod

Pero lo más importante es seguir con la que eligió.

Cuestiones relacionadas