Прекратить просмотр второстепенных деталей

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

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

Ответ 1

Вот список распространенных ошибок и/или предложений, чтобы избежать их:

  • Опыт, лучший способ избежать ошибок - это уже иметь их с вами.
  • Просмотрите код других людей.
  • Попросите других людей просмотреть ваш код.
  • Используйте источник управления, даже если вы являетесь единственным разработчиком
  • Просмотрите все свои изменения перед выполнением фиксации для управления исходным кодом.
  • Рассмотрите возможность использования более современного языка, который затрудняет вам совершение ошибок.
  • Внимательно комментируйте свой код.
  • Рефакторинг кода рано и часто
  • Исправить ошибки перед добавлением функций
  • Создавайте обширные тестовые примеры, потому что знание о ваших ошибках помогает быстрее избежать будущих.
  • Изучите и используйте шаблоны проектирования.
  • Избегайте дублирования кода любой ценой, старайтесь никогда не копировать/вставлять блоки кода
  • Прочитайте о некоторых распространенных ошибках на используемом вами языке программирования.

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Сделать ошибки, узнать, а лучше - не игнорировать их. p >

Ответ 6

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

Ответ 7

Я добавлю еще один голос, чтобы "практика делала совершенным", но с небольшим выбором:

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

  • модульное тестирование
  • читаемое форматирование кода
  • имена полезных переменных
  • контроль источника для истории изменений

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

Ответ 8

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

Ответ 9

Хорошее суждение исходит из опыта.

Опыт исходит из плохих оценок.

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

Ответ 10

Вы хорошо начинаете - признавая, что вы не все это выяснили. Никто из нас не делает.

Удостоверьтесь, что вы понимаете домен - это устранит некоторые ошибки сразу с места в карьер. Знайте, что вы решаете, а затем приступайте к разработке решения.

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

Если вы разработаете систему, чтобы свести к минимуму "немые" ошибки, вы обнаружите, что они уйдут. Возможно, контрольный список будет работать. Личный программный процесс поощряет такой подход. Попробуйте и посмотрите, работает ли он.

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

ДАЛЬНЕЙШЕЕ из этого исходит из опыта, по существу, из времени, делая то, что вы делаете, и учитесь на своих ошибках!

Ответ 11

Всегда придерживайтесь "Keep It Simple"! У вас меньше шансов совершить ошибки, если вы все упростите.

RWendi

Ответ 12

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

Ответ 13

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

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

void MyMethod(String some_input)
{
   if (some_input == null)
   {
      some_input = "";
   }
}

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

void MyMethod(String some_input) {
  if (some_input == null) {
    some_input = "";
  }
}

Если там где-то отсутствует какая-то скобка, это очень трудоемко, чтобы ее найти!

Ответ 14

Комментарий хорошо.

Проложите свой код хорошо.

Имеют значащие имена переменных.

Ответ 15

Как правило, БОЛЬШИЕ ошибки происходят от погружения и написания программного обеспечения, прежде чем думать об этом. Я использую 2 программиста, и здесь я настаиваю, чтобы они это делали. Это имеет большое значение.

Нарисуйте экран, который вы разрабатываете на бумаге, и определите, как все работает как можно до кодирования. Покажите это своему боссу/клиенту/кому-то другому. Объясните им это. Попросите их критиковать его.

Никогда не начинайте писать код, пока не подумайте об этом как UML. Вам не обязательно быть экспертом UML, но диаграммы классов показывают:

  • Наследование
  • Агрегация (например, этот сайт состоит из пользователей, пользователи делают несколько сообщений, сообщения могут иметь несколько комментариев от других пользователей).

Будет иметь огромное значение, чтобы не думать об этом вообще.

Сохраняйте свои функции небольшими - не более, чем 30 строк, часто меньше. Это поможет вам структурировать ваш код.

Ответ 16

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

публичная строка GetName (int custID)       {

        // Create local variables

        // Get the connection string from the config file

        // Create Try Catch Finally block

        // Create SQL parameters 

        .... etc

    }

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

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

Ответ 17

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

Ответ 18

Мой единственный совет, о котором уже не упоминалось, и который помогает мне на регулярной основе, заключается в следующем: до того, как я внесу существенные изменения, будь то код или документация, я всегда буду делать перерыв на 10-15 минут раньше фактически завершая изменение. Обычно перерыв позволит мне вернуться и, что еще важнее, не инвестировать в изменения, и большинство моих вещей становится очевидным из-за этого. Это обычно более полезно, когда вы единственный человек, который работает над чем-то, иначе вы можете просто получить Peer Review, который обычно превосходит.

Ответ 19

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

Ответ 20

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

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

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

Ответ 21

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

Повторный код использования кода, который использовался много, наименее вероятно содержит дефекты

Оборонительное кодирование - свести к минимуму создание рискованного кода, избежать эффектов краевого состояния

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

Ответ 22

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

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

Ответ 23

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

Ответ 24

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

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

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

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

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

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

Ответ 25

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

Ответ 26

Я верю в простую вещь.

Код один раз, правый код.

И чтобы получить это (для меня в любом случае), мне нужно полностью мысленно мысленно мысленно мысленно мыслить проблему, прежде чем что-либо делать. Если я не понимаю проблему полностью, я очень не решаюсь продолжать.

Тем не менее, иногда вам нужно пересечь линию и просто посмотреть, что на другой стороне, не зная.