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.