Зачем мне заботиться об отладке?

Большинство инженеров-программистов обладают глубокими знаниями о том, как кодировать действительно эффективную логику для решения кейса, или отличным пониманием того, как разработать хорошую конечную точку или функцию, которая может обеспечить действительно низкую задержку, но, вероятно, не все из них хороши в этом. отладка.

Хм, ну а зачем мне отлаживать, если я всегда кодирую код без ошибок? В реальной рабочей жизни, даже действительно умный в вашей команде, он / она может иметь ошибку, которая найден вашей командой инженеров по тестированию на этапе тестирования, и в этом случае ему / ей необходимо отладить службу.

Хм, ну что в этом такого сложного? Я написал код, я знал, что делаю, поэтому, зная только детали проблемы, я знал, как ее исправить. Иногда жизнь не так проста. И к этому моменту нам лучше подготовиться, чтобы помочь нам в отладке.

Знай своего врага, если хочешь выиграть войну! Если в вашей службе или вашей системе есть ошибка в производственной среде, значит, вы ведете войну с ошибкой! Было бы легче выиграть войну, если бы вы знали что-нибудь о своей ошибке. Представьте, как легко, если в вашей системе возникнет сбой (я надеюсь, что у нас его никогда не будет), и у вас есть все необходимые журналы, напечатанные на случай возникновения ошибки . Предположим, ваша конечная точка для получения списка заработной платы в вашей службе управления персоналом не возвращает никаких данных внезапно, команда отдела кадров вызывает вас в режиме паники, так как сегодня день выплаты жалованья, и теперь вы тоже в панике. думать, что вы, возможно, не сможете выплатить задолженность за этот месяц, если система не сможет произвести платеж вовремя, но поскольку у вас действительно правильная регистрация, всего за несколько секунд проверки журналов вы уже знаете основную причину, которая подключение службы к базе данных (БД) каким-то образом было отключено. Или гораздо лучше, если у вас есть хорошая интеграция мониторинга и предупреждений, система мониторинга обнаруживает соединение, потерянное раньше, сразу после его первого отключения, и отправляет вам предупреждение, даже если команда HR еще не осознала это, вы можете исправить это быстрее . За это очень короткое время вы можете обнаружить ошибку в процессе отладки. Но если журналы отсутствуют или в службу не интегрированы средства мониторинга и оповещения, для решения проблемы может потребоваться больше времени. Возможно, вам потребуется сначала воспроизвести проблему, или просмотреть код, или что-то подобное. Короче говоря, вы на шаг отстаете от своего врага.

Отладка состоит из двух больших частей: обнаружение основной причины ошибок и удаление ошибок. Я сам считаю, что если вы сможете определить основную причину ошибок, ваш прогресс в устранении проблемы составит 75%. Итак, в предыдущем примере следующий шаг - исправить это, обратившись за помощью к команде dba, или вам может потребоваться исправить соединение самостоятельно, и вы все равно сможете своевременно выплатить свой долг после успешной выплаты зарплаты.

В любом случае, понятно, с чего мне начать?

Ключ в том, что мы должны подготовиться к худшему. Начните с написания чистого кода. Написав в хорошем формате кода, объясните больше с помощью комментариев, подготовьтесь к правильному ведению журнала (убедитесь, что вы печатаете чистые журналы, содержащие что-то, на что вы можете ссылаться, например идентификатор запроса, но не печатайте никаких конфиденциальных данных) и имея хорошие документирование логики поможет вам, вашей команде и даже «будущему вам» в дальнейшем отладке любой функции в вашем сервисе.

Когда придет время, мы будем готовы продвигать наш код в производственную среду. Мы можем добавить больше полезных моментов, интегрировав наш сервис в хорошую систему мониторинга.

В дополнение к этому существует множество инструментов отладчика, основанных на используемом вами языке программирования, которые также могут помочь вам обнаружить любые ошибки или, по крайней мере, дать вам больше информации. Скажем, для Java у вас есть интегрированный отладчик в IDE, например Eclipse или NetBeans. Активировав режим отладки, вы можете приостановить выполнение Java-приложения, увидеть поток данных и проанализировать его. Это поможет вам в основном на этапе разработки, так как раньше мы избегали активировать режим отладки нашего сервиса на производственном уровне.

Последний, но тем не менее важный…

Отладка - это навык, которым должен обладать инженер-программист. Это то, что мы должны практиковать все больше и больше. Он сочетает в себе множество вещей, таких как общее логическое мышление программирования, знание системы (потока и кода), которую мы хотим отлаживать, наш опыт, помощь системы регистрации и мониторинга и многое другое, что может помочь нам в отладке.

Поскольку отладка - это то, чего мы почти не можем избежать даже в производственной среде, то, что мы можем сделать, - это подготовиться к сегодняшнему дню. Убедитесь, что мы предоставляем все данные (которые, конечно, можно безопасно раскрыть), которые нам нужно увидеть и знать в процессе отладки на случай, если с нашими прекрасными службами и системами произойдет непредвиденное состояние.

Если у вас другая точка зрения на отладку, поделитесь ею со мной. Мне бы очень хотелось поговорить об этом подробнее.