Про офигительное
Mar. 15th, 2012 01:01 amЗа двадцать лет я видел много плохого кода. Видел и наивный студенческий, и хамский профессорский, и загадочный индийский, и просто глупый, и ужасный.
Но сегодня я значительно расширил свои горизонты.
Реальность оказалась куда круче всех анекдотов. Проверка на равенство нулю перед присвоением нуля целой переменной - это самое безобидное и извинительное. Конструкции типа WTF! были щедро замешаны на ошибки типа OMG! Собственно, там кроме них ничего и не было. Разве что пара строчек, скопированных из какого-то учебника, да блок комментариев, который я удалил не читая.
На расшифровку и попытку понять, что программа должна была бы делать, если бы в ней не было столько бреда, ушло часов шесть чистого времени. И это на какой-то жалкий скрипт, в котором и с комментариями пол тысячи строк не наберётся.
Ошибки программа тоже производила загадочные и неожиданные. Подозреваю, время, за которое мне про них рассказывали, вполне бы хватило, чтобы написать всё с нуля. (Правильно, конечно, написать, да ещё и протестировать.) И это им ещё повезло, что формат исходных файлов настолько прост, что программе не удалось раскрыть и десятой части заложенного потенциала.
Хорошо, что автор в другом городе и другой стране. А так бы мог сказать случайно, что я по поводу этого думаю.
Но сегодня я значительно расширил свои горизонты.
Реальность оказалась куда круче всех анекдотов. Проверка на равенство нулю перед присвоением нуля целой переменной - это самое безобидное и извинительное. Конструкции типа WTF! были щедро замешаны на ошибки типа OMG! Собственно, там кроме них ничего и не было. Разве что пара строчек, скопированных из какого-то учебника, да блок комментариев, который я удалил не читая.
На расшифровку и попытку понять, что программа должна была бы делать, если бы в ней не было столько бреда, ушло часов шесть чистого времени. И это на какой-то жалкий скрипт, в котором и с комментариями пол тысячи строк не наберётся.
Ошибки программа тоже производила загадочные и неожиданные. Подозреваю, время, за которое мне про них рассказывали, вполне бы хватило, чтобы написать всё с нуля. (Правильно, конечно, написать, да ещё и протестировать.) И это им ещё повезло, что формат исходных файлов настолько прост, что программе не удалось раскрыть и десятой части заложенного потенциала.
Хорошо, что автор в другом городе и другой стране. А так бы мог сказать случайно, что я по поводу этого думаю.
no subject
Date: 2012-03-15 12:32 am (UTC)no subject
Date: 2012-03-15 12:51 am (UTC)Тут подобная ерунда была реализована в if - if - if ... if -if -конструкции. А на способ разбора передаваемых параметров я пялился минут десять. Человек знал, что в @_ что-то прячется, но выковыривал значения оттуда особо извращённым методом. Плюс функции значения не возвращали, а меняли глобальные переменные. Естественно, название переменных содержанию и смыслу не соответствовало.
Насчёт же ошибок, их мог произвести практически любой кусок когда, кроме тех, где стояли блоки присвоения значения переменным, которые нигде в коде не используются.
no subject
Date: 2012-03-15 06:51 am (UTC)no subject
Date: 2012-03-15 07:07 am (UTC)