CodeSOD: Копия копии Заметка
The Daily WTF на русском

CodeSOD: Копия копии

Джессика работает над устаревшим приложением Windows Forms, которое использует устаревший API. Ей было поручено расследовать отчет с плохим производительностью. Кодовая база описана как спагетти-код с множеством неэффективностей. Джессика обнаружила метод под названием GetReportDiscounts, который выполняет запрос SQL, но парадоксально выполняет суммирование в C#, которое уже присутствует в SQL. Этот метод также игнорирует свои собственные параметры даты и использует магическое число для фильтрации. Другой метод, GetReportTotals, почти идентичен, но использует другое магическое число. Оба этих метода происходят от более раннего метода GetCancelledInvoices, который правильно использует параметры даты. Однако GetCancelledInvoices также выполняет фильтрацию в C#, а не в запросе базы данных. Джессика обнаружила, что actual проблемный отчет был вариацией этих методов, полагаясь на клиентскую обработку для манипуляции данными. После рефакторинга этого отчета в хранимую процедуру SQL с надлежащим индексированием производительность значительно улучшилась. Статья подчеркивает общую проблему копирования кода и выполнения операций базы данных неэффективно в слое приложения.