Соглашения об именовании в Java
Денис
Соглашение об именовании — это такой документ. Разработчики договариваются, как они будут называть переменные, классы, методы, функции и т.д. в коде. В результате получается документ — соглашение об именовании.
На английском это называется Naming Conventions
В разных языках принято по-разному. В Java с соглашеним об именовании строго: если в одном C++ проекте используется snake_case, а в другом - CamelCase, то в Java везде одинаковое соглашение.
Я расскажу о соглашении об именовании в Java: как правильно и нет, не углубляясь в детали, и дам ссылки

На скриншоте пример кода, из учебного проекта RestBucks. Он учитывает принятые соглашения об именовании:
- Имя класса "
Engine" — вCamelCase. Каждое слово - с заглавной буквы, без нижних подчёркиваний, первая буква - заглавная. - Именя полей "
orders", "settings", "ordersInProgress"—lowerCamelCase - Метод
handleOrderPaidEvent—lowerCamelCase
В Java не принято писать так:

Я изменил первый пример, и Intellij IDEA начала подсвечивать мне код жёлтым в местах, где я ошибся:
- Имена классов должны начинаться с заглавной буквы -
Engine - Поля
_orders,settings_,orders_in_progress: нижние подчёркивания не годятся. Должно бытьorders,settings,ordersInProgress. - Имя метода должно начинаться с со строчной буквы:
handleOrderPaidEvent - Локальная переменная
processing_ime. Должно бытьprocessingTime
Нижние подчёркивания разрешены в константах, пример из ArrayList:

Формальные правила
У Oracle есть документ https://www.oracle.com/java/technologies/javase/codeconventions-contents.html (последняя ревизия была аж в 1999 году!).
Но я препочитаю давать ссылку на Google Code Style.
И документ Oracle, и Google рассказывают примерно об одном и том же.
На практике
На практике главное соблюдать именование классов, параметров, методов и т.д., а для всего остального, например, выбора между табами и пробелами придерживаться того, что принято в проекте.
IDE, например, Intellij IDEA умеет сама форматировать код, от разработчика только требуется нажать кнопку или включить форматирование при коммите.
Подробнее: https://www.jetbrains.com/help/idea/reformat-and-rearrange-code.html
Спорные моменты
Константы
По правилам константы должны именоваться ЗАГЛАВНЫМИ_БУКВАМИ_С_НИЖНИМИ_ПОДЧЕРКИВАНИЯМИ.
Обычно под константой в Java понимают static final поле. Однако, на мой взгляд, если я в static final поле положил изменяемый список myList, то я не должен называть его MY_LIST. Константы не меняются, а список можно менять.
При этом если список неизменяемый, то мне кажется правильным назвать его MY_LIST.
Некоторые проекты всё равно будут наставить на именовании MY_LIST, даже если список изменяемый.
Примеры кода
- Код библиотеки JDK. Например, исходный код
ArrayList - Guava - это библиотека от Google. Например,
HostAndPort
Инспекции Intellij IDEA
У меня Intellij IDEA подсветила код с ошибками. По умолчанию она это не делает. Чтобы Intellij IDEA начала подсвечивать ошибочные имена, я сделал профиль инспекций: https://github.com/diligent-snail/intellij-idea-inspections
Заключение
- Соглашение об именовании в Java не отличается между проектами
- Google Code Style формальный документ с требованиями к именованию и Code Style
- В Intellij IDEA используем встроенное форматирование