@scala_ru

Страница 672 из 1499
folex
18.05.2017
09:35:28
@rockjam но кидает ошибку unused local val in value $anonfun is never used

Ivan
18.05.2017
09:35:39
не подкажите на что глянуть для бэкенда да и вообще ?

folex
18.05.2017
09:35:46
линтер кидает

Ivan
18.05.2017
09:35:56
тут play spray, akka-http и куча всего

Google
Nikita
18.05.2017
09:36:51
вот с этого можешь и начать :)

Kirill
18.05.2017
09:37:16
@v00id я б сказал, скала и так по большей части для бекенда. Я бы наверно посоветовал глянуть akka-http и play. В spray смысла больше нет, проект перетек в акку.

Sergey
18.05.2017
09:37:58
Я сначала Акка глянул, а потом уже стал Scala изучать) Появилась хоть какаято мотивация)

Alexander
18.05.2017
09:39:09
тут play spray, akka-http и куча всего
По опыту собеседований на бэкенд позиции часто просят акку хттп и акторы.

Kirill
18.05.2017
09:39:29
либо спарк :)

Nikita
18.05.2017
09:39:37
не подкажите на что глянуть для бэкенда да и вообще ?
Чтобы быстрее освоить - начни писать что-то реальное для себя

Alexander
18.05.2017
09:40:12
Ну да, кстати, спарк вообще очень часто со Скалой руке об руку идёт.

Sergey
18.05.2017
09:40:13
вот да, на практике быстрее всего изучается

Kirill
18.05.2017
09:40:22
я начинал скалу в универе. Писал некоторые лабы по численным методам на скале. Сумма рядов это ж радость какая-то, мап да редьюс

Nikita
18.05.2017
09:40:34
Nikita
18.05.2017
09:40:38
Чтобы быстрее освоить - начни писать что-то реальное для себя
И не пихпй слишком много бизнес логики в акторов

Google
Alexander
18.05.2017
09:41:30
ну это же для датасайнса в основном
Ну в целом Спарк хотят и любят Скала работодатели.

D
18.05.2017
09:41:59
Чтобы быстрее освоить - начни писать что-то реальное для себя
а что реальное для себя можно писать на скале?

Ivan
18.05.2017
09:42:10
насколько я понимаю к спарку обычно еще machine learning просят

Nikita
18.05.2017
09:42:25
А куда ее пихать?
В обычные классы, можно моделировать целиком на кейс классах или типа сервисы плюс модель

Nikita
18.05.2017
09:43:43
Смысл какой?
проще тестировать

больше type safety

Alexander
18.05.2017
09:44:00
Ну, у меня проблем с тестированием не было пока.

Nikita
18.05.2017
09:44:12
асинхронная бизнес-логика это жесть какая-то

Nikita
18.05.2017
09:44:30
Nikita
18.05.2017
09:44:37
более-менее кейс это если актор как endpoint

Nikita
18.05.2017
09:44:55
всегда стоит на стримы переписать попробовать

вместо голых акторов

Nikita
18.05.2017
09:45:59
Тоже плюсую за стримы

Alexander
18.05.2017
09:46:01
асинхронная бизнес-логика это жесть какая-то
Да обычный флоу а-ля микросервисы, по-моему.

Nikita
18.05.2017
09:46:23
с целью улучшения читабельности

Google
Nikita
18.05.2017
09:46:28
Бэкпрешер на халяву еще

Nikita
18.05.2017
09:46:31
и халявного backpressure

Nikita
18.05.2017
09:46:36
)))

Просто я пытался на голых акторах много что делать и понял что не надо все проблемы акторами решать

Sergey
18.05.2017
09:47:13
Ммм ну незнаю, на голых акторах вроде гибче, всё возможно переписать?

Nikita
18.05.2017
09:47:30
Не везде тебе гибкость нужна на самом деле

Grigory
18.05.2017
09:47:47
гибкие акторы

Nikita
18.05.2017
09:48:02
Нужно акторов там где конкурентность, сериализация доступа, или фейлы хендлить

Alexey
18.05.2017
09:48:10
ему бы порно озвучивать
поделишься опытом?

Alexander
18.05.2017
09:48:18
Ещё гибкую schemaless базу бы какую нибудь. Хм.

Nikita
18.05.2017
09:48:47
Ну так синхронная бизнес логика зачем туда?

Nikita
18.05.2017
09:49:03
Ну да вот это все
в этом случае нужен актор для супервизии который внутри себя стрим запускает

Aleksei
18.05.2017
09:49:08
поделишься опытом?
Я без негатива, просто очень все вздохи ахи слышно.

Sergey
18.05.2017
09:49:27
Nikita
18.05.2017
09:49:42
снова акка и монга?

KrivdaTheTriewe
18.05.2017
09:49:43
что сейчас из асинхронных http клиентов добротное есть?

Sergey
18.05.2017
09:50:15
Ну так синхронная бизнес логика зачем туда?
Если синхронно, то наверное акторы вобще не нужны?

Kirill
18.05.2017
09:50:52
друзья, я снова запутался в дуби-дебрях. Есть какие-то best practices? С неожиданностью для себя узнал, что дуби предпочитает выкидывать исключения наружу, да и fs2.Task какой-то странный тип. Я привык оборачивать результаты запросов в EitherT[IO, Throwable, A], а тут выходит какой-то ад с Either в Either

