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