Ответ
Да, но только «правильные» комментарии. Цель комментария — объяснить «почему» и «зачем», а не «что» делает код (это должно быть понятно из имён переменных, функций и структуры).
Хорошие комментарии (рекомендуется):
- Объяснение сложной бизнес-логики или алгоритма.
- Причина неочевидного решения (например, обход известной ошибки в библиотеке).
- TODO / FIXME — отметки для будущих улучшений.
- Javadoc / KDOC / и т.п. — документация публичного API.
Плохие комментарии (избегать):
- Дублирование кода:
x = 5; // присваиваем 5 переменной x - Устаревшие: комментарии, не соответствующие текущей логике.
- Излишне эмоциональные или неформальные.
Пример:
// ПЛОХО: комментарий избыточен
int delay = 3000; // задержка в 3 секунды
// ХОРОШО: комментарий объясняет причину выбора значения
// Таймаут установлен в 3 сек, согласно SLA сервиса X (отвечает за 99% запросов)
int requestTimeoutMs = 3000;
// ХОРОШО: комментарий объясняет неочевидную оптимизацию
// Используем IdentityHashMap, т.к. нам важно сравнение по ссылкам (==),
// а не по значению (.equals()), для учёта циклических зависимостей.
Map<Node, List<Node>> adjacencyMap = new IdentityHashMap<>();
Пишите самодокументирующийся код, а комментариями поясняйте только нетривиальные решения.