- PVSM.RU - https://www.pvsm.ru -

Мир опечаток и Copy-Paste

Программисты допускают невероятное количество опечаток, простых логических ляпов и делают ошибки благодаря Copy-Paste. Приглашаю отпробовать их. Приятного аппетита.
Баги
Программисты часто думают, что ошибки, отнимающие больше всего времени очень сложные и коварные. А простые ошибки они не делают.

Это конечно не так. Делают, и в сумме тратят на их исправление огромное количество времени и сил. Просто мелкие ошибки не запоминаются. Гораздо лучше запомнится эпическое сражение с ошибкой синхронизации, отнявшей целый день. Да, сложные ошибки тоже могут отнимать много времени. Главное, что суммарный вред от мелких ошибок тоже может быть огромен. Подробнее эта мысль изложена в заметке: Миф второй – профессиональные разработчики не допускают глупых ошибок [1].

Проверяя различные проекты с помощью PVS-Studio, я пополняю базу найденных ошибок. Сейчас я выбрал те диагностические сообщения, которые выявляют: ляпы, опечатки и неправильный Copy-Paste. Читайте и ужасайтесь:

Это далеко не все глупые ошибки, но наиболее показательные. Желаю приятного просмотра. Весь список примеров находится здесь [13].

Автор: Andrey2008

Источник [14]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/pvs-studio/37521

Ссылки в тексте:

[1] Миф второй – профессиональные разработчики не допускают глупых ошибок: http://www.viva64.com/ru/b/0116/

[2] Copy-Paste и опечатки в условиях: http://www.viva64.com/ru/examples-V501/

[3] Путаница с приоритетами операций: http://www.viva64.com/ru/examples-V502/

[4] Одинаковые «if» из-за Copy-Paste: http://www.viva64.com/ru/examples-V517/

[5] Вредные опечатки: http://www.viva64.com/ru/examples-V519/

[6] Бессмысленные «if» из-за скопированных блоков: http://www.viva64.com/ru/examples-V523/

[7] Функции, изготовленные с помощью Copy-Paste: http://www.viva64.com/ru/examples-V524/

[8] Лишние точки с запятой ";": http://www.viva64.com/ru/examples-V529/

[9] Глупые ошибки, такие как проверка: unsigned переменная < 0: http://www.viva64.com/ru/examples-V547/

[10] Путать & и && — легко: http://www.viva64.com/ru/examples-V560/

[11] Как легко спутать длину строки и размер указателя: http://www.viva64.com/ru/examples-V579/

[12] Проверка указателей, сделанная «для галочки»: http://www.viva64.com/ru/examples-V595/

[13] здесь: http://www.viva64.com/ru/examples/

[14] Источник: http://habrahabr.ru/post/184848/