Méthode "grpc avec mustEmbedUnimplemented" : Un bond en avant dans la compatibilité ascendante*
L'introduction de mustEmbedUnimplemented* ** dans le framework gRPC-go a suscité des discussions, soulevant des questions sur son objectif et les problèmes qu'elle résout. Entrons dans les détails pour comprendre sa signification.
Avant ce changement, les implémentations de serveur enregistrées auprès de gRPC pouvaient souffrir d'implémentations de méthodes manquantes, détectées uniquement au moment de la compilation. La méthode mustEmbedUnimplemented*** applique la compatibilité ascendante, obligeant les implémentations de serveur à intégrer Unimplemented***ServiceServer.
Ce changement crucial offre plusieurs avantages :
La désactivation de la compatibilité ascendante reste possible en intégrant Unsafe***ServiceServer à la place. Cependant, cette pratique est déconseillée car elle compromet la compatibilité ascendante et peut conduire à des implémentations de méthodes manquantes non détectées en production.
La génération de code non compatible est également possible en définissant l'option require_unimplemented_servers dans protoc-gen- grpc-aller à false. Néanmoins, cette approche est fortement déconseillée en raison d'une stabilité compromise et d'une prise en charge réduite des outils.
En adoptant la méthode mustEmbedUnimplemented*** et ses avantages en matière de compatibilité ascendante, les développeurs peuvent garantir la stabilité, la fiabilité et la maintenabilité de leur Applications basées sur gRPC.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!