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

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

#5360: Инверсионный след быдлокодера

14:00 03.02.2011, IT happens

Привет! Я тот самый быдлокодер. Судя по всему, я разбудил нехилый флейм со стороны обиженных тру-программеров, и все бросились поучать, как надо писать код. Смешно. Во-первых, это одна из основных отличительных черт тру-программеров: с пафосом учить других. Заметьте, я не учил, а констатировал факты. Ну, а во-вторых… Поехали по пунктам.

Человек — девайс аналоговый. При обработке информации оным девайсом часть информации замещается белым шумом. То есть косяки и баги будут всегда, пока нам не вставят чипы вместо мозгов, и никуда от этого не денешься. Поэтому рассказы о том, что 25-летний программер нашёл 40-летнюю багу, ничего удивительного не содержат. За каждым программистом остаётся след, как за сбитым самолётом, только из багов.

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

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

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

Наконец, вопрос «как писать код?» лишён смысла: программер, как правило, имеет дело с уже написанным кодом. Солдат в бою живёт три минуты, а на марше — несколько часов, поэтому в уставе армии США маршам уделено в несколько раз больше места. Прагматично.

Вот и выходит, что (по крайней мере для меня) единственный способ не писать фигню — не писать вообще. А если писать — то по минимуму, тупо до дебилизма и исключая «творческую и эстетическую составляющую». То есть писать как автомат, ремесленник, чернорабочий. Быдлокодер.

#5361: О бесполезной красоте сложных решений

14:00 03.02.2011, IT happens

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

По закону Мёрфи под «семёркой» устройство не запустилось. Ладно, попробуем из-под пингвинов. Зря я так ядро оптимизировал! Модем юзается только как кардридер. Подумал и запустил соединение с сетью из-под винды, которая коннектится к прокси на виртуалке с ХР, настроенной из-под линукса, к которой по виртуальному USB-порту подключён модем.

К концу пятичасовой настройки я вспомнил, что в трёх минутах ходьбы от дома есть кафе с вайфаем.

#5362: Весь в напряжении

14:00 03.02.2011, IT happens

Не знаю, то ли обидел ли я чем свой компьютер, то ли законы физики всё это подстроили, но произошла со мной давеча такая история.

Сижу я как-то раз на работе, код пишу. Понадобилось достать какую-то вещь из-за монитора. Протягиваю руку и — бац! — получаю хороший разряд статики от корпуса. Одновременно USB-мышь перестаёт реагировать на движения, а в трее выскакивает сообщение: «Потеряно USB-подключение к блоку бесперебойного питания». Приплыли — похоже, полетел USB… В надежде переподключить хотя бы мышь к рабочему разъёму лезу рукой за системник и снова получаю разряд, на этот раз от задней стенки. Смотрю — мышь вновь функционирует нормально. Разумеется, я с радостью продолжаю работу.