Рубрики
Без рубрики

Упростите свой код: Заменить вложенную If-Else на охранники

Вложенные заявления IF-ELSE могут усложнить рассуждение о различных … Tagged с VSCODE, WebDev, JavaScript, TypeScript.

Вложенные операторы IF-ELSE могут усложнить их из-за различных путей выполнения и результатов функции Анкет Потеря производительности и введение ошибок из -за недопонимания могут быть результатом.

Рефакторинг ” заменить вложенные условные с помощью охраны ” из книги Мартина Фаулера ” Рефакторинг – Улучшение дизайна существующего кода (2 -е издание) “Может помочь в этих ситуациях.

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

Вот примерная функция (от заменить вложенные условные с помощью охраны , Мартин Фаулер) перед рефакторией:

function getPayAmount() {
  let result;
  if (isDead)
    result = deadAmount();
  else {
    if (isSeparated)
      result = separatedAmount();
    else {
      if (isRetired)
        result = retiredAmount();
      else
        result = normalPayAmount();
    }
  }
  return result;
}

В этом примере три вложенных оператора IF-ELSE проверяют различные условия (например, isseparated ) и обновить переменную результат Анкет Переменная возвращается в конце функции.

Цель состоит в том, чтобы реорганировать функцию в следующую версию:

function getPayAmount() {
  if (isDead) return deadAmount();
  if (isSeparated) return separatedAmount();
  if (isRetired) return retiredAmount();
  return normalPayAmount();
}

Рефакторированная функция использует охраняющие положения вместо вложенных операторов IF-ELSE. Переменная результат больше не требуется и был удален. Рефакторированный код легче понять, поскольку существует меньше состояния (без переменной), и каждый путь выполнения возвращается рано.

Как оригинальная функция может быть рефакторирована шаг за шагом?

Вы можете упростить исходный код, применив два рефакторирования к каждому условию:

Вы можете выполнить эти шаги вручную или с автоматизацией. P42 JavaScript Assistant для VS -кода является инструментом рефакторинга, который поддерживает обе операции. P42 указывает возможности улучшения с Blue Squiggly подчеркивается. При автоматизации рефакторинга код может быть улучшен за считанные секунды Анкет После окончательного шага форматирования функция была переработана в упрощенной версии.

Вот как рефакторирование кода выглядит в коде VS с P42:

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

Счастливого рефакторинга!

Оригинал: “https://dev.to/p42/javascript-refactoring-in-action-replace-nested-if-else-with-guards-41nl”