Какие характеристики определяют хорошо написанный код?

«Какие характеристики определяют хорошо написанный код?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Хорошо написанный код — это код, который легко читать, поддерживать и расширять. Его основные характеристики:

1. Читаемость

  • Понятные имена переменных, методов и классов (calculateTotal() вместо calc()).
  • Соблюдение соглашений о стиле кода (например, Java Code Conventions).
  • Отсутствие "магических чисел", использование констант.

2. Простота и минимальная сложность

  • Следование принципу KISS (Keep It Simple, Stupid).
  • Избегание избыточной вложенности и сложных условий.
  • Выполнение одной четкой задачи на уровне метода/функции.

3. Тестируемость

  • Код модулен и имеет слабые связи.
  • Зависимости можно легко подменить (например, через внедрение зависимостей).
  • Методы возвращают предсказуемый результат.

4. Следование принципам проектирования

  • Применение SOLID, DRY (Don't Repeat Yourself), YAGNI (You Ain't Gonna Need It).

5. Документированность

  • Наличие Javadoc для публичных API и сложной логики.
  • Комментарии объясняют "почему", а не "что" делает код.

Пример на Java:

// ❌ Плохо: неочевидные имена, сложная строка, побочный эффект
void p(int a, int b) {
    if (a > b) System.out.println(a); else System.out.println(b);
}

// ✅ Хорошо: ясные имена, простая логика, одна ответственность
void printMax(int firstNumber, int secondNumber) {
    int max = Math.max(firstNumber, secondNumber);
    System.out.println(max);
}

Хороший код снижает стоимость поддержки и уменьшает количество ошибок.