Даже сейчас я часто вижу символы подчеркивания в переменных и методах Java, например, переменные-члены (например, «m_count» или «_count»). Насколько я помню, использование подчеркивания в таких случаях Sun считает плохим стилем.
Единственное место, где они должны использоваться, - это константы (например, «public final static int IS_OKAY = 1;»), потому что константы должны быть полностью в верхнем регистре, а не в верблюжьем регистре. Здесь подчеркивание должно сделать код более читабельным.
Считаете ли вы, что использование подчеркивания в Java - плохой стиль? Если да (или нет), то почему?
источник
ReadableInterface
- абсолютно избыточно. В современных IDE вам не нужно указывать тип переменной или ее диапазон - раскраска и быстрый переход делают всю работу за вас. Итак, IMO, это плохой стиль, поскольку вы вводите избыточные символы и заставляете людей читать / поддерживать его.источник
snake_case
форму легче читать. Я определенно утверждаю, что это так, особенно с короткими словами (1-2 буквы). Что касается слова «трудно набирать», то вводить слово с помощью функции lotOfMixedCaseWithinIt тоже не совсем удобно. Я бы сказал, что это вопрос того, к чему вы привыкли. Однако в Java я говорю «используйте общую форму», как рекомендовано JLS / etc. В Ruby / Python / C используйте snake case. И так далее ...Правила:
источник
Я не думаю, что использование _ или m_ для обозначения переменных-членов - это плохо в Java или любом другом языке. На мой взгляд, это улучшает читаемость вашего кода, поскольку позволяет вам просматривать фрагмент и быстро определять все переменные-члены от локальных.
Вы также можете добиться этого, заставив пользователей добавлять к переменным экземпляра "this", но я считаю это несколько драконовским. Во многих отношениях это нарушает DRY, потому что это переменная экземпляра, зачем уточнять ее дважды.
Мой личный стиль - использовать m_ вместо _. Причина в том, что существуют также глобальные и статические переменные. Преимущество m _ / _ в том, что он различает область видимости переменных. Таким образом, вы не можете повторно использовать _ для глобального или статического, и вместо этого я выбираю g_ и s_ соответственно.
источник
«Плохой стиль» очень субъективен. Если определенные условности работают для вас и вашей команды, я думаю, это будет считаться плохим / хорошим стилем.
Чтобы ответить на ваш вопрос: я использую верхнее подчеркивание для обозначения частных переменных. Мне все ясно, я могу быстро просмотреть код и выяснить, что происходит.
(Я почти никогда не использую «это», кроме как для предотвращения конфликта имен.)
источник
this
довольно широко использую для обозначения переменной-члена, если считаю, что на нее нужно обратить внимание. Однако я не фанатик.использование "m_" или "_" перед переменной упрощает обнаружение переменных-членов в методах по всему объекту.
В качестве дополнительного преимущества, ввод "m_" или "_" заставит intellsense сначала вывести их;)
источник
if (itsEmail.equals(email))
private int _my_int; public int myInt;? _my_int? )
- насколько мне нравится этот _style и я считаю его читабельным, я нахожу, что это, возможно, больше проблем, чем оно того стоит, поскольку оно необычно и, вероятно, не будет соответствовать чему-либо еще в используемой вами кодовой базе.
-автоматизированная генерация кода (например, геттеры и сеттеры eclipse) вряд ли поймут это, поэтому вам придется исправить это вручную или использовать eclipse достаточно, чтобы заставить его распознать.
В конечном итоге вы идете против предпочтений остального (java) мира и, вероятно, будете иметь некоторые неприятности от этого. И, как упоминалось в предыдущих плакатах, согласованность кодовой базы превосходит все вышеперечисленные проблемы.
источник
Есть причина, по которой в старые времена использование подчеркивания считалось плохим стилем. Когда компилятор среды выполнения был чем-то недоступным, а мониторы поставлялись с потрясающим разрешением 320x240 пикселей, часто было непросто различить
_name
и__name
.источник
Приятно иметь что-нибудь, чтобы отличать частные переменные от общедоступных, но мне не нравится "_" в общем коде. Если я могу помочь ему в новом коде, я избегаю их использования.
источник
Вот ссылка на рекомендации Sun для Java. Не то, чтобы вы должны использовать их или даже то, что их библиотечный код следует за всеми ними, но это хорошее начало, если вы собираетесь с нуля. Такие инструменты, как Eclipse, имеют встроенные средства форматирования и инструменты очистки, которые могут помочь вам соответствовать этим соглашениям (или другим, которые вы определяете).
Для меня "_" слишком сложно набирать :)
источник
Это смесь стилей кодирования. Согласно одной из школ, частные члены должны начинаться с подчеркивания, чтобы различать их.
setBar( int bar) { _bar = bar; }
вместо
setBar( int bar) { this.bar = bar; }
Другие будут использовать подчеркивание, чтобы указать временную локальную переменную, которая выйдет за пределы области видимости в конце вызова метода. (Я считаю это довольно бесполезным - хороший метод не должен быть таким длинным, и объявление находится ПРЯМО ЗДЕСЬ! Так что я знаю, что он выходит за рамки) Редактировать: не дай Бог сотрудничать программисту из этой школы и программисту из школы memberData ! Это было бы адом.
Иногда сгенерированный код будет начинать переменные с помощью _ или __. Идея в том, что ни один человек никогда этого не сделает, так что это безопасно.
источник
Я считаю, что любой стиль, который нарушает правила стиля языка (без уважительной причины), уродлив и, следовательно, «плох».
Несомненно, код, который вы видели, был написан кем-то, кто работал над языком, где допустимы символы подчеркивания.
Некоторые люди просто не могут адаптироваться к новым стилям кодирования ...
источник
Причина, по которой люди это делают (по моему опыту), заключается в том, чтобы различать переменные-члены и параметры функций. В Java у вас может быть такой класс:
public class TestClass { int var1; public void func1(int var1) { System.out.println("Which one is it?: " + var1); } }
Если бы вы сделали переменную-член _var1 или m_var1, у вас не было бы двусмысленности в функции.
Так что это стиль, и я бы не назвал его плохим.
источник
Лично я считаю, что язык не должен правила стиля программирования. Это вопрос предпочтений, использования, удобства, концепции удобочитаемости.
Теперь проект должен установлены правила кодирования для согласованности между списками. Вы можете не согласиться с этими правилами, но вы должны их придерживаться, если хотите внести свой вклад (или работать в команде).
По крайней мере, такие IDE, как Eclispe, являются агностическими, позволяя устанавливать такие правила, как префиксы или суффиксы переменных, различные стили размещения скобок и управления пространством и т. Д. Таким образом, вы можете использовать его для переформатирования кода в соответствии с вашими рекомендациями.
Примечание: я принадлежу к тем, кто сохраняет свои старые привычки от C / C ++, кодируя Java с префиксами m_ для переменных-членов (и s_ для статических), добавляя логические префиксы с начального b, используя начальную заглавную букву для имен функций и выравнивая фигурные скобки. .. Ужас для Java-фундаменталистов! ;-)
Как ни странно, это соглашения, которые используются там, где я работаю ... вероятно, потому, что основной начальный разработчик происходит из мира MFC! :-D
источник
это просто ваш собственный стиль, ничего плохого стиля кода и ничего хорошего кода стиля, просто отличите наш код от других.
источник