The Daily WTF на русском
Подписаться
CodeSOD: Годовой Отчет
Михаилу было поручено модернизировать отчеты мейнфреймов, что включало расшифровку старого кода Intelligent Query. Целью проекта было точное воспроизведение поведения старой системы в новой, с тестированием, основанным на сравнении выходных данных. После преобразования одного отчета результаты не совпали с оригиналом. Михаил обнаружил несоответствие в переменной TODAYS-365, используемой в отчете под названием "Annual" (Годовой). В то время как обновленный отчет корректно извлекал данные за один год, оригинальный код содержал странную строку: SUBTRACT TODAYS-DATE MINUS 426 GIVING TODAYS-365. Этот расчет означал, что оригинальный отчет на самом деле захватывал данные за прошедший год плюс примерно два месяца. Предполагается, что изменение требований к отчетности, возможно, связанное с финансовыми годами, привело к этому вводящему в заблуждение названию переменной и расчету, которые оставались незамеченными годами. Исправление было простым, но первопричиной проблемы стало накопление неясного и вводящего в заблуждение кода с течением времени. Это подчеркивает, что реальная проблема с устаревшими системами заключается не в самих языках программирования, а в слоях накопленного, часто плохо документированного "хлама".