
Юрий
31.01.2018
12:14:37
Вспоминаем fs2

Alex
31.01.2018
12:14:54
А от чего именно кровоточит?

Alex
31.01.2018
12:15:04
http4s же поверх fs2 и чо

Alexey
31.01.2018
12:15:57

Google

Юрий
31.01.2018
12:16:02
А от чего именно кровоточит?
Да от всего. Хочется делать простые вещи просто, а там все имплиситами обмазано, слева магнет паттерн, справа идея красная

Alex
31.01.2018
12:16:32

Andrey
31.01.2018
12:17:09

Alex
31.01.2018
12:17:18

Юрий
31.01.2018
12:18:16
Не понятно, почему в скале так любят все делать сложным. Реально хочется чего-то простого местами, а альтернатив просто нет.

Alex
31.01.2018
12:21:17
а так если нужна бесшовная интеграция с akka-*(actors/typed/streams) то тут выбора особо нет

Oleg
31.01.2018
12:26:37
давненько идея не краснела от акки

KrivdaAllStars
31.01.2018
12:29:39

Юрий
31.01.2018
12:30:14

Grigory
31.01.2018
12:30:28

Google

Grigory
31.01.2018
12:30:33
не очень привычно

Юрий
31.01.2018
12:30:40


Oleg
31.01.2018
12:31:18
Не понятно, почему в скале так любят все делать сложным. Реально хочется чего-то простого местами, а альтернатив просто нет.
Некоторые концепты сами по себе очень многослойные, типа того же HTTP c кучей аспектов.
Соответственно возникает запрос реализовывать самые простые кейзы минимальным количеством кода, а если что-то нужно кастомное, дописывать ровно столько, сколько нужно для кастомизации.
Поэтому модель решения получается естественным образом сложной, а простые кейзы проецируются на неё кучей автоматизма.
Когда-то этот автоматизм реализовывали всякие специализированные этапы деплоя, которые искали аннотации\конфиги и делали интроспекцию твоей структуры.
Сегодня более опрятным считается этот автоматизм отдавать компилятору, который по крайней мере работает параллельно с тем, как ты пишешь код.
Полагаю с ростом числа адептов всего отдавать в залог типам, сгладятся и углы, из-за которых всё это кажется переусложнённой магией


Vadim
31.01.2018
12:31:20
возьми чистый финагл - там все просто - Req => Future[Resp]
хотя можно и туже akka-http - только без роутинг dsl'я)

Oleg
31.01.2018
12:38:03
вот как пример можно взять django, он хотел быть классным и простым, чтобы всё само и без замутов.
В итоге он покрылся сотней конвенций, и ты ходишь как по минному полю, как бы не назвать метод, или не положить куда-то не туда класс, чтобы джанга подумала, что ты хотел сделать что-то совершенно __специфическое__
И есть куча людей, которые считают этот подход лучшим на свете, и в противовес им - адекватные люди, ищущие альтернатив


Daniel
31.01.2018
12:39:48
вот как пример можно взять django, он хотел быть классным и простым, чтобы всё само и без замутов.
В итоге он покрылся сотней конвенций, и ты ходишь как по минному полю, как бы не назвать метод, или не положить куда-то не туда класс, чтобы джанга подумала, что ты хотел сделать что-то совершенно __специфическое__
И есть куча людей, которые считают этот подход лучшим на свете, и в противовес им - адекватные люди, ищущие альтернатив
нормального примера где в одном фреймворке сочетается простое и сложное не попадалось
поэтому у меня сложилось мнение что надо их разделять по задачам (например тот же фласк из питона, очень топорный, но позволяет крайне быстро сделать топорную вещь)

Oleg
31.01.2018
12:40:46
в моём мире джанга вс фласк - это как play vs akka-http

Daniel
31.01.2018
12:40:46
надеялся, что Фомкин делает королев таким, но подозрение что это лишь молодой "спринг"

Andrey
31.01.2018
12:42:09

Daniel
31.01.2018
12:42:52
в качестве простого есть же планы втащить некоторые либы в стдлиб
например, беттер-файлс
про хттп не помню только

Александр
31.01.2018
12:48:58

Enver
31.01.2018
12:50:40

Александр
31.01.2018
12:50:52
вот бы нашелся герой что роутинг сделает читаемым

Alex
31.01.2018
12:51:22

Nikolay
31.01.2018
12:54:35

Александр
31.01.2018
12:55:17

Юрий
31.01.2018
12:55:52
Некоторые концепты сами по себе очень многослойные, типа того же HTTP c кучей аспектов.
Соответственно возникает запрос реализовывать самые простые кейзы минимальным количеством кода, а если что-то нужно кастомное, дописывать ровно столько, сколько нужно для кастомизации.
Поэтому модель решения получается естественным образом сложной, а простые кейзы проецируются на неё кучей автоматизма.
Когда-то этот автоматизм реализовывали всякие специализированные этапы деплоя, которые искали аннотации\конфиги и делали интроспекцию твоей структуры.
Сегодня более опрятным считается этот автоматизм отдавать компилятору, который по крайней мере работает параллельно с тем, как ты пишешь код.
Полагаю с ростом числа адептов всего отдавать в залог типам, сгладятся и углы, из-за которых всё это кажется переусложнённой магией
Конкретно акка хттп содержит много сложных вещей, никак не связанных с хттп.

