Хабы: Блог компании RUVDS.com, Программирование, Совершенный код, Управление разработкой, Управление проектами
Программисты должны быть параноиками.
- «Я дважды проверил код»
- «Код проходит все тесты»
- «Ревьюер одобрил мой код»
«Так ли корректен мой код?»
Писать код корректно трудно, а подтвердить корректность кода невозможно.
Вот некоторые из причин этого:
- Всеобщность: даже если код правильно вёл себя один раз, будет ли он вести себя так во всех случаях на всех машинах и всегда?
- Ложное прохождение теста: непрохождение тестов указывает на наличие багов, но прохождение текстов не гарантирует их отсутствия.
- Отсутствие определённости: можно написать формальное доказательство корректности кода, но теперь нужно задаться вопросом, корректно ли доказательство. Потребуется доказать доказательство. Эта цепочка проверки проверок никогда не закончится.
Безумно было бы стремиться к определённости корректности кода. Баг может скрываться в зависимости, которую вы никогда не найдёте. Однако отчаиваться не стоит, всё равно можно снизить вероятность багов, расширяя своё понимание и внимательность.
Читать дальше →