Лучшая практика - инициализация переменной

1

Какая наилучшая практика вы предпочитаете, код A или код B? Для кода A мне не нужно инициализировать переменную, но каждый раз, когда я вызываю getNum(), мне нужно снова и снова ее повторять. Этого недостает в управлении памятью, читабельности, управлении кодами и удобстве использования. Сравните с кодом B, я просто определяю переменную num для book.getNum() и каждый раз, когда я хочу использовать book.getNum(), я просто вызываю переменную num. Это проблематично в реальном времени?

Код A:

if( book.getNum() != 0){
//----
}

Код B:

int num = book.getNum();
if( num != 0){
//----
}
  • 1
    Я думаю, что вам будет трудно найти разницу в производительности между A и B; следовательно, это чисто стиль и мнение.
  • 1
    Они могут выглядеть по-разному, но AFAIK они на самом деле одинаковы.
Теги:

4 ответа

6
Лучший ответ

если вы собираетесь повторно использовать это значение, тогда code B лучше. Если вы хотите использовать это значение только один раз, тогда Code A лучше.

Просто делайте все просто. Не вводите переменную, если в ней нет необходимости.

ОБНОВИТЬ:

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

  • 0
    Я не согласен с этим мнением. Я бы предпочел вариант B чем-то вроде if( indexOf(num.getNum().toString()[0],'helloWorld') == 0 ) . Это позволяет вам назвать переменную, чтобы вы на самом деле знали, что вы получаете, а не нечитаемый оператор if . Хотя для этого конкретного случая, я думаю, что нет никакой реальной разницы между A или B.
  • 1
    @ Adam Я обновил свой ответ. Если разработчик имеет дело со сложными выражениями, то дополнительные переменные делают код более читабельным, и я согласен с этим.
Показать ещё 3 комментария
3

B для лучшей читаемости кода и обслуживания.

также легче проверить функцию, заменив вызов функции (getNum()) любым фиктивным значением.

подумайте о будущем, в будущем, возможно, вы захотите расширить этот код, и проще просто использовать num вместо getNum()...

  • 0
    Я рекомендую вам взглянуть на "ЯГНИ".
  • 0
    Он предназначен для использования в сочетании с рядом других практик, таких как непрерывный рефакторинг, непрерывное автоматизированное модульное тестирование и непрерывная интеграция. Использование без непрерывного рефакторинга может привести к неорганизованному коду и массивной переработке. -Википедия, следовательно, моя точка зрения лучшей читаемости
2

Компилятор оптимизирует это. Оба способа по существу одинаковы.

Единственная ситуация, которую я предлагаю использовать в:

int num = book.getNum();
if( num != 0){
   //----
}

когда book.getNum() используется в следующем коде. Тот факт, что num короче, чем book.getNum() является преимуществом в этом случае, просто с точки зрения сделать код более читаемым.

-2

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

  • 2
    Преждевременная оптимизация - корень всего зла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню