Авторизоваться
Аким Солянкин 27.11.2021 Опубликована

Снижение сложности кода: защитные предложения 

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

Сложность добавляется почти каждый раз, когда мы взаимодействуем с кодовой базой. Простое добавление функций, вероятно, приведет к дополнительной сложности, и мы ничего не можем с этим поделать.

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

Взгляните на следующие 2 фрагмента, которые дают тот же результат.

fun nested() {
    if (condition1) {
        doThings1()
        if (condition2) {
            doThings2()
            if (condition3) {
                doThings3()
            } else {
                throw Exception3()
            }
        } else {
            throw Exception2()
        }
    } else {
        throw Exception1()
    }
}

fun guard() {
    if (!condition1) {
        throw Exception1()
    }
    doThings1()

    if (!condition2) {
        throw Exception2()
    }
    doThings2()

    if (!condition3) {
        throw Exception3()
    }
    doThings3()
}

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

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

Когда есть глубокая вложенность, вам нужно больше «мысленной» обработки, чтобы держать все в своей голове.

К тому же все стало более «локальным». Соответствующее исключение выдается, как только возникает ошибка. Не нужно гнаться за фигурными скобками, чтобы понять, когда что-то брошено.

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

Удачного кодирования!

Источник

Forem logo
Коментарии
Авторизоваться что-бы оставить комментарий
Присоединяйся в тусовку
Наш сайт использует файлы cookie для вашего максимального удобства. Пользуясь сайтом, вы даете свое согласие с условиями пользования cookie