Convention de dénomination des interfaces dans Go
Problème :
Les meilleures pratiques pour nommer les interfaces dans Go, en particulier ceux qui définissent une méthode unique ou un ensemble de méthodes associées.
Réponse :
-
Interfaces à méthode unique : Pour les interfaces avec une seule méthode, la convention consiste à utiliser un suffixe comme "-er" pour créer des noms d'agent. Les exemples incluent "Reader", "Writer", "Closer".
-
Interfaces à méthodes multiples : Lorsqu'une interface dispose de plusieurs méthodes, choisissez un nom descriptif qui reflète son objectif. Les exemples incluent "net.Conn", "http.ResponseWriter", "io.ReadWriter".
Explication détaillée :
Méthode unique Interfaces :
- Le suffixe "-er" permet d'établir un modèle de dénomination cohérent pour les interfaces à une méthode.
- Cette convention évite toute confusion avec des noms de fonctions qui ont des significations similaires. Par exemple, ne nommez pas une méthode d'interface "ToString" à moins qu'elle n'ait la même signature et les mêmes fonctionnalités que la méthode "String".
Interfaces à méthodes multiples :
- Lorsqu'une interface comprend plusieurs méthodes, le nom doit décrire clairement son objectif général.
- Cela garantit que les développeurs peuvent facilement comprendre les fonctionnalités de l'interface sans avoir à lire la documentation de chaque méthode.
Noms des récepteurs dans les méthodes :
- N'utilisez pas de noms de récepteurs génériques comme « ceci » ou « soi-même ».
- Utilisez plutôt des noms courts, à un ou deux caractères, qui reflètent le type de destinataire. Cela contribue à améliorer la lisibilité et la cohérence du code.
Ressources supplémentaires :
- [Go efficace : noms d'interface](https://go.dev /doc/effective_go#interface_names)
- [Types d'interface @ Qu'y a-t-il dans un nom ? - Discussions sur golang.org](https://talks.golang.org/2011/names.slide)
- [Récepteurs @ Qu'y a-t-il dans un nom ? - Discussions sur golang.org](https://talks.golang.org/2011/names.slide#47)
- [Commentaires sur la révision du code Go : noms des récepteurs](https://github.com/ golang/go/wiki/CodeReviewComments#receiver-names)
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!