
Alexandr
15.10.2018
07:06:31
с классическими да, придется поплясать что бы в контекст затолкать, а потом еще извлечь когда надо

Alexey
15.10.2018
07:08:06
Что люди только не делают лишбы не использовать reader monad или агрументы функции ?

Bogdan
15.10.2018
07:08:53

Google

Alexandr
15.10.2018
07:09:01
другой интересный момент, getCurrentSession() как хачить ?, только тредлокал тоскать

Alexey
15.10.2018
07:09:12

Alexandr
15.10.2018
07:09:16

Alexey
15.10.2018
07:09:52
И тут как бы встаёт перед глазами факт, что пора писать новый стек либ, который откажется от всей этой херни ввиде тредлокалей

Alexandr
15.10.2018
07:09:54

Alexey
15.10.2018
07:10:34
Да
Стоит понимать что все наработки прошлых 10-20 лет на java были направлены на поддержания инфраструктуры апликейшен серверов, а там по дефолту сингл тред и jep'ы с аннотациями
А многопоточка этого всего не любит

Alexandr
15.10.2018
07:12:31
я бы так громко не говорил

Alexey
15.10.2018
07:12:32
Она любит иммутабельность и явный код

dimiii
15.10.2018
07:12:56
выкинуть весь jee, ммм, вкусно)
Вы тут шутки шутите, а в каком-нибудь условном Чили эта тема (j2ee) на подъеме и имеет жуткий спрос - напоминает то, что было у нас в середине нулевых и то что Отт сейчас написал

Alexandr
15.10.2018
07:12:57
тредлокалы был достаточно хороший способ поддержания контекста

Google

Alexey
15.10.2018
07:13:58

Руслан
15.10.2018
07:18:50

Bogdan
15.10.2018
07:19:45
Она любит иммутабельность и явный код
не совсем это связано, шарить данные между потоками проще иммутабельные. Ну и полноценные треды уже уходят на системный уровень, на прикладном появляются солидные абстракции

Alex
15.10.2018
07:19:46

Alexey
15.10.2018
07:19:53

Alex
15.10.2018
07:20:07
Как будто монады это рокет сайенс
В 2к18

Alexey
15.10.2018
07:20:38
Да 3 закона прочитать это явно рокет сцайнс

Руслан
15.10.2018
07:20:54

Alexey
15.10.2018
07:21:16

Alex
15.10.2018
07:23:58

Alexey
15.10.2018
07:26:07
Ну короче мой поинт в том, что нужны новые идиологичные либы, и вроде котлин в этом направлении движется (тот же ktor), но вот эти поддержки спринга в угоду набора аудитории среди джавистов явно не пойдут языку во благо

Alexandr
15.10.2018
07:26:14
что за "зконы" монад?

Alexey
15.10.2018
07:27:17
monad laws

Alexandr
15.10.2018
07:28:05
бан в гугле?
проф лень, когда просто интересно, но не понадобится

Руслан
15.10.2018
07:31:33
В любом случае джависты не будут упарываться по явной передачи этого контекста вглубь, только для того чтобы там иметь доступ к юзер сессии. Как вариант можно юзать DI Container вместо ThreadLocal в этом месте, но и тут нам скажут что контейнеры это плохо)
И все это не отменяет действительности где есть либы с ThreadLocal и с ними нужно жить, как она бы вам не нравилась.

Google

Alexey
15.10.2018
07:36:52

Руслан
15.10.2018
07:37:08
В Kotlin корутинах вот есть неявный контекст и это удобно, я его использую для request-scope. В джаве с тредами для этого годится ThreadLocal, и его там используют. Просто покажите нам пример с reader monad на джава/котлин вместо голосвных "глупцы, используйте монады"

Boris
15.10.2018
07:37:16
Тредлокал абсолютно норм, если выполняет свою прямую задачу: избавляет от конкурентного доступа

Руслан
15.10.2018
07:37:21
Иначе опять будет бла-бла

Alexey
15.10.2018
07:37:52

Руслан
15.10.2018
07:38:43

Alexey
15.10.2018
08:07:29

Igor
15.10.2018
08:11:28

Alexey
15.10.2018
08:11:45
На основном треке был

Igor
15.10.2018
08:11:55
Он тут есть https://www.youtube.com/playlist?list=PLQ176FUIyIUbVvFMqDc2jhxS-t562uytr ?

Alexey
15.10.2018
08:12:45

Руслан
15.10.2018
08:14:28

Mikhail
15.10.2018
08:22:35
и вот тут толк (осторожно, CLR) https://www.youtube.com/watch?v=cxs7oLGrxQ4

Руслан
15.10.2018
08:25:45
А вы пишете так? Можете показать свои примеры?

Igor
15.10.2018
08:26:24

Google

Alexey
15.10.2018
08:26:49

Руслан
15.10.2018
08:27:27
Забавно, парень который рассказывает как правильно инжектить манадами использует DI контейенер https://github.com/JorgeCastilloPrz/ArrowAndroidSamples/blob/master/tagless-final/src/main/java/com/github/jorgecastillo/kotlinandroid/tagless/algebras/persistence/HeroesRepository.kt

Igor
15.10.2018
08:32:13
А вы пишете так? Можете показать свои примеры?
https://gist.github.com/komigor/9ff7a4b16daadae27be03e5ef70537d7
Выглядит как-то так. Это к андроиду конечно имеет мало отношения, но отличий, при проектировании по SOLID не будет особо.

Руслан
15.10.2018
08:32:19

Alexandr
15.10.2018
08:36:14
короче опять накинули за манады, а аргументов - ноль, пойду писть дальше ООП с АОП и DI

Admin
ERROR: S client not available

Igor
15.10.2018
08:36:49

Руслан
15.10.2018
08:37:13

Igor
15.10.2018
08:38:11
А тестами это как-то покрывалось?
50/50, я могу показать, как покрывать такое тестами, но это код из моей песочницы, где меня интересовал скраппинг youtube, а не тесты, так что там будет общая идея, дальше вы думаю домыслите)

Владислав
15.10.2018
08:38:29

Igor
15.10.2018
08:39:18
сорян ;) на скорую руку писалось, и мне нужно было дебажить, а не залипать в ascii-треш

Руслан
15.10.2018
08:41:14

Alexandr
15.10.2018
08:41:29
тогда поговорим

Igor
15.10.2018
08:42:08
Тогда и поговорим)

Alexandr
15.10.2018
08:42:21
я бы сказал костыльно, ну да ладно

Владислав
15.10.2018
08:42:43

Igor
15.10.2018
08:43:09

Google

Alexandr
15.10.2018
08:43:34

Руслан
15.10.2018
08:43:49

Alexandr
15.10.2018
08:43:49

Руслан
15.10.2018
08:44:37
Это скрипт, утилита, при этом сильно переинженеренная
Это не приложение, во всяком случае в таком в виде и с таким тестированием

Igor
15.10.2018
08:44:57
Серьезно? Тест без единого ассерта?)
Как я выше и написал, мне они там были не нужны. Я верю в вас и надеюсь, что вы в состоянии написать
then("a result matches some predicate") {
assert somePredicate(result)
}

Alexandr
15.10.2018
08:45:12

Руслан
15.10.2018
08:47:28
Так, давай-те без прямых оскорблений
Не переходить на личности, а обсуждать код

Bogdan
15.10.2018
08:57:27

Sergey
15.10.2018
08:57:46
https://www.youtube.com/watch?v=a3agLJQ6vt8
там 2й день записи заливают активно

Mikhail
15.10.2018
09:05:57

Igor
15.10.2018
09:05:58

Alexey
15.10.2018
09:06:03