@scala_ru

Страница 405 из 1499
Andrey
11.01.2017
08:47:06
И что? Клиент это не зеркало бд. Это то, что тебе решат показать.
Вот в этом то и проблема... как можно доверять банку который вытворяет такое? ))

Aleksey
11.01.2017
08:47:15
Там не Фри, там про лук
Ну там вроде все на фри, или я с чем-то путаю.

Google
Nick
11.01.2017
08:47:41
Да.
Посмотри как даггер генерит фектори всякие, да так же в скале сделай?

Nick
11.01.2017
08:48:14
Но и про лук посмотри

Да и вообще cake pattern юзай???

Nick
11.01.2017
08:48:54
все как везде, только лучше
И ты из мск я так понимаю?

Кто вкурсе где офис ткс в Питере?

Nikolay
11.01.2017
08:49:57
где-то на александра невского вроде

Aleksey
11.01.2017
08:50:03
Да и вообще cake pattern юзай???
я знал что рано или поздно мы перейдем и на эту дрянь

Nick
11.01.2017
08:50:15
Спсб, гляну.
И вообще, я могу вечером сесть и подумать, может замучу советик. Правда с временем у меня плохо

Aleksey
11.01.2017
08:50:59
И вообще, я могу вечером сесть и подумать, может замучу советик. Правда с временем у меня плохо
Ну собственно это вопрос про то как расширять вот этот кусок говна https://github.com/fomkin/korolev/blob/master/korolev/src/main/scala/korolev/Korolev.scala

Google
Andrey
11.01.2017
08:51:36
Народ, а ктонить может на пальцах показать, чем cake pattern не true ?

Alexey
11.01.2017
08:52:54
очень много бойлерплейта

Oleksandr
11.01.2017
08:54:52
не в БЛ дело, а в связности всего-со-всем

к чему в итоге оно приходит

как там -- вместо одного банана, ты получаешь и банан, и обезьяну с ним, и джунгли

Nick
11.01.2017
08:57:10
Aleksey как вариант, можно сделать аннотации как в спринге через мету, и на этапе компиляции связывать ?

Oleksandr
11.01.2017
08:57:30
не выйдет

мета такое не умеет сейчас

в смысле, нету "внешнего источника знаний"

Aleksey
11.01.2017
08:58:08
Aleksey как вариант, можно сделать аннотации как в спринге через мету, и на этапе компиляции связывать ?
у меня наже был такой проектик https://github.com/fomkin/injector только без аннотаций.

Митко Соловец?
11.01.2017
09:00:15
а на скале вообще есть родная либа для DI или не завезли?

Nick
11.01.2017
09:01:16
не
cake pattern по сути di )

Митко Соловец?
11.01.2017
09:01:19
получается пользуются жабьими либами или вообще не юзают DI?

Nick
11.01.2017
09:01:21
что значит не

Aleksey
11.01.2017
09:02:02
cake pattern по сути di )
очень неочевидный DI.

Nick
11.01.2017
09:02:08
я бы сказал, что di либы вообще не нужны)

Google
Nick
11.01.2017
09:02:29
очень неочевидный DI.
почему ж неочевидный? есть место где все дерьмо прописано)

есть куски

кстати, а scaladi на compile time работает?

Ivan
11.01.2017
09:03:31
кстати, а scaladi на compile time работает?
вроде нет, но я не пробовал

Nick
11.01.2017
09:04:26
вот еще есть https://github.com/dickwall/subcut

@fomkin во http://di-in-scala.github.io/

есть такая штука еще https://github.com/adamw/macwire

тема вообще)

Alexey
11.01.2017
09:06:45
macwire оч хорошо и статически всё

Aleksey
11.01.2017
09:09:42
тема вообще)
Это все адище какое-то. Слишком легко допустить ошибку. У меня этот кейкпаттерн не влезеат в голову вообще. Вон посмотри как у меня в инжекторе. Есть конструктор, в конструкторе зависимости. Конфиг, в нем написано как зависимости инжектить.

Aleksey
11.01.2017
09:10:20
macwire то прост
Я на пример не понял, как в нем сделать инстанцируемые зависимости.

Viacheslav
11.01.2017
09:13:14
кейк паттерн это как перерождение давней мечты спрингоидов - загнать всё в xml конфиги. Мол можно потом такие чудеса делать! На практике за годы гемороя с этим делом пригодилось единицам в мире

то есть в теории красиво на практике не надо

Aleksey
11.01.2017
09:13:31
там все понятно
Нет не понятно. От кейка пахнет так же как как от GoF-паттернов.

Nick
11.01.2017
09:15:50
Google
Alexander
11.01.2017
09:16:04
В "play" compile tine di как работает?

Dmitry
11.01.2017
09:17:45
никак

там джус

можно свой прикрутить, но подефолту джус

Ivan
11.01.2017
09:19:00
сколько не разбирался в cake pattern так до конца и не понял зачем он

Oleksandr
11.01.2017
09:19:06
лучший ДИ -- тупо через конструктор

Dmitry
11.01.2017
09:19:21
ну так macwire про это

