Каковы хорошие стратегии для исправления ошибок, когда код становится более сложным? - PullRequest
17 голосов
/ 13 февраля 2009

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

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

Итак, насколько важны ошибки для людей с профессиональной подготовкой?

Спасибо - Эл С.

Ответы [ 14 ]

1 голос
/ 13 февраля 2009

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

1 голос
/ 13 февраля 2009

Противные ошибки случаются со всеми, от профессионалов до любителей. Действительно хороших программистов просят отследить действительно неприятные ошибки. Это часть работы. Вы будете знать, что сделали это как разработчик программного обеспечения, когда будете смотреть на неприятную ошибку в течение двух дней и в отчаянии кричите: «Кто написал эту чушь! ... только чтобы понять, что это был ты. : -)

Часть умения разработчика программного обеспечения - это способность держать большой набор взаимосвязанных предметов прямо в его голове. Похоже, вы обнаруживаете, что происходит, когда ваша ментальная модель системы разрушается. С практикой вы научитесь разрабатывать программное обеспечение, которое не кажется таким хрупким. Существует множество книг, блогов и т. Д. По теме разработки программного обеспечения. И Stack Overflow, конечно, для конкретных вопросов.

Все, что сказано, вот пара вещей, которые вы можете сделать:

  1. Хороший отладчик неоценим. Часто вам нужно построчно просматривать код, чтобы понять, что пошло не так.
  2. Используйте язык для сбора мусора, такой как Python или Java, если это имеет смысл для вашего проекта. GC поможет вам сосредоточиться на том, чтобы заставить вещи работать, а не увязнуть в безумных ошибках памяти.
  3. Если ты пишешь C ++, научись любить RAII.
  4. Написать много кода. Программное обеспечение является своего рода искусством. Много практики сделает вас лучше.

Добро пожаловать в переполнение стека!

1 голос
/ 13 февраля 2009

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

Программисты Subpar склонны создавать больше ошибок.

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

0 голосов
/ 13 февраля 2009

Если вы не очень хорошо организованы, ваша кодовая база станет вашей собственной Zebra Puzzle . Добавление большего количества кода похоже на добавление большего количества людей / животных / домов в вашу головоломку, и вскоре у вас в головоломке будет 150 различных животных, людей, домов и сигаретных брендов, и вы поймете, что для добавления трех строк кода вам понадобилась неделя, потому что все настолько взаимосвязано, что для того, чтобы код по-прежнему выполнялся так, как вы хотите, требуется вечность.

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

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