bash.im ithappens.me zadolba.li
6970

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

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

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

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

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

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

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

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