@scala_ru

Страница 1123 из 1499
Alexey
06.12.2017
06:04:39
Товарищи, подскажите какие лимиты на длину типа? Тип насколько большой копродукт я смогу сделать?

Aleksei
06.12.2017
06:13:29
думаю покакомпилятор не брикнешь
и тут можно вспомнить финч, там сейчас эндпоинты если собирать в копродукт, то можно и нащупать этот лимит

Товарищи, подскажите какие лимиты на длину типа? Тип насколько большой копродукт я смогу сделать?
мы однажды видели ошибку о том что наш копродукт превысил 64кб байт кода, и что жвм такое не любит и стартовать не будет

Google
Aleksei
06.12.2017
06:20:31
но у нас было так что метод собирал внутри себя копродукт, а эти 64кб я так понимаю строго ограничения на размер метода

Daniel
06.12.2017
06:22:01
https://github.com/finagle/finch/issues/670 кстати, да, в финче такое есть, говорят о порядке 70 но там свои классы, а не шейплез

Grigory
06.12.2017
06:23:08
думаю что в шаплезе тоже ~100

Alexey
06.12.2017
06:43:15
думаю что в шаплезе тоже ~100
Печалька, ну да ладно

Grigory
06.12.2017
06:43:44
Печалька, ну да ладно
попробуй делать их поменьше длины

типа группировать

Alexey
06.12.2017
06:44:43
Да я подумывал о полностью типизированном html, но с такими ограничениями не прокатит

Grigory
06.12.2017
06:44:48
но взависимости от ошибки на которую напоришься я думаю можно будет подергать какиенить флаги компилятора

а

Alexey
06.12.2017
06:46:02
Типо описать всю приложуху через продукты/копродукты, но видимо не судьба

Alexey
06.12.2017
06:47:24
Так есть же левша!
И где там типизация?)

Grigory
06.12.2017
06:47:50
Google
Igor
06.12.2017
07:29:19
А интересно, iota здесь не поможет? https://github.com/frees-io/iota

MIkhail
06.12.2017
07:39:28
Всем доброе утро!

подскажите, Iteratee в Play 2.2 какой-то ну оч ограниченый апи, как там отслеживали закрытие вебсокета раньше? в далеком 2012 +-

вот сиотрю, есть eofAndEnd, но это клиенту, а от клиен а?

на стековере пишут что map вместо onClose, но тогда коннект после первого же сообщения от клиен а и закрывается

или это так и надо, прочитал сообщение от клиента и сразу закрыл сокет??

Oleg
06.12.2017
07:41:53
Печалька, ну да ладно
https://scastie.scala-lang.org/PdQ6HmtOR6uaAtSoFntajw

Не слушай их

Но лучше не пытайся расширять этот пример в scastie

Vladimir
06.12.2017
07:45:06
подскажите, Iteratee в Play 2.2 какой-то ну оч ограниченый апи, как там отслеживали закрытие вебсокета раньше? в далеком 2012 +-
вроде в сторону enumerators надо смотреть в этом случае, именно у них соотв-е методы кажется были

Kirill
06.12.2017
08:00:35
пацаны, ваше мнение: предположим есть мониксовые таски, и есть примерно такой код: val sideEff1: Task[Resource] = ??? // side effect operation reading the resource val sideEff2: Task[Unit] = sideEff1.flatMap(resource => ...) // do something side-effect-ish with resource ??? // close resource no matter if sideEff2 was success or not как правильно закрыть ресурс (если он был успешно открыт) вне зависимости от того, был ли успешно выполнен sideEff2 или нет?

Yuriy
06.12.2017
08:02:55
try finally?

Kirill
06.12.2017
08:03:24
Ну вопрос был как это сделать в рамках моникса и его тасок :)

Yuriy
06.12.2017
08:03:43
во флэтмапе

Kirill
06.12.2017
08:03:58
ммм, как вариант

Yuriy
06.12.2017
08:05:18
doOnFinish

Kirill
06.12.2017
08:05:21
Я думал, может быть можно как-то хитро сделать так, чтобы отделить закрытие от обработки, сходу придумал только мемоизировать sideEff1 и потом его использовать, но чёт це такое

Yuriy
06.12.2017
08:05:22
еще как вариант

Kirill
06.12.2017
08:05:38
doOnFinish на чём? Вторая таска возвращает Unit

Daniel
06.12.2017
08:06:59
Google
Oleg
06.12.2017
08:08:09
doOnFinish на чём? Вторая таска возвращает Unit
чем это мешает сделать doOnFinish?

def withResourse[Res, A](provide: () => Res, close: Res => Unit)(task: Res => Task[A]): Task[A] = for { res <- Task(provide()) closeTask = Task(close(res)) result <- task(res) .doOnFinish(_ => closeTask) .doOnCancel(closeTask) } yield result

Yuriy
06.12.2017
08:14:25
.flatMap(resource => Task { /*do domething*/ }.doOnFinish(_ => Task{ /*free resource async*/ }))

Denis
06.12.2017
08:14:59
open: Task[Res], close: Res => Task[Unit] ?

если уж быть чистым на все 100 )

Kirill
06.12.2017
08:15:43
да, всё так, я чёт поплыл немного с утреца, очевидный вариант проглядел

спасибо )

Oleg
06.12.2017
08:18:36
если уж быть чистым на все 100 )
на все 100 воображаемых баллов за слив нечистот в канализацию Тасков

Denis
06.12.2017
08:18:50
whatever

Kirill
06.12.2017
08:40:17
А кто использует такие абстракции - таски/ио и иже с ними - насколько большую часть кода покрывает такой подход? Т.е. прямо всё с использованием тасков по всему коду, или только какие-то слои, работающие с сайд-эффектами, их отдают?

