Смотрел недавно на код коллег, которые не читали "Совершенный код" и
И придумал вот такой вопрос для будущих собесов - "Какие требования к качеству кода ты считаешь самыми важными?". В дискуссии станет сразу понятно, насколько человек сможет писать командный код.
Вот мой личный топ:
- Readability/Understandability - насколько легко читать и понимать твой код.
- Testability - насколько легко протестировать код и написать для него автотесты по всей пирамиде тестирования.
- Maintainability - насколько просто делать новые фичи/чинить баги в коде.
- Observability - насколько легко отследить текущее состояние и локализовать ошибку.
Без соблюдения этих требований будет следующая безблагодатность:
- PR/MR review будет проходить более поверхностно (попробуй прочитать Stream или лямбду на два экрана). И чтение кода не будет обучать команду.
- RTO/RPO (как быстро вы поднимете упавший прод) упадут! Если код понимает только условный Вася, то в его отсутствие команда первые два часа будет пытаться понять, что имел ввиду автор.
- Упадет надежность приложения и заветные девятки вы не получите. Иногда хочется написать крутой тест, но время его написания сравнимо с реализацией самой фичи.
И так далее... Как следствие, у вас падает заветный Time to Market, на который яростно молятся все ведущие аджаел коучи. Да и в команде работать будет не так весело.