Nick
11.01.2017
09:21:14
лучший ДИ -- тупо через конструктор
обьект то нужно гдет создать) причем передать в него нужные параметры, так вот macwire в этом помогает

Aleksey
11.01.2017
09:21:42
я тебе не про кеик сейчас) а про macwire)
Сорри, пропустил. Этот наоборот все инстанцирует в рамках конфига :) Не очень ясно как там делать подмену реализации.

Oleg
11.01.2017
09:21:49
Нет не понятно. От кейка пахнет так же как как от GoF-паттернов.
маквайр - говно, согласен тут вот перспективная молодёжная идея описывать зависимости через Eff https://skillsmatter.com/skillscasts/8981-practical-eff-monad-for-microservices

Admin
ERROR: S client not available

Oleg
11.01.2017
09:23:50
а ещё пацаны в Haskell знакомые делают зависимости через HSet Reader monad

Alexey
11.01.2017
09:25:40
а grafter не достаточно хорош?

Oleg
11.01.2017
09:25:58
вот такой https://hackage.haskell.org/package/hreader

Nick
11.01.2017
09:25:59
Dmitry
11.01.2017
09:28:39
herding cats — Reader datatype http://eed3si9n.com/herding-cats/Reader.html

Max
11.01.2017
09:33:38
https://www.youtube.com/watch?v=xPlsVVaMoB0 и рунар рассказывал тоже помоему

Dmitry
11.01.2017
09:35:28
Юджин на него и ссылается

Vyatcheslav
11.01.2017
09:41:45
Спорю тут с челом на тему мутабельных коллекций. Есть функция, которая внутри создает список (точнее - мутабельную очередь, но не важно) и по условию добавляет в него некоторые значения. Наружу отдается Iterable, через который поменять ничего нельзя. Так вот, чел настаивает, что тут надо List юзать, типа: List(x).filter(_ => cond1) ++ List(y).filter(_ => cond2) ++ List(z).filter(_ => cond3) а я вот не понимаю, начерта, если: 1. Это дерьмо совершенно нечитабельное, если cond состоит из 3+ условий, а x, y и z - это конструкторы с несколькими параметрами. 2. На референшл транспаренси тут вообще насрать на мой взгляд, и на ризонинг это никак не влияет А вы что думаете?

Google
Oleg
11.01.2017
09:42:59
ну вот да, для игрушечных проектов можно юзать чистый reader, как только что-то дорастает ≳ 30 сервисов, приходит необходимость находить их в environment автоматически с помощью каких-то иплицитных геттеров

Vyatcheslav
11.01.2017
09:48:18
if (cond1) xs.add(x) if (cond2) xs.add(y) if (cond3) xs.add(z) xs: Iterable[B] vs List(x).filter(_ => cond1) ++ List(y).filter(_ => cond2) ++ List(z).filter(_ => cond3)

Sergey
11.01.2017
09:51:01
ифы быстрее ж

Vyatcheslav
11.01.2017
09:51:25
да там добавляется максимум 5-6 элементов, быстродействие тут никакой роли не играет

Dima
11.01.2017
09:52:03
я в скала новенький. Но откуда в Iterable трейте add метод?

Vyatcheslav
11.01.2017
09:52:11
вопрос только в читабельности?
Так и не удалось выяснить, чем ему вариант с мутабельной коллекций не угодил. Спрашиваю каждый раз :D

Nikita
11.01.2017
09:52:37
я в скала новенький. Но откуда в Iterable трейте add метод?
xs: Iterable[B] - это возвращаемый из функции тип, видимо

Nikolai
11.01.2017
09:52:52
Да эти латентные хаскелисты... им бы везде иммутабельность зафигачить

Vyatcheslav
11.01.2017
09:52:52
я в скала новенький. Но откуда в Iterable трейте add метод?
Queue реализует Iterable, xs : Iterable[B] - это просто способ показать, что функция у меня возвращает Iterable

Nikolai
11.01.2017
09:54:00
Так и не удалось выяснить, чем ему вариант с мутабельной коллекций не угодил. Спрашиваю каждый раз :D
В принципе можно сойтись на билдере каком-нибудь. Относительно канонично)

Oleg
11.01.2017
09:54:16
да там добавляется максимум 5-6 элементов, быстродействие тут никакой роли не играет
cats.data.Writer[List[MyType], Unit] и можно писать for { _ <- tell(x).when(cond1) _ <- tell(y).when(cond2) _ <- tell(z).when(cond3)

Vyatcheslav
11.01.2017
09:54:53
да те же ифы получаются, только писать больше

Vladimir
11.01.2017
09:55:31
тут какая-то дрянная иммутабельность: сперва предлагается инстанциировать, а потом выкидывать

Oleg
11.01.2017
09:55:55
или tell(x) when cond1 >> tell(y) when cond2 >> tell(z) when cond3 >> ...

а вообще совершенно непонятно, почему не написать функцию вроде addIf[A](x: => A, cond: Boolean): List[A]

и сделать её как угодно

Vyatcheslav
11.01.2017
09:59:41
это можно, но я хоть убейте не понимаю, в чем тут профит от иммутабельной коллекции

Страница 405 из 1499