Создание одноразовых промежуточных переменных - PullRequest
0 голосов
/ 02 октября 2019

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

1 Ответ

1 голос
/ 06 октября 2019

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

Прекрасно создать новую переменную, если она внесет ясность в ваш код. Убедитесь, что дали ему значимое имя. Рассмотрим следующую функцию:

public static boolean isLeapYear(final int yyyy) {
    if ((yyyy % 4) != 0) {
        return false;
    }
    else if ((yyyy % 400) == 0) {
        return true;
    }
    else if ((yyyy % 100) == 0) {
        return false;
    }
    else {
        return true;
    }
}

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

public static boolean isLeapYear(int year) {
    boolean fourth = year % 4 == 0;
    boolean hundredth = year % 100 == 0;
    boolean fourHundredth = year % 400 == 0;
    return fourth && (!hundredth || fourHundredth);
}

Эти логические переменные придают коду большую ясность.

Этот пример взят из книги «Чистый код» Роберта К. Мартина.

...