Google

Alex
31.01.2018
12:55:53
@ГЕРОЙ("/ты")

Vadim
31.01.2018
12:56:30
я тут ради эксперимента решил у варнингов идеи поменять цвет с красного на, что-нить менее агрессивное

Nikolay
31.01.2018
12:56:49

Nick
31.01.2018
12:57:18
берешь графкуэль и делает один эндпоинт -> читаемо

Aleksei
31.01.2018
12:57:36
раз уж про акку, а как сделать чтобы эндпоинт мог несколько ContentType принимать?

Oleg
31.01.2018
12:57:43

Юрий
31.01.2018
12:57:51
На тему приятных хттп решений - в моей жизни самым приятным был express.js. он супер простой, и с ним можно разобраться за час

_
31.01.2018
12:59:59
в идее можно кликнуть в метод и найти имплисит параметры которые снаружи берутся, а можно ли наборот? узнать куда подставляется имплисит val

Юрий
31.01.2018
13:00:30

Vadim
31.01.2018
13:00:57

Alexey
31.01.2018
13:01:01
Да. Нужно просто поставить на него курсор. У меня еап

S
31.01.2018
13:01:09

Alexey
31.01.2018
13:01:13

Александр
31.01.2018
13:01:51

S
31.01.2018
13:02:01

Александр
31.01.2018
13:02:55

S
31.01.2018
13:03:47
а на прод вылил кто это?
В этом чатике - не знаю. Вообще это довольно популярный уеб-фреймворк. http://scalatra.org/community/built-with.html

Daniel
31.01.2018
13:04:04
https://twitter.github.io/finatra/user-guide/http/controllers.html вот вам еще

S
31.01.2018
13:04:15

Александр
31.01.2018
13:04:24

Google

_
31.01.2018
13:04:32
http://julienrf.github.io/endpoints/
такое смотрели? фреймворки

Юрий
31.01.2018
13:05:08
Вообще в скале очень не хватает простых либ. Повсюду монстры с оверинжинирингом на фри (привет typelevel) либо дсл где надо методом тыка подставлять имплиситы из тысяч, чтобы собралось.

Александр
31.01.2018
13:05:14
какая красота поперла, как бы не забы ь

Alex
31.01.2018
13:09:36
простота это иллюзия, потом эти простые либы приходится сшивать белыми нитками

Daniel
31.01.2018
13:10:27
поэтому надо разделять
иногда достаточно одного, иногда придется лезть в другое

Oleksandr
31.01.2018
13:14:11
как вижу зависимость на "шейплес + коты + акка" — в дрожь кидает

Alex
31.01.2018
13:15:35
коты же и есть либа для интеграции

S
31.01.2018
13:15:40

Alexander
31.01.2018
13:16:05

Oleksandr
31.01.2018
13:16:14
кто хочет коты — возьмет второй, кто не хочет — сам допилит первый

Alex
31.01.2018
13:16:47

Nikita
31.01.2018
13:17:15

Oleksandr
31.01.2018
13:17:23

Alexander
31.01.2018
13:17:43

Alex
31.01.2018
13:18:01

Oleksandr
31.01.2018
13:18:35

Google

Юрий
31.01.2018
13:18:41

Daniel
31.01.2018
13:18:42

Alexander
31.01.2018
13:18:49

Oleksandr
31.01.2018
13:19:26
одни грабли с шейдингом и тд чего стоят

Alexander
31.01.2018
13:21:59
трейдофф
Ну, тут тонкий момент - нужно осознавать когда можно допилить, а когда лучше заново переписать. Не всегда это просто понять, тем более когда у нас бизнес, и требования быстро меняются.

Daniel
31.01.2018
13:22:45

Alexander
31.01.2018
13:23:54

Oleksandr
31.01.2018
13:26:32
пора делать манифест "нет толстым либам в скале" и пиариться на конфах
это реальная проблема)

Alexander
31.01.2018
13:26:43

Alex
31.01.2018
13:26:56
разобъем всё на модули и тд

Oleksandr
31.01.2018
13:27:20

Alex
31.01.2018
13:27:31
вроде нормич

Oleg
31.01.2018
13:27:32

Alexander
31.01.2018
13:27:50

Daniel
31.01.2018
13:28:15

Oleksandr
31.01.2018
13:28:32
вроде нормич
ну вот надо продумать четкие критерии "толстоты" и "тонкости", и когда одна переходит во второе

Oleg
31.01.2018
13:28:45

Oleksandr
31.01.2018
13:29:07
скажем, в моем понимании, если либа транзитивно тащит много всякого — она уже не "тонкая"