Хватит пропускать мелкие детали - PullRequest
12 голосов
/ 10 октября 2008

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

Есть ли еще кто-нибудь, у кого была проблема, когда они впервые начинали пропускать некоторые детали, которые вызывают большие проблемы? Существуют ли какие-либо привычки или поведение, которые помогли вам преодолеть это?

Ответы [ 26 ]

0 голосов
/ 11 октября 2008

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

0 голосов
/ 11 октября 2008

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

if fred==bill dosomethingtofred() else dosomethingtobill();

Это часто приводит к ошибкам, особенно если код редактируется позже. Я также не брал в скобки тест здесь, поскольку это допустимо в некоторых языках и является потенциальным генератором ошибок. Сам я буду всегда , без исключения, структурировать оператор if в полном объеме, выложенный по всему языку, например

if (fred==bill) {
  dosomethingtobill();
}
else {
  dosomethingtofred();
}

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

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

0 голосов
/ 10 октября 2008

Мы все совершаем глупые ошибки, потому что мы люди.

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

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

0 голосов
/ 10 октября 2008

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

0 голосов
/ 10 октября 2008

Мы все делаем ошибки. Гении - это те, кто просто держит их на разделочной доске.

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

0 голосов
/ 10 октября 2008

Практика - чем больше кода вы напишите, тем больше опыта вы получите

Код повторного использования - код, который часто использовался, с наименьшей вероятностью содержит дефекты

Защитное кодирование - минимизировать создание рискованного кода, избегать эффектов краевых условий

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...