TL;DR: Null does not exist in the real world. His creator regrets it, and
programmers around the world suffer from it. Don't be a part of it.

Программисты используют null для разных флагов. Это может указывать на отсутствие, неопределенное значение, ошибку и т. д. Множественная семантика приводит к связанности и ошибкам.

Проблемы

  • Связь между вызывающими и отправляющими.
  • Несоответствие между вызывающими и отправляющими.
  • if/when Загрязнение.
  • Null не полиморфен реальным объектам. Следовательно, Исключение нулевого указателя
  • Null не существует в реальном мире. Таким образом, нарушается принцип биекции.

Решения

  • По возможности избегайте использования типов, допускающих значение NULL.
  • Используйте паттерн NullObject, чтобы избежать ifs.

Исключения

  • API, базы данных и внешние системы, где null существует.

Образец кода

Неправильный

Верно

Заключение

  • null — ошибка на миллиард долларов. Тем не менее, большинство языков программирования поддерживают их, и библиотеки предлагают их использование. Всегда предпочитайте не использовать типы, допускающие значение NULL, в Kotlin без крайней необходимости и используйте шаблон NullObject для представления отсутствия поля, если это необходимо.

Больше информации

Кредиты

Первоначально опубликовано на https://yonatankarp.com.