- PVSM.RU - https://www.pvsm.ru -
Перевод книги Раяна Макдермота чистый код [1] адаптированной под javascript.
Плохо:
const yyyymmdstr = moment().format('YYYY/MM/DD');
Хорошо:
const yearMonthDay = moment().format('YYYY/MM/DD');
Плохо:
getUserInfo();
getClientData();
getCustomerRecord();
Хорошо:
getUser();
Мы будем читать код чаще, чем мы когда-нибудь напишем. Важно писать читаемый код, который легко искать. Делайте ваши имена для поиска. Такие инструменты, как buddy.js [3] и ESLint [4] могут помочь идентифицировать неназванные константы.
Плохо:
// Что значит 86400000?
setTimeout(() => {
this.blastOff();
}, 86400000);
Хорошо:
// Объявляйте их как глобальные переменные.
const MILLISECONDS_IN_A_DAY = 86400000;
setTimeout(() => {
this.blastOff();
}, MILLISECONDS_IN_A_DAY);
Плохо:
const address = 'One Infinite Loop, Cupertino 95014';
const cityStateRegex = /^[^,\]+[,\s]+(.+?)s*(d{5})?$/;
saveCityState(address.match(cityStateRegex)[1], address.match(cityStateRegex)[2]);
Хорошо:
const address = 'One Infinite Loop, Cupertino 95014';
const cityStateRegex = /^[^,\]+[,\s]+(.+?)s*(d{5})?$/;
const [, city, state] = address.match(cityStateRegex);
saveCityState(city, state);
Явное лучше, чем неявное.
Плохо:
const locations = ['Austin', 'New York', 'San Francisco'];
locations.forEach((l) => {
doStuff();
doSomeOtherStuff();
// ...
// ...
// ...
// Что значит `l`?
dispatch(l);
});
Хорошо:
const locations = ['Austin', 'New York', 'San Francisco'];
locations.forEach((location) => {
doStuff();
doSomeOtherStuff();
// ...
// ...
// ...
dispatch(location);
});
Если ваше имя класса / объекта говорит вам что это, не повторяйте тоже при именовании его свойств и методов.
Плохо:
const Car = {
carMake: 'Honda',
carModel: 'Accord',
carColor: 'Blue'
};
function paintCar(car) {
car.carColor = 'Red';
}
Хорошо:
const Car = {
make: 'Honda',
model: 'Accord',
color: 'Blue'
};
function paintCar(car) {
car.color = 'Red';
}
Плохо:
function createMicrobrewery(name) {
const breweryName = name || 'Hipster Brew Co.';
// ...
}
Хорошо:
function createMicrobrewery(breweryName = 'Hipster Brew Co.') {
// ...
}
Автор: BoryaMogila
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/233283
Ссылки в тексте:
[1] чистый код: https://github.com/ryanmcdermott/clean-code-javascript
[2] Введение: https://habrahabr.ru/post/319472/
[3] buddy.js: https://github.com/danielstjules/buddy.js
[4] ESLint: https://github.com/eslint/eslint/blob/660e0918933e6e7fede26bc675a0763a6b357c94/docs/rules/no-magic-numbers.md
[5] Источник: https://habrahabr.ru/post/319476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.