J'ai écrit "en Java" dans le titre, mais ce n'est pas un sujet limité à un langage spécifique. Il est arrivé qu'il y ait eu beaucoup de développement Java ces jours-ci, et j'ai ajouté "in Java" à partir de l'exemple réel de l'époque. J'espère que vous pourrez l'appliquer à votre propre langage autre que Java.
Donc, si vous écrivez d'abord seulement la conclusion, ce sera comme ça.
** (* '▽') Si vous êtes intéressé, lisez la suite! ** **
La dénomination est très importante dans la programmation, en particulier dans le code lu par un nombre indéterminé de personnes, comme le développement de groupe et l'open source. Cependant, bien que très important, attribuer des ** noms propres ** aux noms de classes et de méthodes peut prendre plus de temps que vous ne le pensez.
Les anti-modèles liés à la dénomination sont également de gros thèmes, je les omettrai donc cette fois, Il peut être difficile de donner un bon nom facile à comprendre tout en évitant les mauvais noms.
Cela dit, je voudrais vous présenter ce que je pratique habituellement afin de ** donner un nom approprié aussi efficacement que possible **.
J'écrirai à nouveau un article sur Qiita, donc écrire ce que je fais habituellement n'est pas très différent de ** Hatena Blog **. J'ai pensé, alors j'ai regardé en arrière sur le modèle de dénomination que j'utilise habituellement lors de la programmation.
** (* '▽') Eh bien, je pense que c'est normal! ** **
Comme je l'ai écrit dans le flux de réflexion ci-dessus, "emprunter des mots clés à des fonctions équivalentes dans d'autres langues" est assez pratique. Plus précisément, voici quelques exemples de «diversification» que j'ai effectivement fait.
Les parties communes qui effectuent le traitement multi-thread sont nommées async / await / aggregate.
Lorsque j'ai créé une partie multithread qui a enveloppé l'implémentation standard multi-thread Java (utilitaires de concurrence Java) C # (à proprement parler, c'était la série C # 3.x) a une fonction supplémentaire async / await qui vous permet d'écrire le traitement asynchrone de manière concise sous forme de syntaxe de langage. En tant que fonction considérable, la dénomination de cette zone a été améliorée.
agrégat n'a pas été ajouté en tant que mot-clé, mais il a été utilisé comme nom commun pendant longtemps.
J'ai créé une classe appelée TryWithResources. (Je suppose que le contenu de la mise en œuvre)
Il s'agit d'un nom simple donné à une classe utilitaire qui peut être utilisé comme alternative à la syntaxe try-with-resources pour garantir une libération fiable des ressources. Bien sûr, c'est un appel qui dit: "Je n'avais pas besoin de créer une telle classe si je pouvais l'élever en JDK7 !!" J'ai également écrit en javadoc: "À l'avenir, augmentez-le en JDK7 ou supérieur et effacez cette mauvaise classe." Eh bien, je suppose qu'il survit toujours sans être effacé ...
Nommez l'objet qui spécifie le prédicat de condition, Ou vous pouvez nommer une telle interface IPredicate.
Les noms de méthode LINQ (bien que la plupart soient les noms de délégués correspondants) sont également très polyvalents et il existe de nombreux bons noms faciles à emballer.
Emprunter la dénomination d'autres implémentations, en particulier en utilisant celles qui sont au niveau des mots clés, Au-delà de raccourcir le temps de penser à un nom, il y a les avantages suivants, et c'est mon préféré.
-Parce qu'il est déjà défini, la densité d'informations est élevée. «L'information sort dans ce mot. ――S'il existe un document officiel, vous pouvez écrire l'URL et sauter la référence.
Surtout le premier mérite est très grand.
Il est très efficace d'utiliser des ** noms définis ** comme moyen d'exprimer des connaissances et des informations systématiques d'une manière concise.
La quantité d'informations qui peuvent être véhiculées en un mot est beaucoup plus grande que les autres, et le contenu qui peut être exprimé avec moins de code est enrichi. C'est un niveau où tout est complété par le premier mot si vous n'y êtes pas doué.
En d'autres termes, c'est comme ** utiliser un modèle de conception pour la conception de classe **.
Une seule instance de cette classe est garantie d'être créée pendant un processus système et est utilisée pour mettre en cache et partager des informations communes dans tout le système.
Plutôt que de dire
Cette classe est à une tonne.
C'est plus rapide et plus précis à dire.
Et dans la balise see de javadoc Wikipedia --Singleton pattern Ou quelque chose comme ça.
Cela vous évitera d'avoir à écrire vous-même un long javadoc et vous permettra de capturer des informations plus générales et plus ouvertes.
De plus, s'il s'agit d'un ** mot-clé **, il y a presque certainement une ** spécification de langage **, donc les informations (probablement le document standard) seront immédiatement consultées. Ou, même si les documents standard ne sont pas accessibles, il y a une forte possibilité que le site d'introduction (ou blog, article de Qiita, etc.) qui les explique soit frappé, et il y a un avantage que la recherche est élevée.
Dans mon cas, j'utilise souvent le mot-clé provenant de C # pour nommer, mais dans ce cas ** "Si vous recherchez sur Google avec ce mot-clé et les hits MSDN, c'est la bonne réponse, alors lisez-la attentivement !!" ** Remplissez-le avec des ** commentaires normaux **.
Si je ne trouve pas un bon emprunteur, je ferai de mon mieux pour lui donner un joli nom. Cette zone prend du temps, je veux donc la trouver aussi facilement que possible.
En disant cela, je fais souvent référence à ce domaine.
** Dictionnaire de nommage pour les programmeurs "Codic": ** https://codic.jp/engine
** Résumé des articles de mise en conserve qui sont utiles lorsque vous n'êtes pas sûr de la dénomination des noms de variables et des noms de fonctions en programmation: ** En commençant par l'introduction de Codic ci-dessus, il y a beaucoup d'autres choses utiles pour nommer, veuillez rechercher votre favori https://nelog.jp/programming-words
** (* '▽') Merci beaucoup pour votre aide! ** **
Une méthode historique de recherche de code sur GitHub a été proposée. https://qiita.com/kyoshidajp/items/c5d4f060df636ea20cbb
J'ai trouvé le plus fort de la feuille de triche de dénomination la plus forte. https://qiita.com/Ted-HM/items/7dde25dcffae4cdc7923
C'est une convention de dénomination ou une directive. https://qiita.com/takasek/items/693c57dc9ddc6c1eb1ba
Recommended Posts