Ранни връщания

Ранните връщания са мощен модел за писане на чист, четим код. Те ви позволяват да излезете от функция по-рано, веднага щом сте установили, че определено условие е изпълнено, което може да помогне за опростяване на вашия код и да го направи по-лесен за разбиране.

И така, как точно се възползва от кода за ранно връщане?

Подобрена четливост

Ранните връщания могат да помогнат да направите кода си по-четлив, като разделите сложната логика на по-малки, по-управляеми части. Като излезете от функция веднага щом е изпълнено определено условие, можете да избегнете влагането на множество нива на условни изрази и да намалите количеството код, който трябва да бъде сканиран, за да разберете логиката на дадена функция.

По-лесно отстраняване на грешки

Като използвате ранни връщания, можете да улесните отстраняването на грешки във вашия код. Когато дадена функция излезе по-рано, е ясно, че останалата част от логиката във функцията не е подходяща за текущото изпълнение. Това ви помага да се съсредоточите върху кода, който се изпълнява, и бързо да идентифицирате основната причина за проблема.

Намалена цикломатична сложност

Цикломатичната сложност е мярка за броя на независимите пътища през част от кода. Високата сложност може да направи вашия код по-труден за разбиране и поддръжка. Като използвате ранни връщания, можете да намалите броя на независимите пътища през вашия код и да запазите кода си прост.

Подобрена производителност

Ранните връщания също могат да имат положително въздействие върху ефективността на вашия код. Като излезете от функция веднага щом е изпълнено определено условие, можете да избегнете излишните разходи за изпълнение на ненужен код. Това може да помогне за ускоряване на общото време за изпълнение на вашето приложение.

Пример

Как да използваме ранното връщане, за да изчистим кода и да го направим по-четим?

function calculateDiscount(price: number, hasCoupon: boolean,isPremiumUser: boolean): number {

  let discount = 0;

  if (hasCoupon) {
    discount = price * 0.1;
  } else {
    if (isPremiumUser) {
      discount = price * 0.2;
    } else {
      discount = price * 0.05;
    }
  }

  return price - discount;
}

Ще се трансформира в:

function calculateDiscount(price: number, hasCoupon: boolean, isPremiumUser: boolean): number {
  if (hasCoupon) {
    return price * 0.9;
  }

  if (isPremiumUser) {
    return price * 0.8;
  }

  return price * 0.95;
}

Като странична бележка, трябва да разчитате на модулни тестове, за да определите, че функционалността на кода не е променена по време на преструктурирането. Ако все още няма тестове, покриващи логиката, която искате да преработите, силно препоръчвам първо да напишете тестове.

TLDR;

Използването на ранни връщания е страхотна техника за писане на чист и четим код. Те ви позволяват да:

  1. Разбийте сложната логика на по-малки, по-управляеми части
  2. Намалете количеството код, който трябва да бъде сканиран, за да разберете логиката на дадена функция
  3. Подобрете производителността на вашия код
  4. Пишете код, който е по-лесен за поддръжка, отстраняване на грешки и осигурявайте по-добро изживяване на разработчиците за следващия човек, който дойде след вас.

Ако имате коментари, въпроси или притеснения, моля, свържете се с нас!