воскресенье, 19 апреля 2015 г.

Абстрактнее

https://gist.github.com/noelwelsh/02b9ecf6d21c7b8934e8

Хотя в текущем проекте потенциально null-ы могут придти только из внешних систем (), но писать обработку на всякий случай приходится. Сейчас это только Cassandra и какая-то хреновина для гео-локации по ip (maxmind). Наследие. "В java только дедушки" (с).

null вообще запрещен синтаксически к употреблению в scalaStyle. Приходится в нескольких местах закрывать/открывать проверку стиля.

Вот те две проверки на равенство null теперь можно довольно красиво заменить на (см. ссылку на месте первого абзаца):

> result.?.getOrElse("")

Перфекционизма с возрастом все больше и больше. Это отход от студенчества.

Прошелся по коду. Оказалось, что Option[_] тоже можно глуповато использовать. Очевидно, это лучше чем null. Но и пересолить/переборщить тоже можно. К тому же, если потом в каждом месте match-ить или if-ить. Try[_] там оказался уместнее. Хотя дать волю, то его тоже начнуть match-ить или if-ить, хотя кроме необходимого map/flatMap больше ничего и не надо.

В scala очень нравится то, что через месяц (и каждый месяц в течение нескольких лет) написанный код уже начинает вызывать отторжение, и хочется переписать на чуть более абстрактные абстракции. И это очень клево, хоть какая-то движуха.


Комментариев нет: