[JAVA] Il y a un programmeur copier / coller - regardez quelqu'un et regardez-moi

introduction

Récemment, il y a beaucoup de programmeurs copier-coller dans mon équipe de développement ...: sweat_drops: Personnellement, je ne pense pas "copype = mal". Je pense que c'est correct de copier des éléments de type ʻinput Stream` qui sont recherchés sur Google presque à chaque fois, et si vous copiez et collez, je pense que le code source du projet sera unifié et qu'il sera plus facile à maintenir.

Mais ne vous contentez pas de copier et coller sans réfléchir: en colère: C'est difficile à lire et plein de bugs: droplet:

Alors, résumons ce que je pense, "Si vous copiez et collez, soyez au moins conscient de cela."

Remarquer

«Ce n'est pas un article qui demande le bon ou le mauvais de la copie. ――La subjectivité basée sur l'expérience personnelle est ** beaucoup ** incluse. «Je l'ai écrit avec l'espoir que" Si vous pensez, 'Oh, c'est moi ...?', Je vais réduire un peu le nombre de mauvaises copies. ": Sweat_smile:

1. 1. Le nom / la méthode de la variable est incorrect.

Puisqu'il est toujours copié (par exemple) si la source de la copie est "tel", il reste "tel". C'est peut-être "mail", mais ça reste "tel". Je pense qu'il y a beaucoup de gens qui pensent seulement: "Bouge juste, je veux que tu bouges comme tu veux." Quand je l'ai relu plus tard, c'était déroutant parce que c'était comme "Pourquoi la variable qui stocke l'hydromel tel?" Le nom de la méthode est le même, et même s'il s'agit de getMail (), je vois parfois une source qui renvoie un numéro de téléphone pour une raison quelconque ...

2. Les constantes telles que les messages d'erreur sont incorrectes.

On le voit souvent dans le processus d'obtention d'un message fixe du fichier de propriété à l'aide du code de clé. Si c'est terrible, même le message écrit en japonais sera copié et collé, et même s'il s'agit d'un système normal, cela peut être "Une erreur s'est produite".

3. 3. Les constantes statiques sont dispersées et prolifèrent.

Puisqu'il sera copié pour le moment, une erreur se produira s'il n'y a pas de constante de classe. "Ensuite, vous devez simplement copier et coller les constantes: thumbsup_tone3:". De cette façon, des constantes statiques portant exactement le même nom et le même contenu se développent dans chaque classe. Si c'est quelques-uns au début, je vais le pousser dans Enum ou dans un fichier de propriété dès que je le trouve, mais quand il s'agit de projets de maintenance, ça pousse trop, et au contraire, je commence à me dire "je pense qu'il vaut mieux le faire grandir tel quel". : déçu_relieved:

En guise de demande, si vous souhaitez copier quelque chose qui ressemble à une constante, cochez "Quelqu'un le définit-il pour une utilisation générale quelque part?": Bow:

4. JavaDoc est faux.

JavaDoc est "établi comme une spécification de programme formelle". Cependant, il peut être copié à partir de quelque part ou généré par défaut. En conséquence, le mouvement source réel et le japonais de JavaDoc sont souvent désynchronisés. Veuillez voir ici: arrow_down: pour la différence entre JavaDoc et les commentaires. : lien: [Java] Types de commentaires et style d'écriture Quelques mois plus tard, je regarde le JavaDoc et je dis: "Qui est celui qui a écrit un tel mensonge!" !!

5. Je ne comprends pas comment ça marche.

Naturellement, vous dites: "Quelque chose, ça a marché quand j'ai écrit ceci": cold_sweat: Mais ce n'est pas «écrit». Parce que je viens de "copier". Ce type se fige souvent lorsqu'on lui demande "Pourquoi avez-vous écrit ceci comme ça?"

6. Je ne remarque pas s'il reste des bugs.

C'est la même chose que "5. Je ne comprends pas l'opération". Je ne comprends pas, donc je ne remarque même pas si je copie et colle le bogue ensemble: déçu_relieved: De plus, il y a des moments où "ça va si c'est une source de copie, mais c'est un bogue parce que les spécifications sont erronées à la destination de la copie."

Veuillez le comprendre correctement. Vraiment···.

7. Lorsque j'obtiens une erreur, la première chose que je pense est "J'ai peut-être fait une erreur de copie?" Et je ne vois pas le message d'erreur.

Même s'il est beaucoup plus rapide de voir le message d'erreur, ils soupçonnent copypémis et comparent d'abord avec la source originale du copype: déçu: La plupart du temps, après s'être inquiété pendant un certain temps, il y a un modèle qui demande: "Cela ... La source ici renvoie une erreur, mais ce n'est pas exactement différent de la source de la copie ..." J'ai l'impression qu'il y en a beaucoup. Pour le moment, lisez le message d'erreur puis venez poser une question ...

De plus, c'est un miso au premier plan, mais j'espère que cela vous sera utile pour lire le message d'erreur: point_down_tone3: : lien: [Java] Lisez-vous correctement le message d'erreur? [Comment lire la trace de la pile]

en conclusion

Comme je l'ai écrit au début, je ne pense pas "copype = evil", donc je pense que c'est correct de se copype. En copiant, je pense que vous pouvez étudier le bon code source de nos prédécesseurs.

Cependant, même s'il s'agit d'une copie, c'est "vous l'avez fait". Si vous ajoutez un bogue par inadvertance, je pense que c'est de votre faute. Le point est, "Assumez la responsabilité du code que vous écrivez": thumbsup_tone2:

J'ai écrit quelque chose d'erratique, mais j'ai pensé que j'aimerais faire attention car je me copie et me colle parfois: sueur_smile:

Recommended Posts

Il y a un programmeur copier / coller - regardez quelqu'un et regardez-moi
Un regard sur Jenkins, OpenJDK 8 et Java 11
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Utilisez Vue.js avec CDN (copiez et collez uniquement!)
Retour rapide sur Java au cours des cinq dernières années