Size: a a a

2018 August 28

SK

Sergey Kapralov in JUG NN
Roman Makhlin
не, флюент это удобно)
Мне больше композиция объектов нравится в плане удобства
источник

RK

Roman Khlebnov in JUG NN
Denis Anfertev
Я вот с ходу вообще не вспомнил, когда я за 3 года фулл тайм на scala писал Nothing. Это скорее костыль языка 🙂
А вообще батенька Одерски предлагал юзать Nothing в методах, которые сразу кидают исключения
источник

RK

Roman Khlebnov in JUG NN
Но такое
источник

DA

Denis Anfertev in JUG NN
val (a,b) = tuple
func(a)
func(b)
читается намного лучше, чем
func(tuple._1)
func(tuple._2)

Плюс заствляет именовать значения в тупле, это читается намного удобнее
источник

С

Сергей in JUG NN
Denis Anfertev
val (a,b) = tuple
func(a)
func(b)
читается намного лучше, чем
func(tuple._1)
func(tuple._2)

Плюс заствляет именовать значения в тупле, это читается намного удобнее
Но ведь вавр такого не провайдит к сожалению
источник

RM

Roman Makhlin in JUG NN
Sergey Kapralov
Мне больше композиция объектов нравится в плане удобства
Покажи кодец
источник

DA

Denis Anfertev in JUG NN
Roman Khlebnov
А вообще батенька Одерски предлагал юзать Nothing в методах, которые сразу кидают исключения
Я что-то не очень понимаю, в чем смысл. Понятно, что Nothing и нужен для того, чтобы преодолеть более строгую типизацию scala. Так как даже ветка, где бросается исключение, должно в итоге иметь тот же тип возвращаемого элемета, что остальной код
источник

DA

Denis Anfertev in JUG NN
Именно поэтому и есть Nothing, который яявляется наследником любого класса
источник

DA

Denis Anfertev in JUG NN
Но объявлять сразу метод с возрвщаемым типом Nothing - это разве что в каких-то кишочках библиотек, но не в реальном коде
источник

SK

Sergey Kapralov in JUG NN
Roman Makhlin
Покажи кодец
Вот здесь я с композицией много балуюсь. Внешне выглядит может не так компактно как fluent API, но зато очень хорошо расширяется и адаптируется под требования без импакта на величину классов: https://github.com/skapral/puzzlerbot
источник

DA

Denis Anfertev in JUG NN
Сергей
Но ведь вавр такого не провайдит к сожалению
Ну вот именно поэтому слепой перенос из scala в java не имеет смысла
источник

VK

Vlad K in JUG NN
интересно увидеть пример vavr в контексте решения какой-то задачи
источник

VK

Vlad K in JUG NN
а не просто потому что он есть в проекте
источник

С

Сергей in JUG NN
Vlad K
интересно увидеть пример vavr в контексте решения какой-то задачи
У него просто удобные штуки есть. Тот же try. Можно и стандартным джавовым, но вавровским просто приятней
источник

С

Сергей in JUG NN
А так вряд ли есть какой то код на вавре, которые нельзя переписать без него
источник

С

Сергей in JUG NN
Но мне кажется с ним просто короче и понятней
источник

SK

Sergey Kapralov in JUG NN
Vlad K
интересно увидеть пример vavr в контексте решения какой-то задачи
В примере выше я юзаю и вавр. Мне он гарантирует иммутабельность объектов с множественными зависимостями тогда, когда джавовыми средствами этого достигнуть было бы в разы сложнее.
источник

SK

Sergey Kapralov in JUG NN
И Collection.unmodifiableList не выход в данном случае
источник

SK

Sergey Kapralov in JUG NN
Потому что часто хочется иммутабельную коллекцию X плюс "еще вот этот вот элемент" без копирования.
источник

DA

Denis Anfertev in JUG NN
Но тут, кстати, возникает такая же ресурсня проблема, как и со scala. Если код поголовно юзает vavr, то нужных людей придется учить. И вот я не думаю, что научить хорошего джависта scala намного сложнее, чем изучить эту библиотеку.
источник