😅
Когда автор книги боится null сильнее, чем мы — пятничного деплояЧитаю набегами "Рецепты чистого кода" М. Контьери.
На этой неделе как раз прочитал главу про NULL, и там пошла жара.
1️⃣ Кейс №1Автор предлагает вместо nullable-свойств использовать... коллекции.
Допустим у нас есть некий класс с nullable-свойством email + методом email(), который должен отправлять сообщение (если, конечно, адрес не null).
Так вот — Контьери предлагает заменить поле на коллекцию, чтобы метод мог просто пройтись по массиву и избежать проверки на null.
Типа элегантно.
НО! Он же тут же добавляет проверку:
if (emails.length > 1) throw new Error("...")
То есть коллекция должна содержать максимум один элемент 🤨
И вот скажите мне, чем это лучше проверки на null?
2️⃣ Кейс №2Теперь автор вместо null и специальных «null-объектов» предлагает создавать реальные объекты, но с пустыми свойствами.
Пример из книги:
// Address(String city, String state, String zipCode)
Address nullAddress = new Address("" "" "")
И тут у меня вопрос:
Как этот адрес отличить от настоящего?
Представь, нужно сгенерировать договор, и туда подставляется такой «пустой» адрес:
"... гражданин Иванов Иван, проживающий по адресу с одной стороны, и..."
Красота 😅
Либо придётся делать проверку по типу if (city !== ""), что, по моему мнению, куда стрёмнее, чем проверка на null.
🧐 ИтогоКороче, я категорически не согласен.
Такое ощущение, что автор настолько боится NULL, что готов заменить его на любую стрёмную конструкцию, лишь бы не null...
А ведь null — это просто инструмент. Главное — не злоупотреблять.
После этой главы я понял одно: null не страшен — страшно, когда от него бегут 😅