Attention: C'est une question / discussion pas très sérieuse que je poste ... mais je suis prêt à parier que la plupart des développeurs ont réfléchi à ce "problème" ...
J'ai toujours voulu obtenir d'autres opinions concernant les conventions de dénomination des méthodes qui allaient chercher des données quelque part et les renvoyaient ...
La plupart des noms de méthodes sont assez simples et évidents ... SaveEmployee (), DeleteOrder (), UploadDocument (). Bien sûr, avec les classes, vous utiliserez probablement la forme courte ... Save (), Delete (), Upload () respectivement.
Cependant, j'ai toujours eu du mal avec l'action initiale ... comment obtenir les données. Il semble que pour chaque projet, je finis par sauter entre différentes conventions de dénomination car je ne suis jamais tout à fait satisfait de la dernière que j'ai utilisée. Autant que je sache, ce sont les possibilités ->
- GetBooks ()
- FetchBooks ()
- Récupérer des livres ()
- FindBooks ()
- LoadBooks ()
Quelle est votre pensée?
fetch
lorsque le temps d'accès aux données est faible , c'est-à-dire sur le même appareil, à partir de la base de données locale, de la mémoire.load
, oudownload
si le temps d'accès est plus élevé , à partir d'Internet, de la base de données externe, du fichierHonnêtement, vous devez simplement décider avec votre équipe de la convention de dénomination à utiliser. Mais pour le plaisir, voyons ce que vous pensez pour décider de l'un de ces éléments:
Cette méthode appartient à une source de données, et nous ne nous soucions pas de la façon dont elle les obtient, nous voulons simplement les obtenir à partir de la source de données.
Vous traitez votre source de données comme un limier, et c'est son travail de récupérer vos livres. Je suppose que vous devriez décider vous-même combien il peut tenir dans sa bouche à la fois.
Votre source de données est un bibliothécaire et utilisera le système Dewey Decimal pour trouver vos livres.
Ces livres appartiennent à une sorte de "sac de livre électronique" et doivent y être chargés. Assurez-vous d'appeler ZipClosed () après le chargement pour éviter de les perdre.
Je n'ai rien.
la source
add
pour les deux écrit dans une base de données et écrit dans le magasin. Maintenant, j'essaie de séparer ceux-ci, et c'est une douleur.La réponse est simplement de vous en tenir à ce avec quoi vous êtes à l'aise et d'être cohérent.
Si vous avez un site Web barnes and nobles et que vous utilisez GetBooks (), alors si vous avez un autre élément comme une entité Movie, utilisez GetMovies (). Donc, tout ce que vous et votre équipe aimez et soyez cohérent.
la source
En OO (C ++ / Java), j'ai tendance à utiliser getSomething et setSomething car très souvent, sinon toujours, j'obtiens un attribut privé de la classe représentant cet objet de données ou le définissant - la paire getter / setter. En plus, Eclipse les génère pour vous.
J'ai tendance à utiliser Load uniquement quand je veux dire des fichiers - comme dans "charger en mémoire" et cela implique généralement le chargement dans des primitives, des structures (C) ou des objets. J'utilise envoyer / recevoir pour le Web.
Comme indiqué ci-dessus, la cohérence est essentielle et cela inclut les développeurs croisés.
la source
Ce que vous entendez par «obtenir les données» n'est pas clair. De la base de données? Un fichier? Mémoire?
Mon point de vue sur la dénomination des méthodes est que son rôle est d'éliminer toute ambiguïté et idéalement le besoin de rechercher de la documentation. Je pense que cela devrait être fait même au prix de noms de méthodes plus longs. Selon des études, la plupart des développeurs intermédiaires + sont capables de lire plusieurs mots dans le cas du chameau. Avec l'IDE et les complétions automatiques, l'écriture de noms de méthodes longs n'est pas non plus un problème.
Ainsi, quand je vois "fetchBooks", à moins que le contexte soit très clair (par exemple, une classe nommée BookFetcherFromDatabase), c'est ambigu. Le chercher d'où? Quelle est la différence entre fetch et find? Vous risquez également le problème que certains développeurs associent la sémantique à certains mots clés. Par exemple, recherchez la base de données (ou la mémoire) par rapport au chargement (à partir d'un fichier) ou au téléchargement (à partir du Web).
Je préférerais voir quelque chose comme "fetchBooksFromDatabase", "loadBookFromFile", "findBooksInCollection", etc. C'est moins visible, mais une fois que vous avez dépassé la longueur, c'est clair. Tout le monde qui lirait ceci comprendrait tout de suite ce que vous essayez de faire.
la source