The Daily WTF на русском
Подписаться
Представительная линия: Оба варианта меня раздражают
Отладка кода часто приводит к появлению в производственной среде странных и иногда бессмысленных выражений. Один из таких случаев связан с SQL-запросом, содержащим необычное условное предложение. Проблемная часть запроса выглядит так: WHERE (некоторые условия) AND (1 = 0 OR (1 = 1 AND (другие условия))). Такая структура позволяет переключаться между всегда возвращаемыми строками или возвращаемыми строками на основе основных условий, манипулируя частью "1 = 0". Также возможно настроить его так, чтобы он никогда не возвращал строки, хотя его полезность сомнительна. Автор предполагает, что это, вероятно, остатки отладочных флагов, которые так и не были удалены. Такие оставшиеся флаги указывают на недостаток наблюдаемости кода. Как и многие подобные флаги, они не документированы и, похоже, присутствуют с момента выпуска кода. Запрос, вероятно, возник как временный инструмент для аналитика, прежде чем стать постоянной хранимой процедурой. Наличие этих "мертвых" флагов указывает на более широкую проблему в практике разработки и развертывания.