Чистый код — основы
Чистый код — это код, который легко читать и менять, не только тот, что просто работает. Код пишется один раз, а читается потом десятки раз — другими людьми и тобой же через полгода.
Понятные имена — главное и самое дешёвое улучшение:
// ❌ плохо
int d; // что такое d?
List<int[]> l; // список чего?
// ✅ хорошо
int daysSinceLastLogin;
List<int[]> coordinates;
Маленькие методы, делающие одну вещь:
// ❌ плохо: один метод делает всё сразу
void processOrder(Order order) {
// 50 строк: валидация, расчёт, сохранение, отправка письма...
}
// ✅ хорошо: имя метода объясняет, что он делает
void processOrder(Order order) {
validate(order);
calculateTotal(order);
save(order);
notifyCustomer(order);
}
Копнуть глубже
Правило бойскаута: оставляй код чище, чем он был до тебя. Не обязательно переписывать весь файл — но если правишь метод и видишь рядом плохое имя переменной, переименуй заодно. Маленькие постоянные улучшения со временем заметно поднимают качество всей кодовой базы.
Избегай магических чисел/строк:
// ❌ плохо: что значит 0.13?
double tax = price * 0.13;
// ✅ хорошо: имя объясняет смысл числа
static final double VAT_RATE = 0.13;
double tax = price * VAT_RATE;
Комментарии — не оправдание плохому имени. Если приходится писать комментарий, объясняющий что делает метод — лучше переименовать метод так, чтобы комментарий не понадобился. Комментарии нужны для “зачем” и неочевидных решений, а не для пересказа кода (подробнее — в теме «Комментарии и формат»).
• что такое "правило бойскаута" и магические числа (если дошёл до 2-го слоя).