DevTools Radar
DevTools Radar
@DevToolsRadarPro

Null — это не просто «плохое значение». Это метка, которую язык хранит в runtime, а разработчик потом тащит че

Null — это не просто «плохое значение». Это метка, которую язык хранит в runtime, а разработчик потом тащит через API, БД, JSON и фронт, пока она не взрывается в самом неудобном месте.

История упрямо повторяется: C. A. R. Hoare в 1965-м добавил null в ALGOL как быстрый компромисс для ссылочных типов. Идея была прагматичная: представить «нет объекта». Цена оказалась дикой. Уже через пару десятилетий null превратился в отдельный класс багов: NPE, падения на проде, странные edge-case’ы в интеграциях.

Почему это так дорого? Потому что null ломает инварианты. Тип `User` внезапно означает и пользователя, и отсутствие пользователя. Проверка переносится из компилятора в голову программиста. Любой пропущенный guard — это не ошибка логики, а аварийный путь исполнения. 🧨

Что делают взрослые стеки:
— `Option/Maybe` вместо голого null
— nullable-типы и strict mode
— ранняя валидация на границе системы
— fail fast в сервисах и CLI

Практический вывод простой: если API может вернуть «ничего», пусть оно возвращает это явно. Null — это не отсутствие значения, а отсутствие контракта.
Этот пост опубликован в Telegram-канале DevTools Radar. Подписаться можно по ссылке: @DevToolsRadarPro.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.