Выбрать главу

Чудеса бывают. Только поганые.

#10824: По рукам, пока не поздно

12:45 10.04.2013, IT happens

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

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

В третьем проекте будем использовать некие абстрактные имена. Удачные функции вынесем в библиотеку, оставив в базовом модуле только специфические процедуры.

В четвёртом проекте подключаем библиотеку, пишем функциональность быстро и легко. Но что это? Где-то возникает странный глюк. Расставляем контрольные точки, пишем в логи запросы, ответы, сравниваем. Расковыриваем изящный код, раздёргивая его на промежуточные переменные. Ура, найдена причина! Интернет-эксплорер (ну конечно, кто бы мог подумать) при запросе передаёт некоторые параметры немного не так, как все остальные браузеры. Пишем патчи к библиотеке, добавляем проверки и подстановки, запускаем — победили! Отключаем пока логи, но когда-то изящный код теперь наполовину состоит из неочевидных по смыслу проверок, кучи промежуточных переменных и так далее.

В пятом проекте подключаем библиотеку, копируем кусками код из третьего и четвёртого. Да, комментарии не всегда соответствуют: при чём тут «списки людей», если мы считаем машинокомплекты? Но код-то один и тот же.

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

— Так, вот тут мы дадим осмысленные имена, ведь у нас не какие-то абстрактные элементы, а баллоны с кислородом!

— А вот тут зачем так? Ведь все вычисления можно записать в одну строку!

— А почему здесь использованы примитивные IF — ELSE, ведь можно применить метод Лоренца — Шагенца для структурных инвариантов!

И хочется взять большую деревянную линейку — и по рукам ему, по рукам, пока не поздно…

#10825: Месседжбокс не обманет

12:45 10.04.2013, IT happens

2002 год, один из московских вузов, айтишная кафедра, третий курс. Бабушка лет шестидесяти ведёт один из тех бесконечных предметов, который все студенты называют только по фамилии преподавателя, а названия и не знают — какие-то очередные «системы» или «технологии». Бабушка раньше, несомненно, была неплохим специалистом, а сейчас уже явно не в тонусе — её проще представить на даче с внуками, чем в университете. К преподам старшего поколения я отношусь с уважением: есть такие, кто в 80 лет замечательно учит студентов, тем более что смены им зачастую нет. К тому же они проработали в этой сфере далеко не один десяток лет. Для молодых преподавательская деятельность в лучшем случае хобби, а в худшем — лишь дополнительный заработок. Но всё-таки рано или поздно приходит момент, когда пора на покой. Тем более в сфере IT, где всё меняется стремительно.

Так вот, бабушка эта на лекциях тупо бубнила методичку. Ходили к ней лишь девочки, за весь срок обучения не сделавшие самостоятельно и 10% своих работ, и люди, желающие иметь по окончании красную корочку. Я всегда в подобных случаях искреннее полагал, что лучше иметь лишних два свободных часа в неделю и «хорошо» в зачётке, чем отрабатывать пятёрку попой.

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