Size: a a a

Советский Angular

2020 November 11

J

Joseph in Советский Angular
Уже минут 15 туплю
источник

J

Joseph in Советский Angular
😂😂😂
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Joseph
Смотри вот тебе ситуация , ты реализовываешь паттерн репозиторий например findById , вот что ты должен вернуть если не нашел null или exception ?
давай дальше, во втором пункте сразу два тезиса


первый

ты спросил что лучше вернуть null или exception, если элемент не был найден

если возвращаем exception, то typescript статически это не проанализирует, то есть поимеем проблемы в рантайме

если возвращаем null, то typescript статически это проанализирует, и скажет добавить проверку

возвращаем null, проблем не имеем


второй

проблема нейминга, можно написать findById и вернуть null, но мы не говорим, что возвращаем null

можно написать findByIdOrNull, но длинно

а вот написать findById(id: Id, orDefault = null) будет достаточно, в сигнатуре сразу видно что и как работает
источник

J

Joseph in Советский Angular
»если возвращаем exception, то typescript статически это не проанализирует, то есть поимеем проблемы в рантайме
Тогда нужно возвращать монаду айзера и не будет ни каких проблем в рантайме ))
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
то, что значение не найдено — это еще не исключение
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Joseph
»если возвращаем exception, то typescript статически это не проанализирует, то есть поимеем проблемы в рантайме
Тогда нужно возвращать монаду айзера и не будет ни каких проблем в рантайме ))
не нужно, типы и так спасают)
источник

J

Joseph in Советский Angular
Вертихвост キバ 🏡🦊
не нужно, типы и так спасают)
Ну это чекать на null , шото лениво :DD
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Joseph
Ну это чекать на null , шото лениво :DD
это уже другой тезис)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
лениво, но типизация подскажет все равно
источник

J

Joseph in Советский Angular
Вертихвост キバ 🏡🦊
это уже другой тезис)
😂
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
но да, лениво
источник

J

Joseph in Советский Angular
»findById(id: Id, orDefault = null)
Как тебе tryFindById :))
источник

J

Joseph in Советский Angular
и не нужно orDefault
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Joseph
»findById(id: Id, orDefault = null)
Как тебе tryFindById :))
try — это бросить exception
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
статический анализ не скажет, что его надо обработать
источник

J

Joseph in Советский Angular
Вертихвост キバ 🏡🦊
статический анализ не скажет, что его надо обработать
Согласен
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Вертихвост キバ 🏡🦊
try — это бросить exception
но это не точно)
источник

J

Joseph in Советский Angular
Вертихвост キバ 🏡🦊
но это не точно)
ну тут try дает такую легкую неувереность в том что вернется
источник

J

Joseph in Советский Angular
Мб вернется , мб нет , смотрите сами я сделал все что мог
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Joseph
Мб вернется , мб нет , смотрите сами я сделал все что мог
типа того)
источник