group-telegram.com/it_secur/3852
Last Update:
🩼 "Временные" костыли...
• Нет ничего более постоянного, чем временное решение. Любой ИТ специалист хоть раз лепил костыль на скорую руку - потом перепишем, потом сделаем нормально. Но "потом" обычно не наступает, и в итоге времянка живёт в продакшене годами, переживает релизы и смену команд, а иногда становится частью продукта.
• В 90-е многие приложения определяли версию ОС предельно примитивно: например, искали в строке "9" и считали, что перед ними Windows 95 или 98. Соответственно, если бы Microsoft выпустила "Windows 9", такие программы легко приняли бы её за Windows 95/98, и последствия предсказать было бы сложно.
• Microsoft всегда трепетно относилась к обратной совместимости, поэтому версия про "костыльный" код звучала правдоподобно. Официально в компании объясняли пропуск "девятки" маркетингом и желанием подчеркнуть разрыв поколений. Но факты подтверждали миф: в открытых репозиториях реально находили куски кода на Java, где проверка шла именно по названию ОС, а не по номеру версии. То есть такие костыли действительно существовали. Ирония в том, что из-за них у нас нет Windows 9, а "десятка" стала новой точкой отсчёта для всей планеты.
• Другой из классических примеров "вечного костыля" - история с високосным 1900 годом в Microsoft Excel. Если ввести в таблицу дату 29 февраля 1900-го, программа примет её как корректную, хотя в календаре такого дня никогда не существовало (если что, 1900-й год не был високосным).
• И это не случайный баг, а вполне осознанное решение разработчиков. Дело в совместимости с легендарным табличным процессором Lotus 1-2-3. Когда-то его создатели решили считать 1900-й високосным, чтобы не усложнять расчёт дат. Microsoft, создавая Excel, пошла на хитрость - скопировала логику Lotus вместе с ошибками. Так Excel стал считать 1900 год високосным, чтобы пользователи без проблем импортировали таблицы из Lotus, даже если даты там изначально были неправильными.
• Разумеется, со временем костыль обернулся проблемами. Формально в Excel появилось смещение. Microsoft знает об этом и прямо говорит, что исправлять баг слишком дорого. Любая попытка "починить" приведёт к тому, что миллионы старых файлов окажутся сдвинутыми на один день, формулы перестанут работать, а совместимость разрушится.
• В итоге компания оставила всё как есть. Пострадала только одна функция - вычисление дня недели для дат до 1 марта 1900 года. Но такие экзотические значения почти никто не использует, поэтому аномалия живёт по сей день, а фантомный 29 февраля 1900-го превратился в мем. Такие вот костыли...
#Разное
BY infosec

Share with your friend now:
group-telegram.com/it_secur/3852
