Quelle serait une bonne directive de dénomination à utiliser dans le modèle de programmation asynchrone?
-
07-07-2019 - |
Question
Je suis en train de refactoriser un morceau de code pour transformer toutes les opérations de blocage en leurs équivalents asynchrones. Mon code est en C # et effectue une requête UPnP suivie d'une requête HTTP. Pour cela, j'utilise les méthodes APM de UdpClient et WebClient (BeginReceive, etc.).
Ma seule méthode est maintenant une succession de Call_1 - > Callback_1 - > Call_2 - > Callback_2 et ainsi de suite.
Quelqu'un peut-il m'indiquer des instructions sur les noms à donner aux méthodes dans cette situation, sachant que tout, à l'exception de Call_1, ne fait pas partie de l'interface de classe. Les méthodes Callback_1, Call_2, etc. ne sont en fait qu'un effet secondaire de la désynchronisation du flux de travail. Quelle nomenclature utiliseriez-vous?
En utilisant CCR, tout resterait dans une jolie méthode en utilisant le mot-clé rendement, mais malheureusement, je n’utiliserai pas CCR pour le moment.
La solution
Pour exprimer au code client l'intention de votre code, préfixez toutes les méthodes ayant un comportement asynchrone avec run
. Par exemple: runSOQuery
, runDiskCheck
et ainsi de suite.
Peut-être stupide mais encore plus clair pour le code client pourrait être fireAndForget
, mais je ne suis pas sûr d'avoir bien compris votre question ...
Il serait préférable d'exprimer la sémantique asynchrone de la méthode en renvoyant une valeur de retour spéciale , telle que java.util.concurrent.Future, dans le cas de Java ou quelque chose de "home made". , autre part. .