Инструкции по именованию частных приложений Android в порядке?

Здесь http://source.android.com/source/code-style.html#follow-field-naming-conventions указано, что:

Имена полей

  • Непубличные имена нестатических полей начинаются с m.
  • Имена статических полей начинаются с s.
  • Другие поля начинаются с строчной буквы.
  • Открытые статические конечные поля (константы) - ALL_CAPS_WITH_UNDERSCORES.

В нем также указано, что:

Нижеприведенные правила не являются рекомендациями или рекомендациями, а строгими правилами. Вы не можете игнорировать приведенные ниже правила, за исключением случаев, когда они утверждены на основе необходимости.

Мне не нравится соглашение "m" перед частными или полями пакета в классе. Я действительно нахожу это невдохновленным... Я имею в виду, если мы попытаемся применить хорошие проекты, низкое сцепление классов подразумевает наличие нескольких открытых полей. на самом деле, в моих программах у меня обычно нет публичных полей, даже когда мне нужно, чтобы я использовал геттеры и сеттеры...

Итак, почему я должен быть вынужден иметь почти все мои поля в программе с "m" перед ними? было бы нелегко иметь несколько открытых полей, если они есть, с некоторым "g" впереди или что-то еще? или просто использовать сеттеры и геттеры как beans предложить? это действительно делает мой код труднее читать....

Кроме того, в соответствии с этими рекомендациями, локальные временные переменные, используемые в методах, не имеют ограничений, поэтому их можно легко ошибочно принять за общедоступные глобальные поля (также без ограничений)... это также я считаю неправильным, поскольку это вероятный источник ошибок... Я понимаю, что у меня есть способ отличать от полей, но частные/защищенные поля-члены наиболее часто используются в приложении, они не должны быть менее "удобочитаемыми".

Как вы думаете? Должен ли я следовать рекомендациям?

Ответ 1

Эти правила кодирования предназначены для Android Open Source Project, который является основной платформой Android. Вы должны следовать этим рекомендациям, если хотите, чтобы какой-либо из ваших кодов принимался на основной платформе. Вы можете делать все, что захотите, в своих приложениях. Что касается самих рекомендаций, я считаю, что они очень разумны и похожи на многие стандарты, используемые в коммерческих приложениях. Как правило, вы хотите использовать геттеры и сеттеры для доступа к общественному полю, и вы не хотите иметь глобальные общедоступные переменные. Только глобальные публичные константы в порядке.
Таким образом, короткий ответ следует за ними для проекта с открытым исходным кодом, решите следовать им в своем приложении.

Ответ 2

Что касается getters\seters, на самом деле рекомендуется не использовать их в Android.

Я нашел это на странице "Проектирование для производительности" (раздел: Избегайте внутренних Getters/Setters): http://developer.android.com/guide/practices/design/performance.html

В нижней строке, они выводят, что поиск полей экземпляров более эффективен, чем вызовы виртуальных методов (из-за оптимизации в JIT).

Я думаю, что буду продолжать использовать getters\seters в своем коде, но это может быть простой способ повысить производительность (особенно для приложений, которые делают много манипуляций с данными).