😘 Не усложняй
Иногда я встречаю кошмарно сложный код по непонятным мне причинам. Человек решил задачу и видно, что оно завелось и он так оставил код. Не ленитесь, отрефакторите перед сдачей. Представьте, что вашим кодом потом будет пользоваться психопат, который любит опрятный и понятный код, он знает что это ваш код и где вы живете.
Все ...сложна, переделывай!
Начнем сразу с примера.
function move(key: number) {
let x = 0;
let y = 5;
if (key === 0) {
x = 10;
y = -10;
}
if (key === 1) {
y -= 50;
}
return {
x,
y,
};
}
Данный код имеет ряд проблем. И самая главная проблема, что здесь используется let
. Вторая, кажется, что несколько if
могут выполниться последовательно, но на самом деле это не так. Тертье - это разный способ рабы с переменными, во втором блоке почему-то используется прибавление.
Как это можно переделать? Избавляемся от let
и можно вернуть сразу значение. А чтобы сохранить дефолтное поведение создается переменная:
const defaultMove = {
x: 0,
y: 5, // gravity
};
function move(move: number) {
if (key === 0) {
return {
x: 10,
y: 10,
};
} else if (key === 1) {
return {
...defaultMove,
y: defaultMove.y + 50,
};
}
return defaultMove;
}