Вопрос по java, oop, android – Объявить локальные переменные как можно позже или в ближайшей фигурной скобке они принадлежат? [закрыто]

5

Я работаю, чтобы установить некоторые стандарты практики программирования для моей организации. При этом я столкнулся с проблемой «Заголовок этого вопроса».

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

Oracle Standard также предлагает объявить их как можно раньше. Так что я за то, чтобы объявить их в ближайшей фигурной скобке, которой они принадлежат.

Опасения

Code Readability

Performance

Less Error Prone

Любые комментарии приветствуются.

В чем проблема с тем, чтобы просто следовать стандарту Oracle? Если вы хотите, чтобы они были ближе к указанному коду, просто окружите его {}, если вы хотите определить локальную область. user387184

Ваш Ответ

4   ответа
10

de Complete 2:

Ideally, declare and define each variable close to where it’s used. A declaration establishes a variable’s type. A definition assigns the variable a specific value. In languages that support it, such as C++ and Java, variables should be declared and defined close to where they are first used.

Он также рекомендует сохранять переменные живыми в течение максимально короткого времени и минимизировать объем.

Важным для меня является следование соглашениям об именах (широко используются соглашения Java-кода Sun). Что касается того, где они впервые объявлены, я задержу объявление настолько, насколько это возможно, из соображений производительности (объявление о том, что вы не можете использовать, является пустой тратой). Если вы заранее не знаете, что он будет использоваться наверняка, в этом случае вы можете сгруппировать его с другими переменными, чтобы улучшить читаемость. Я думаю, что эточто JCC говорит об этом.

1

что «Читаемость кода» это единственный важный момент здесь. И код определенно более читабелен, если переменные объявлены ближе к месту их использования.

Но иногда для того, чтобы предотвратить «ошибки»; для новых программистов, переходящих между языками, может быть принят определенный стиль кодирования. Например, JavaScript имеет функциональную область видимости по сравнению с Java, которая имеет блок-область видимости. Программист Java может столкнуться с проблемами в JavaScript, если он не знает о функциональной области действия JavaScript. Поэтому, в случае JavaScript, чтобы избежать потенциальных ошибок, просто рекомендуется объявить все в начале функции / метода.

Как я уже упоминал выше, «Performace» не должно быть проблемой. Но если вы решите объявить переменные ближе к месту их использования, это может помочь снизить затраты на объявление и инициализацию переменных.

1

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

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

Склонность к ошибкам я бы сказал, это те же причины, что и читабельность

Объявите в наименьшей необходимой области и объявите в начале блока.

0

Читаемость кода:

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

Спектакль:

Случай 1:

Если мы объявляем переменные в начале метода и в методе с сотнями операторов, нам нужно, наконец, 10 переменных, прежде чем 50 операторов, излишне занимающих память для этих переменных.

Если нам нужно 20 переменных в методе, и мы объявили в начале, если мы получим любое исключение в самом начале, излишне занимая память.

случай 2:

Если мы объявляем переменные там, где нам нужно, это дает немного большую производительность.

Я бы сказал, что если вам нужно такое огромное количество переменных в одной функции, то она не будет легко читаемой в любом случае, независимо от того, где они объявлены.

Похожие вопросы