Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Я вижу в статье про рефакторинг следующие вещи, которые вызывают некоторое непонимание:
1) Магические константы
result += (data.days - 2) * 1.5;result = data.days * 3;result = 1.5;result += (data.days - 3) * 1.5;2) Самопальный шаблонизатор c захардкоденными строками
function htmlStatement(customer, movies) {
const data = createStatementData(customer, movies);
let result = `<h1>Rental Record for <em>${data.name}</em></h1>\n`;
result += "<table>\n";
for (let r of data.rentals) {
result += ` <tr><td>${r.title}</td><td>${r.amount}</td></tr>\n`;
}
result += "</table>\n";
result += `<p>Amount owed is <em>${data.totalAmount}</em></p>\n`;
result += `<p>You earned <em>${data.totalFrequentRenterPoints}</em> frequent renter points</p>\n`;
return result;
}3) switch-case с захардкоденными строками
switch (movie.code) {
case "regular": /*...*/ break;
case "new": /*...*/ break;
case "childrens": /*...*/ break;
}Можно было бы какое-нибудь подобие enum-а завести с этими значениями.
Да, согласен.
Просто в статьи про рефакторинг часто тычат пальцем и говорят, что мол надо делать также. А в этом коде есть к чему придраться.
Рефакторинг салона видеопроката на JavaScript