BenderIsGreat34
@BenderIsGreat34
junior front-end

Как сделать рефакторинг кода?

Хочу научиться упрощать и улучшать код, но не понимаю с чего начать. Я не прошу переписать этот код, а дать советы какую информацию почитать, на что обратить внимания. Для примера взял такой код, который надо улучшить
5d5681d4bfa99643873995.jpeg
function​func(​s,​ ​a​, b​​) {
i​f​(s​.match(​​/^​$​/​)) { ​return​​-1​;​
}
v​ar​i ​=​s.l​ength​-​1​​; v​ar​aIndex =​​ -​1​​; v​ar​bIndex =​​ -​1​​;
w​hile​((aIndex =​=​-​​1​) ​&&​(bIndex =​=​​-​1​) ​&&​(i >​​​0​)) { i​f​(s​.substring(​i, i +​​1​) =​=​a) {
aIndex =​​i; }
i​f​(s​.substring(​i, i +​​1​) =​=​b) { bIndex =​​i;
}
i ​=​i -​​​1;​
}
i​f​(aIndex !​=​​-1​​) { i​f​(bIndex =​=​-​​1​) {
r​eturn​aIndex; }
e​lse​{
r​eturn​M​ath.m​ax​(aIndex, bIndex);
} }
i​f​(bIndex !​=​​-1​​) { r​eturn​bIndex;
} e​lse​{
r​eturn​-​​1;
}
}
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Почитать про принципы KISS , Dry . И про строгое/не строгое сравнение в JS.
Конкретно для данного кода - этого хватит, я думаю.

А вообще, для рефакторинга было бы неплохо понимать сложность базовых алгоритмов - ссылка , ещё ссылка

Ну, и хорошо знать язык. Например, не засорять глобальную область видимости var-ами в 2019 году :) Честно говоря, кажется можно вспомнить про метод indexOf и сократить эту функцию в разы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы