Истории с тегом: программизмы

Всего историй: 896

7019

Мы ждём перемен

Разбираю код. Описана переменная — флаг, который взводится при редактировании записи в таблице.

var FlagOfChange: boolean;

Как-то витиевато названа переменная. Но следом за ней идёт комментарий, который сразу всё ставит на свои места:

var FlagOfChange: boolean; {The future’s in the air, I can feel it everywhere blowing with the flag of change…} {Scorpions forever!}

Править название переменной у меня рука не поднялась.

7014

В чёрном-чёрном городе, на чёрной-чёрной улице, на голубом-голубом экране

Делаю базу в MS Access, строю форму. Даю имена полям: Город, Улица, Дом, Квартира, Город2, Улица2… Увидев следующее имя, перекрещиваюсь и меняю на ДругойДом.

6989

Даже не думай

Снова вести из «компании с мотороллерами». Молоко починили, что помогло доделать очередной релиз очередной программы. Вечер, официальный рабочий день закончился часов пять назад. Делаем установщик, в его настройках можно указать GUID программы. По умолчанию что-то уже указано, рядом есть странная кнопочка. Коллега два раза клацает — значение меняется.

— Вау, это же генератор GUID’ов! — говорю.

— Чёрт, да я же две штуки впустую потратил!

Пришлось помянуть их печальную судьбу минутой хохота.

В процессе создания инструмента использовался некий API без документации, только со скупыми комментариями в заголовочных файлах. Например, в описании одной функции было сказано: «If you’re thinking of using %functionName%, STOP WHAT YOU ARE DOING IMMEDIATELY. Go take a break». В общем, ждём ругани от тестеров (хорошо, если от них, а не от клиентов), так как другого варианта не было. Да и пропустить функцию с таким описанием было бы кощунством!

6979

Мисс SMALLINT

Крупная телекоммуникационная компания на востоке страны с кучей филиалов. Перед 8 марта проводится конкурс «Мисс очарование». На корпоративном портале размещена форма для голосования и фотографии участниц. Кто писал оную форму, неизвестно до сих пор, но значения переменных передавались в открытом виде, IP-адрес не проверялся на уникальность, регистрация отсутствовала. К концу второго дня за представительницу одного из филиалов проголосовало 32767 человек (при том, что в компании работает всего шесть тысяч). Прочие филиалы, увидев такую наглость, приступили к разработке орудий возмездия.

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

6974

Монитор с отпечатком безмятежности

У меня железные нервы. В моей работе это главное: я собираю СПО из разрозненных частей и надзираю за исполнением воли начальства. А начальство считает: если распоряжение дано, работа уже выполнена.

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

— А у меня версии не по дате, я их перенумеровал для удобства.

Смотрю — а него версий штук 25. Откуда столько?

— А я свои правки делаю и каждый раз сохраняю.

— Давай по дате искать.

— Не выйдет, я и старые иногда правлю.

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

— Имена я тоже поменял, мне твои имена нравятся.

— Давай исходники смотреть, своё как-нибудь узнаю.

— Что это?!

— Твой файл. Я переменные и константы тоже переименовал, так понятнее.

— А что за тарабарщина в комментариях?!

— Это эсперанто, я практиковался. Несправедливо, что международный язык английский, одним его учить надо, другие и так знают.

Ладно, логику вроде он не менял. Внимательно вчитываюсь в текст, призадумываюсь… Боковым зрением вижу, как чья-та рука выключает монитор.

— Что за?..

— Ты пять минут на одно место смотришь, а монитор там выгорает! Надо текст туда-сюда каждые полминуты двигать!

— Ну, выгорит — и чё? Его всё равно спишут через три года. И потом, от включения-выключения он быстрее сгорит.

— Вот, я его себе заберу, когда спишут. А так они его на свалку выкинут, и экология ухудшится! Я неисправную технику не выбрасываю — на дачу вывожу и в сарай складываю.

— То есть ты токсичную помойку на дому организовал! Ну что, молодец! Эко-о-лог…

— Ой! Я об этом как-то не подумал.

6970

Не бейте индуса — работает, как может

PowerBuilder. Клиентская программа. Звонит пользователь, жалуется на ошибку: не все данные выгружаются. Проверяю — действительно так. Обещаю разобраться.

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

// Что за индусский код выше?

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

Дело было так: коллега увидел кривоватый код, решил подправить и, как вы уже догадались, об изменении умолчал. Вместо громоздких if он организовал всё через цикл for, но забыл внутри кусок старого кода: i = i + 1. Естественно, программа вместо выгрузки данных по всем фирмам по порядку начинала выгружать их через одну.

Я добавила коммент:

// Индусский код выше хотя бы правильно работал.

6943

Тёмная энергетика переносов строк

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

Тут мне срывает крышу. Удаляю весь класс на фиг и переписываю его со скриншота — всё работает идеально. Повторяю для остальных мест, где замечены ошибки — опять работает!

Коллеги, похоже, я достиг дзена.

6921

Абрамович не согласен

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

Хватит баловаться! Нет у вас таких денег!

И это идёт в квитанцию.

6902

Сеньор старпёр

Я выросла в семье программистов и с детства верила:

а) в Деда Мороза;

б) в то, что программисты — люди взрослые и серьёзные;

в) в то, что чем старше программист, тем он квалифицированнее и опытнее.

Очень жаль, что вера в пункты «бэ» и «вэ» развеялась лишь немногим позже.

Коллеги! Вы — не студенты, сдающие недоделанную лабораторную работу и пытающиеся надуть преподавателя! Если вы говорите «да, я это сделал» или «я этого не делал», то так оно и должно быть на самом деле. О какой производительности команды может идти речь, если я никогда не могу быть уверена, что ваша часть работы над проектом действительно выполнена? Если вместо того, чтобы выполнять своё задание, я вычитываю ваш код, исправляю логические ошибки, вставляю недостающие кавычки и, прикрыв глаза рукой, заменяю ваши велосипеды с колёсами в виде лент Мёбиуса на вызовы существующих библиотечных функций? Ведь попытка вернуть вам модуль на доработку заранее обречена на неудачу. Сколько раз я уже слышала: «У меня всё работает. Должно же работать. Я же скопировал из другого рабочего модуля. Проверь сама, если так хочешь».

И главная проблема в том, что к моим возмущённым воплям никто не прислушается. Ведь я всего лишь junior по выслуге лет, в то время как вы — middle и senior. А вы говорите, блондинки…

6896

Сортировка пельмешком

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