Я бы сказал, что важно понимать каждую деталь о том, почему некоторые ошибки возникали и почему определенные изменения устраняли эти ошибки, и среди разработчиков также часто бывает, чтобы программа работала, не зная деталей о том, почему исправление работало!
Искусство изменять вещи до тех пор, пока ошибка не исчезнет, не понимая, что вызвало ее или почему изменение исправило ее, часто называют «программированием вуду», и это не комплимент. На самом деле нет никакой возможности быть уверенным в том, что вы действительно исправили ошибку, в отличие от частичной ее исправления в конкретном случае, который вы расследовали, если вы не понимаете, что вызвало ее.
В худшем случае вы ничего не сделали, кроме как переместить ошибку: я помню, как с первого года обучения в универе, когда многие студенты впервые изучали C и указатели, ошибки указателей часто перестали проявляться, когда они меняли вещи. случайным образом, потому что изменения будут переупорядочивать структуры данных в памяти, достаточные для того, чтобы ошибка указателя растоптала другой бит памяти. Очевидно , что не помогло вообще .
Но, несмотря на это, коммерческие реалии программирования часто таковы, что удовлетворение клиента исправленной ошибкой важнее, чем удовлетворение себя. Я никогда бы не рекомендовал вам объявить нечто застывшее , если вы не имели ни малейшего представления , что послужило причиной, но если вы можете увидеть , что некоторый код было проблематично, и переработал его, даже если вы «не 100% уверен» , как это вызвало специфическое ошибка, чтобы проявиться, иногда вам просто нужно перейти к следующей ошибке, прежде чем клиент будет слишком громко кричать о вашем медленном прогрессе.