Bash.org.ru IT Happens Истории ## 8501 – 8600 [Bashorgru IT] (fb2) читать постранично, страница - 28

- Bash.org.ru IT Happens Истории ## 8501 – 8600 (а.с. bash.org.ru it happens -79) 278 Кб, 74с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - Bashorgru IT

 [Настройки текста]  [Cбросить фильтры]

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


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

(обратно)

3

#8487: Гений: переаттестация

20:45 10.02.2012, IT happens


Опа, ещё один тру-программер (История #8476) нашёлся. Забыл я как-то про этот психотип. Универсальный всемогутер и писатель универсальных всемогутеров.


Ну, парсеров-интерпретаторов за 25 лет я написал немало, включая собственные ActiveX скриптинг-языки и парсер PDF. Не затруднит написать и ещё десяток — Yacc не забывается. Но если меня просят написать «2 + 2», я пишу «2 + 2», а не универсальный всемогутер с конфиг-файлом на пять мегабайт XML. Почему? Ошибки в коде будут всегда, а отлаживать визивиг-редактор формул несколько сложнее, чем printf("%d", 2+2), не находите?


Степень сферичности коня в вакууме тоже надо ограничивать. У меня в работе одновременно до десятка компиляторов и операционок, так что найти, где упадёт самая «несферичная» и устойчивая программа, я могу за пять минут. На 50% машин она просто не соберётся.


За полчаса багу в проекте отыскать? Вот у меня проект на двух человек с 300 мегами чужих исходников весьма разного качества, поскольку портируем. Охотно верю, что найдёте и отличите ошибку портирования от неверных входных данных или баги, пришедшей с исходной платформы. За полчаса. И поправите. Особенно если причиной падения в одном модуле послужило неправильное (знаковое-беззнаковое) представление char при компиляции другого модуля — не поправили make.


Опять-таки, в настройки можно вынести всё, включая алгоритм, и из программы получится интерпретатор кривого самопального скриптового языка без чётких правил и грамматики, который только по недоразумению считается конфиг-файлом. То есть задача программирования перекладывается на пользователя, и это программирование без IDE и отладчика по недоразумению будет называться «правкой конфига». И бедный юзер будет копаться, портить данные, мега-универсальная программа будет ломаться, а программеры будут её чинить. А автор чудо-кода уволился, искать смысл в 300 мегах исходников на С++ — дело неподъёмное. Ни в чём не повинные молодые программисты просто обязаны городить костыли, лишь бы не падало. Их не ругать, а жалеть надо. Напиши гений что-нибудь попроще — глядишь, и исправления были бы адекватнее. Вот и выходит, что польза от всемогутера вполне компенсируется в ближайший год поддержкой того, что он написал.


Я не пишу абсолютные пути, но делаю только то, что просят. Я чётко знаю, в каком вакууме и с какой сферичностью могут работать мои программы, и не строю иллюзий. Я ас в написании костылей, потому что переписывание 300 мегов как-то занимает больше времени, чем точечные правки. Правда, костыли эти потом коллекционируют и собирают в библиотеку под именем «portability layer».


Просто я не озабочен поддержанием статуса гения.

(обратно)

4

#8479: Сжёг нервы — спас дерево

13:00 10.02.2012, IT happens


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


Начнём с самого начала. Большинство банкоматов моего города не понимают нажатие кнопки Enter на цифровой клавиатуре после ввода PIN. Только кошерная боковая кнопка, соответствующая надписи «Продолжить».


Идём дальше. У большинства банкоматов в меню выбора суммы есть пункты, которые попросту не работают, ибо номиналом они меньше, чем может выдать банкомат. Например, нажимаем мы 10 или 25, на что железный ящик радостно рапортует: «Минимальная сумма — 50».


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


Выдавать сначала деньги, потом чек и только потом карту — особый шик. В таких банкоматах я встречал забытые карты особенно часто.


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