Option Strict
, очевидно, не может заменить хорошее юнит-тестирование, но и наоборот. В то время как модульное тестирование может обнаруживать те же ошибки, что и Option Strict
, это означает, что в модульных тестах ошибок нет, что модульное тестирование проводится часто и рано, и т. Д. ...
Написание хороших модульных тестов не всегда тривиально и требует времени. Однако компилятор уже реализует некоторые тесты - в форме проверки типов. По крайней мере, это экономит время. Скорее всего, это экономит много времени и денег (по крайней мере, иногда), потому что ваши тесты были ошибочными / не охватывали все случаи / забыли учесть изменения в коде.
Подводя итог, нет гарантии, что ваши юнит-тесты верны. С другой стороны, существует строгая гарантия того, что проверка типов, выполняемая компилятором, является правильной или, по крайней мере, ее сбои (непроверенная ковариация массива, ошибки с циклическими ссылками…) хорошо известны и хорошо документированы.
Еще один итог: Да, Option Strict On
- определенно лучшая практика. На самом деле, я годами работал в таких онлайн-сообществах, как этот. Всякий раз, когда кому-то требовалась помощь по коду, в котором явно не было включено Option Strict
, мы вежливо указывали на это и отказывались оказывать дальнейшую помощь, пока это не будет исправлено. Это экономит так много времени. Часто проблема исчезла после этого. Это в некоторой степени аналогично использованию правильного HTML при обращении за помощью на форуме поддержки HTML: недействительный HTML может работать, но, опять же, это может и не быть причиной проблем. Поэтому многие профессионалы отказываются помогать.