Caractères en Java les variables et les noms de méthode
Même aujourd'hui, je vois souvent des souligne en Java de variables et de méthodes, par exemple, sont des variables membres (comme "m_count" ou "_count"). Aussi loin que je me souvienne, à l'utilisation des caractères de soulignement dans ces cas est appelé mauvais style par le Soleil.
Le seul endroit où ils devraient être utilisées dans les constantes (comme dans "public final static int IS_OKAY = 1;"), parce que les constantes doivent être tout en majuscule et pas de chameau cas. Ici, le trait de soulignement doit rendre le code plus lisible.
Pensez-vous à l'aide de traits de soulignement dans Java est mauvais style? Si oui (ou non), pourquoi?
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas de code à l'aide de maintenant, je vous suggère de continuer que. Si votre base de code utilise, continuer que.
La plus grande chose à propos de style de codage est cohérence. Si vous n'avez rien à être compatible avec, puis la langue du vendeur recommandations sont probablement un bon endroit pour commencer.
ReadableInterface
- absolument superflu. Dans les Ide modernes vous n'avez pas besoin de spécifier le type de la variable ou de sa gamme de coloration et rapide saut à fait tout le travail pour vous. Donc, IMO c'est un mauvais style que vous tapez des caractères redondants et forcer les gens à lire / le maintenir.snake_case
forme est plus facile à lire. Surtout avec des mots courts (1 à 2 lettres), je serais certainement dire que c'est le cas. Comme pour les "durs de type", la saisie d'un mot avec lotsOfMixedCaseWithinIt n'est pas précisément commode non plus. Je voudrais plaider que c'est une question de ce que vous êtes habitué. En Java, si, je dis "utiliser la forme commune", comme recommandé par le n ° JLS/etc. En Ruby/Python/C, l'utilisation de serpent de cas. Et ainsi de suite...Règles:
Je ne pense pas que l'aide d' _ ou m_ pour indiquer les variables de membre est mauvais en Java ou tout autre langage. Qu'il est de mon avis, il améliore la lisibilité de votre code, car il vous permet de regarder un extrait de code et d'identifier rapidement toutes les variables membres de la population locale.
Vous pouvez également y parvenir en forçant les utilisateurs à ajouter des variables d'instance avec "ce", mais je trouve cela un peu draconienne. Dans beaucoup de façons, il viole SEC parce que c'est une variable d'instance, pourquoi qualifier deux fois.
Mon propre style en est d'utiliser m_ au lieu de _. La raison étant qu'il y a aussi globales et variables statiques. L'avantage de m_/_ est-ce qui distingue une portée de variables. Donc vous ne pouvez pas réutiliser _ globale ou statique et à la place je choisir g_ et s_ respectivement.
"Mauvais style" est très subjective. Si certaines conventions qui fonctionne pour vous et votre équipe, je pense que qualifier un mauvais/bon style.
Pour répondre à votre question: j'utilise un trait de soulignement pour marquer des variables privées. Je le trouve clair et je peux scanner à l'aide de code rapide et de trouver ce qu'il se passe.
(Je ne l'utilise presque pas "ce" bien que, sauf pour prévenir un conflit de nom.)
this
assez généreusement pour indiquer une variable de membre si je pense qu'il a besoin de l'attention attirée sur elle. Cependant, je ne suis pas un fanatique à ce sujet.à l'aide de 'm_' ou '_' dans le front d'une variable rend plus facile à repérer des variables de membre dans les méthodes à travers un objet.
Un autre avantage est que de taper 'm_' ou '_' fera intellsense pop en premier 😉
if (itsEmail.equals(email))
private int _my_int;
public int myInt;? _my_int? )
-autant que j'aime le _style de cela et pense que c'est lisible, je trouve que c'est sans doute le plus d'ennuis que cela vaut la peine, car il est rare et qu'il est susceptible de ne pas correspondre à quelque chose d'autre dans la base de code que vous utilisez.
-automatisé de génération de code (par exemple, l'éclipse de générer les getters, setters) ne sont pas susceptibles de comprendre ce que vous aurez à fixer par la main ou le fumier avec eclipse suffisamment pour le faire reconnaître.
En fin de compte, vous allez contre le reste de l' (java) dans le monde du préf. et sont susceptibles d'avoir certains inconvénients à partir de cela. Et comme les précédentes affiches ont mentionné, la cohérence dans la base de code l'emporte sur toutes les questions ci-dessus.
Il ya une raison pourquoi à l'aide de traits de soulignement a été considéré comme étant mauvais style dans les vieux jours. Lors de l'exécution du compilateur a été quelque chose d'inabordable et les moniteurs sont venus avec une étonnante 320x240 pixels de résolution, il n'est souvent pas aisé de distinguer entre les
_name
et__name
.C'est agréable d'avoir quelque chose de distinguer privé vs public variables, mais je n'aime pas '_' en général de codage. Si je peux vous aider dans le nouveau code, j'évite de leur utilisation.
Voici un lien de Soleil recommandations pour Java. Non pas que vous avez à utiliser ceux-ci ou même de bibliothèque de code suivante pour tous, mais c'est un bon début si vous allez à partir de zéro. Des outils comme Eclipse ont construit dans les formateurs et le nettoyage des outils qui peuvent vous aider à vous conformer à ces conventions (ou d'autres que vous définissez).
Pour moi, '_' sont trop difficiles à taper 🙂
C'est un mélange de styles de codage. Une école de pensée est à la préface de membres privés avec un trait de soulignement pour les distinguer.
au lieu de
D'autres vont utiliser des tirets de soulignement pour indiquer une température variable locale qui sera hors de portée à la fin de l'appel de méthode. (Je trouve cela assez inutile - une bonne méthode ne devrait pas être long, et la déclaration est LÀ! donc, je sais que c'est hors de portée) Edit: à Dieu ne plaise, un programmeur de cette école et un programmeur de la memberData l'école de collaborer! Il serait l'enfer.
Parfois, le code généré sera préface variables avec _ ou __. L'idée étant qu'aucun être humain ne pourrait jamais le faire, c'est sûr.
Je pense que n'importe quel style qui rompt une langue propres lignes directrices de style (sans raison) est laid et donc "mauvais".
Aucun doute que le code que vous avez vu a été écrit par quelqu'un qui a l'habitude de travailler sur une langue où les caractères de soulignement sont acceptables.
Certaines personnes ne peuvent tout simplement pas s'adapter à de nouveaux styles de codage...
Les personnes de raison de le faire (dans mon expérience) est à différencier entre les variables et les paramètres de la fonction. En Java, vous pouvez avoir une classe comme ceci:
Si vous faites de la variable membre _var1 ou m_var1, vous n'auriez pas de l'ambiguïté de la fonction.
Il est donc un style, et je n'appellerais pas ça mauvais.
Personnellement, je pense qu'une langue ne devrait pas faire règles à propos de style de codage. C'est une question de préférences, l'utilisation, la commodité, le concept de lisibilité.
Maintenant, un projet doit ensemble de règles de codage, pour assurer la cohérence entre les listes. Vous ne pourriez pas d'accord avec ces règles, mais vous devez vous en tenir à eux, si vous souhaitez contribuer (ou de travailler dans une équipe).
Au moins, IDEs comme Eclispe sont agnostiques, permettant de définir des règles comme variable de préfixes ou de suffixes, les différents styles de corset de placement et de gestion de l'espace, etc. De sorte que vous pouvez l'utiliser pour reformater le code votre lignes directrices.
Note: je suis parmi ceux qui tiennent à leurs vieilles habitudes de C/C++, programmation Java avec m_ préfixes pour les variables de membre (et s_ pour statique), la préfixation des booléens avec une initiale b, en utilisant une première lettre en majuscule pour les noms de fonction et de l'alignement des accolades... L'horreur pour Java fondamentalistes! 😉
Curieusement, c'est que les conventions utilisées là où je travaille... sans doute parce que le principal développeur initial vient de MFC monde! 😀
c'est juste votre propre style,rien qu'un mauvais style de code,et rien qu'un bon style code,il suffit de différence de notre code avec les autres.