The Daily WTF на русском
Подписаться
CodeSOD: Низведенный набор данных
Инструменты объектно-реляционного отображения (ORM) предлагают такие преимущества, как типобезопасность, благодаря отображению реляций базы данных на типы языков программирования. Однако конкретный пример подчеркивает плохие практики кодирования. Код итерирует по отключенному набору данных ADO.NET, который моделирует данные базы данных в памяти. Доступ к таблицам по индексу (например, Table(0)) вместо имени неэффективен. Что более важно, цепочка получения данных излишне многословна и подвержена ошибкам. Код многократно вызывает методы, такие как ToUpper и ToString, для полей данных. Эта цепочка становится абсурдной из-за избыточных вызовов ToUpper для "Tachometer". Обработчик исключений используется для потенциальных нулевых значений, а не для ошибок подключения к базе данных. Этот обработчик не проверяет конкретные исключения, предполагая, что только нулевые значения вызывают проблемы. Изменение схемы таблицы сломало код, изменив индексацию столбцов, но обработчик скрыл ошибку. Пользователи столкнулись с неисправной функциональностью, такой как отсутствие записей "Pump Bracket", без четких сообщений об ошибках. Закомментированное сообщение в окне предполагает, что частые нулевые ошибки перегрузили пользователей.