Nikita
18.05.2017
09:50:54
что сейчас из асинхронных http клиентов добротное есть?
Если есть акка хттп в зависимостях то ее можно

Google
Nikita
18.05.2017
09:51:14
Если синхронно, то наверное акторы вобще не нужны?
Нужны, смотри выше почему, у тебя взаимодействия на самом верхнем уровне всегда асинхронные и конкурентные

KrivdaTheTriewe
18.05.2017
09:51:41
Если есть акка хттп в зависимостях то ее можно
нету, я думаю поверх scalaj писать обёртку

Sergey
18.05.2017
09:51:42
снова акка и монга?
Как ни крути все сводится к этим замечательным техноллгиям)

Kirill
18.05.2017
09:51:56
вернее привык оборачивать все в EitherT скалазетовский, который можно дернуть и получить обычную дизъюнкцию. А здесь с fs2.Task выходит много какой-то левой фигни, типа колбеки

Nikita
18.05.2017
09:52:49
монга до сих пор дропает данные при нетсплитах?

Kirill
18.05.2017
09:52:52
дуби-дай-бай

Nikita
18.05.2017
09:52:54
Как ни крути все сводится к этим замечательным техноллгиям)
Ну если крутить только эти две технологии то конечно ты прав

Nikita
18.05.2017
09:52:55
или пофиксили?

Kirill
18.05.2017
09:55:48
хорошая мысль, уже смотрю) хотя тут вряд ли котов заденут

Sergey
18.05.2017
09:56:00
Ну если крутить только эти две технологии то конечно ты прав
Как видишь, не только я в своих исследованиях пришел к такому выводу

Nikita
18.05.2017
09:56:58
Как видишь, не только я в своих исследованиях пришел к такому выводу
Прости, но я не понимаю о каких исследованиях ты говоришь, в любом случае я доверяю только своим исследованиям

Nikita
18.05.2017
09:57:37
schemaless троллинг

Митко Соловец?
18.05.2017
09:58:34
@krivdathetriewe я забыл, ты скалист или эмбеддед?

заинтересовался проектированием?

Sergey
18.05.2017
09:59:54
Прости, но я не понимаю о каких исследованиях ты говоришь, в любом случае я доверяю только своим исследованиям
В этом случае есть опасность ограничегия кругозора, коллега, если не опираться на исследовательскую базу членов нашего сообщества

Google
Nikita
18.05.2017
10:01:10
В этом случае есть опасность ограничегия кругозора, коллега, если не опираться на исследовательскую базу членов нашего сообщества
А я не говорил что игнорирую чужие исследования, просто придерживаюсь научному подходу

Sergey
18.05.2017
10:07:27
А я не говорил что игнорирую чужие исследования, просто придерживаюсь научному подходу
Это редкое свойство которое, к сожалению, почти утрачено в наше время

Kirill
18.05.2017
10:08:47
а есть в cats и fs2 такая штука, подобная Task, которая бы ловила эксепшены и при выполнении эффекта выдавала какой-нибудь Either как результат?

а то fs2.Task в случае успеха дает Either, а в случае ошибки кидает ее в lytso. Неприятно как-то

Юрий
18.05.2017
10:17:52
а то fs2.Task в случае успеха дает Either, а в случае ошибки кидает ее в lytso. Неприятно как-то
Странно, по идее Task в этом плане должен как и Future выдавать в результате ошибку

Kirill
18.05.2017
10:19:53
scala> Task("qwerty").unsafeRunSync res17: Either[fs2.Task.Callback[String] => Unit,String] = Left(fs2.internal.Future$$Lambda$5857/1349951545@763270ce) scala> Task[String](???).unsafeRunSync res18: Either[fs2.Task.Callback[String] => Unit,String] = Left(fs2.internal.Future$$Lambda$5857/1349951545@40123af5)

что-то я уже ничего не понимаю. втыкаю scalaz и выдыхаю

Юрий
18.05.2017
10:24:12
Замени Task.apply на Task.now

apply шедулит операцию асинхронно, поэтому у тебя возвращается левая часть

Oleg
18.05.2017
10:24:57
Kirill
18.05.2017
10:25:22
Все, что мне хотелось от Таска, описывается этими строками из scalaz.concurrent.Task: /** Like `unsafePerformSync`, but returns exceptions as values. */ def unsafePerformSyncAttempt: Throwable \/ A = try get.unsafePerformSync catch { case t: Throwable => -\/(t) }

в fs2 такой штуки не углядел. Может плохо смотрел

Юрий
18.05.2017
10:29:47
// бросит ошибку в лицо val x = Task.delay { throw new RuntimeException }.unsafeRunSync() // завернет ошибку val y = Task.delay { throw new RuntimeException }.unsafeAttemptRunSync()

в тасках для заворачивания ошибки нужно использовать Attempt

Kirill
18.05.2017
10:33:13
на самом деле, все еще проще. Что я искал, находилось в TaskPlatform. Точно такой же кусок кода, как в scalaz, только unsafeAttemptRun

Anatoliy
18.05.2017
10:34:31
Доброго дня всем! :)

@fomkin тут?)

Народ, а пользуется кто https://github.com/fomkin/pushka ?) Вопрос есть...

Aleksey
18.05.2017
10:36:22
Я с телефона, но давай.

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