Охранное предложение для функции с одним оператором?

Каков наиболее читаемый способ написать очень простую функцию, которая эффективно выполняет один оператор, если выполняется условие?

Что я считаю наиболее читаемым, так это:

function doSomething(myNumber){
    if(myNumber !== null && myNumber > 5){
        doTheThing();
    }
}

Однако мой коллега настаивает на том, что защитные предложения делают что-либо более читаемым, и всегда будет писать эту функцию следующим образом:

function doSomething(myNumber){
    if(myNumber === null || myNumber <= 5)
        return;
    doTheThing();
}

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


person Subler    schedule 24.02.2021    source источник


Ответы (1)


Это не совсем технический вопрос, это скорее выбор стиля.

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

Лично я бы сделал следующее, если бы я действительно хотел сделать его читабельным:

function doSomething(myNumber)
{
   if(myNumber != null && myNumber > 5)
   {
       doTheThing();
   }
}

С другой стороны, если мне нужно меньше строк кода, я бы выбрал это:

function doSomething(myNumber)  {
    if(myNumber == null || myNumber <= 5)  return;
    doTheThing();
}

Также важно учитывать, каким должен быть оператор if. В этом случае вы охватите все возможности, но помните об этом, чтобы избежать непредвиденных ошибок.

person I A    schedule 03.04.2021