Kirill
06.12.2017
08:42:53
даже так

а нужно ли это? то есть, если моя бизнес-логика, например, никак не связана с сайд-эффектами, а с ними связано только получение данных (например), зачем промазывать тасками вообще всё?

Nick
06.12.2017
08:44:49
Once you go `F[_]`you never go back.
Слишком много “go”

Denis
06.12.2017
08:45:56
ну если не связана не промазывай
но как ты уйдешь от тасков если у тебя есть таски хотябы для получения данных - непонятно

даже если есть только один Task[Data] и функция pureLogic: Data => OtherData ты все равно получишь Task[OtherData]

Alexey
06.12.2017
08:56:28
даже если есть только один Task[Data] и функция pureLogic: Data => OtherData ты все равно получишь Task[OtherData]
Но это можно задвинуть в самый край. Но нужна нормальная композиция функций, а тут скала проходит мимо

Denis
06.12.2017
09:14:26
https://joyofhaskell.com

Google
Daniel
06.12.2017
09:16:14
Еще одна

Когда уж выпустят

Nikolay
06.12.2017
09:48:36
@dveim у меня еще один аргумент для перехода на более новую идею. в 2017.3 пофиксили вывод типов для shapeless.Generic и shapeless.LabelledGeneric. то есть когда делаешь Generic[Foo].to(Foo(1, "hello")), вывод типа в идее покажет не Repr, как раньше, а Int :: String :: HNil

правда не в такой записи, а ::[Int , ::[String, HNil]]

Oleksandr
06.12.2017
09:50:16
хм, ну для шейплесологов это аргумент, да

Admin
ERROR: S client not available

Oleksandr
06.12.2017
09:50:42
хотя они небось в енсиме пишут, а не в идее

Nikolay
06.12.2017
09:51:55
ну если не брать крайности, то немного shapeless кода тоже может быть в проекте

если circe используешь, какие-то вещи может быть полезно навелосипедить на шейплесе

Alexandr
06.12.2017
10:05:24
@dveim у меня еще один аргумент для перехода на более новую идею. в 2017.3 пофиксили вывод типов для shapeless.Generic и shapeless.LabelledGeneric. то есть когда делаешь Generic[Foo].to(Foo(1, "hello")), вывод типа в идее покажет не Repr, как раньше, а Int :: String :: HNil
в моей 2017.3 не пофиксили и автоматический вывод типов для шейплеса работает тк, что потом не компиллируется. Коллега агитирует на VSCode переходить....

Андрей
06.12.2017
10:10:36
в моей 2017.3 не пофиксили и автоматический вывод типов для шейплеса работает тк, что потом не компиллируется. Коллега агитирует на VSCode переходить....
это не в идее, а в скала плагине. По ощущениям, стабильный плагин почти не тестится - каждый апдейт приносит людям кучу боли, и наоборот найтли производит впечатление стабильного. Про вскод расскажи потом пожалуйста, или коллега

Igor
06.12.2017
10:12:01
в моей 2017.3 не пофиксили и автоматический вывод типов для шейплеса работает тк, что потом не компиллируется. Коллега агитирует на VSCode переходить....
> Коллега агитирует на VSCode переходить.... А ты сможешь жить без рефакторингов? Плюс тк VSCode написан на JS, то он просто не тянет большые фалы (скрол подвисает)

Андрей
06.12.2017
10:14:52
хотя, я ж сидел на стабильном и сравниваю для своего скоупа

Grigory
06.12.2017
10:15:40
можно же просто уйти с shapless
имхо - если используется шейплез, то авто вывод типов не нужен.

Sergey
06.12.2017
10:17:53
в моей 2017.3 не пофиксили и автоматический вывод типов для шейплеса работает тк, что потом не компиллируется. Коллега агитирует на VSCode переходить....
как раз хотел попробовать, как оно, сам VSCode для clojure использую, какие плагины коллега использует для скалы?

Alexandr
06.12.2017
10:21:40
можно же просто уйти с shapless
Можно сделать что...?

Google
Sergey
06.12.2017
11:09:36
а в VSCode для LSP есть что-то? @odomontois

Oleg
06.12.2017
11:09:55
а в VSCode для LSP есть что-то? @odomontois
эмм, это протокол для VsCode

они же его и разработали

Sergey
06.12.2017
11:10:29
точно, но не только для vscode

Oleg
06.12.2017
11:10:30
Но, конечно, нужен ещё плагин, который к нему цепляется и синтаксис подсвечивает

Sergey
06.12.2017
11:10:47
вот я про него спрашивал

Daniel
06.12.2017
11:12:03
Судя по всему там не то чтобы LSP http://eed3si9n.com/scala-language-server-using-sbt

Sergey
06.12.2017
11:20:30
https://marketplace.visualstudio.com/items?itemName=lightbend.vscode-sbt-scala вот еще что-то интересноe, требует правда sbt-1.1.0-RC1

Oleg
06.12.2017
11:22:01
https://developer.lightbend.com/blog/2017-11-30-sbt-1-1-0-RC1-sbt-server/#sbt-server

Sergey
06.12.2017
11:22:03
судя по changelog sbt для 1.1.0-RC1 не зря sbt server feature was reworked to use Language Server Protocol 3.0 (LSP) as the wire protocol, a protocol created by Microsoft for Visual Studio Code.

ну и собсно https://developer.lightbend.com/blog/2017-11-30-sbt-1-1-0-RC1-sbt-server/#vs-code-extension от них же плагин

Evgeniy
06.12.2017
11:24:51
в енсайме скоро будет LSP https://github.com/ensime/ensime-server/pull/1888 уже вот к atom-у пробовали приделывать https://github.com/laughedelic/atom-ide-scala/pull/3

еще тут делают https://github.com/scalameta/language-server

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