Awesome Falsehood - когда «очевидные» вещи оказываются ложью

27 Apr, 2026
27,452
🔱 639
👥 375

Awesome Falsehood header image

«Это же очевидно!» — сказал разработчик перед багом

Знакомо чувство, когда ваш код работает в 99% случаев, а в оставшемся 1% приводит к странным ошибкам? Возможно, вы стали жертвой одного из распространённых заблуждений, которые годами кочуют из проекта в проект. Репозиторий Awesome Falsehood собрал сотни таких «очевидных» утверждений, которые на деле оказываются ложными.

Что такое falsehoods в программировании?

Falsehood (англ. «ложное утверждение») — это идея, которую разработчики изначально считают истинной, но которая на поверку оказывается неверной. Например:

  • «Email всегда содержит один символ @»
  • «Имя пользователя не может начинаться с цифры»
  • «В месяце не больше 31 дня»

Каждое из этих утверждений кажется разумным... пока вы не столкнётесь с реальными данными.

Почему этот репозиторий бесценен

Awesome Falsehood — это коллекция статей и примеров, развенчивающих распространённые мифы в разных областях разработки. Вот лишь некоторые темы:

Реклама

1. Даты и время

  • Високосные секунды существуют (и ломают ваши скрипты)
  • Летнее время вводится не везде и не всегда
  • 30 февраля 1712 года действительно существовало (в Швеции)
# Наивная проверка даты
if day > 31:
    raise ValueError("В месяце не может быть больше 31 дня")
# А как же август, апрель, июнь и ноябрь?

2. География и адреса

  • В Коста-Рике нет «нормальных» адресов — используются описания вроде «200 метров на север от церкви»
  • Почтовый индекс медведя Смоки — 20252 (он получает столько писем, что ему выделили собственный ZIP-код)

3. Человеческие имена

  • Имя может быть пустым (в некоторых культурах)
  • Фамилия не обязана состоять из букв (встречайте г-на Null, чьё имя ломает базы данных)
  • Гендерных вариантов больше двух

Как использовать этот репозиторий

  1. При разработке валидаторов — проверьте, не основаны ли ваши правила на ложных предпосылках
  2. При проектировании API — убедитесь, что ваши модели данных учитывают крайние случаи
  3. Для обучения — как наглядные примеры того, насколько сложен реальный мир

Самые неожиданные примеры

  • Компания может называться ; DROP TABLE "COMPANIES";-- LTD (и это легально в Великобритании)
  • Температура в Фаренгейтах и Цельсиях не конвертируется простой формулой для всех значений
  • В Японии есть места с такими названиями, которые не могут прочитать даже местные жители

Кому особенно пригодится

  • Fullstack-разработчикам, работающим с формами ввода
  • Авторам библиотек и фреймворков
  • Разработчикам международных сервисов
  • Всем, кто устал от «почему это не работает?!» в 3 часа ночи

Вывод: стоит ли тратить время?

Если вы хоть раз сталкивались с багом, который возник из-за «очевидного» предположения — этот репозиторий сэкономит вам часы отладки. Это не просто коллекция забавных случаев, а практическое руководство по проектированию более устойчивых систем.

«Логика мира первичнее всех истин и заблуждений» — Людвиг Витгенштейн

Проверьте свои знания — сколько из этих falsehoods оказались для вас неожиданностью?

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.