@scala_ru

Страница 117 из 1499
Юрий
23.09.2016
09:29:50
с ними всё так

Alex
23.09.2016
09:29:58
Task.handleWith

Nick
23.09.2016
09:30:02
вы просто на акке сидите и шлете месаги)

Юрий
23.09.2016
09:30:35
я к тому, что уже есть какие-то стандартные эксепшоны и лучше юзать их

Google
Юрий
23.09.2016
09:30:49
то есть надо знать, что они вообще существуют

Nick
23.09.2016
09:31:00
угу, я вот всегда кидаю RuntimeException, зачем создавать своё)))))

Юрий
23.09.2016
09:31:17
ну да, нахер нам детализация, всё одно :)

Grigory
23.09.2016
09:31:20
ахахахахахахах

folex
23.09.2016
09:32:31
Единственная проблема эксепшнов — они рвут любую систему типов. Ну кроме тех, которые с эффектами, а их тащем-та нету если джавовую не считать.

Alexandr
23.09.2016
09:32:39
ну ты все равно будешь постоянно так или иначе работать с джава наследием - эксепшоны, jvm, стандартная библиотека java
Ну, стандартная библиотека для работы со всякими датами, эксепшнами - это понятно. Но нужно ли, работая на akka, знать все java-структуры на низком уровне, знать, как с потоками вручную работать и т.д.?

Юрий
23.09.2016
09:33:04
тонкости знать обычно не нужно имхо

folex
23.09.2016
09:33:20
Их нужно знать в критических ситуациях

Юрий
23.09.2016
09:33:31
с джава колллекциями ты вообще почти не будешь сталкиваться при работе со скалой

Alex
23.09.2016
09:33:44
мне кажется, если спрашивать, ответ всегда будет ближе к "да" :)

Diemust
23.09.2016
09:33:55
типа "или напишешь офигенный код на джава, или мы тебе голову отрежем"?

Alex
23.09.2016
09:34:05
а то что это получается, люди сидели годами зубрили эррейлисты, а тут ты такой раз и красивый

Nick
23.09.2016
09:34:14
в скале конкарент коллекции гуана кстати

Google
Nick
23.09.2016
09:34:22
приходится джавовые юзать

Alexandr
23.09.2016
09:37:03
То есть, например, программист уровня middle, который пишет только на scala, все равно должен знать java так же хорошо, как и middle-программист, который пишет только на java?

Юрий
23.09.2016
09:37:40
ну примерно так

Alexandr
23.09.2016
09:38:22
Прикольно)

Юрий
23.09.2016
09:38:28
кстати да, java.util.concurrent надо прям знать, она частенько может пригодиться

Alexandr
23.09.2016
09:39:24
Тогда все, перешедшие на scala с <любой не java язык>, идут лесом))

Борис
23.09.2016
09:39:51
Юрий
23.09.2016
09:41:00
Тогда все, перешедшие на scala с <любой не java язык>, идут лесом))
Ну не факт. Сама джава и jvm - это не так сложно. Обычно для java программистов вся сложность в инфраструктуре - фреймворки, либы. А для работы со скалой тебе не нужно это (обычно)

Sovent
23.09.2016
09:44:45
Ну не факт. Сама джава и jvm - это не так сложно. Обычно для java программистов вся сложность в инфраструктуре - фреймворки, либы. А для работы со скалой тебе не нужно это (обычно)
ага, простенькое rest api, которое в .NET в студии поднимается в несколько кликов и деплоится так же, на Scala у меня уже несколько часов настраивается. я понимаю, что я избалованный Microsoft'ом казуал, но инфраструктура тут для не JVMщика всё ещё проблема.

Юрий
23.09.2016
09:45:29
ну так возьми play

и не парься с akka-http

если тебе комбайн нужен где всё есть и заводится быстро

Sovent
23.09.2016
09:46:34
а play с akka-акторами дружит?

Diemust
23.09.2016
09:46:42
плей на акторах

Alexandr
23.09.2016
09:46:48
Да

Nikolay
23.09.2016
11:38:23
и не парься с akka-http
меня парит в akka-http что я не могу скажем быстро в REPL потестить простейший HTTP запрос или роут какой-то. всегда все сводится к куче импортов

особенно когда нужно еще какой-то header добавить к запросу)

Aleksei
23.09.2016
11:41:14
есть же тесты

зачем репл

Dim
23.09.2016
11:41:36
Ага

Google
Nikolay
23.09.2016
11:41:45
какие тесты?

да само собой в тестах тоже есть

некоторые вещи нужно просто запустить, ценности в тестах они не имеют. это в java я помню что тесты были самым быстрым способом запустить какой-то код. а в scala есть REPL

Dim
23.09.2016
11:44:18
Мы вот живём со Scalatra на jetty и akka.

Daniel
23.09.2016
11:44:56
не очень представляю как можно вообще протестить роуты быстро в репле все равно же надо пачку кода копипастить

worksheet не поможет?

Nikolay
23.09.2016
11:47:16
можно и worksheet, мне REPL больше нравится

Viacheslav
23.09.2016
13:21:56
Друзья есть вопрос: предположим у нас есть пачка option-ов мы можем сделать так: for { result1 <- option1 result2 <- option2 ... }...мы получим результат если все option содержат данные. А есть ли такие красивые языковые инструменты чтобы: 1. выполнился мой код Только если все option пустые 2. какой-нибудь такой паттерн матчинг чтобы например если 3 первый option пустые то выполняется мой код карочи я хочу паттерн матчинг по нескольким option если они пачкой удовлетворяют моему условию то выполняем код

Artem
23.09.2016
13:23:21
паттернматчить тьюпл+ из опшенов?

Nikolay
23.09.2016
13:24:36
(opt1 ++ opt2 ++ opt3).isEmpty

Lev
23.09.2016
13:25:16
чего только люди не сделают, чтобы if condition не использовать ?

Foo
23.09.2016
13:25:20
1. в конце дернуть getOrElse ??

Nikolay
23.09.2016
13:25:31
поскольку у нас Option тоже корнями в коллекции уходит, то можно из них Iterable[T] сделать и проверить размер

чего только люди не сделают, чтобы if condition не использовать ?
и параметр явно не передавать в функции еще, ага)

Lev
23.09.2016
13:28:07
и чтобы не оборачивать почём зря

Viacheslav
23.09.2016
13:35:24
ну да, примерно так и думал, но всё равно как-то это всё бойлерплейтненько получается и неинтуитивно

ну ок, просто бойлерплейтно)

Grigory
23.09.2016
13:36:22
можешь заменить на коллект

(opt1 :: opt2 :: opt3 :: opt4 :: Nil) collect { case None :: None :: None :: tail => "wow!" }

Google
Nikolay
23.09.2016
13:36:40
?

дело привычки, честно слово

я прямо читаю и вижу что человек сказать хотел

Vladimir
23.09.2016
13:37:36
все еще лучше null-checkов :D

Nikolay
23.09.2016
13:41:17
не совсем понял)

D
23.09.2016
13:41:43
далеко не всегда пачка фиксированного размера :)

Admin
ERROR: S client not available

Daniel
23.09.2016
13:43:28
Iterator(None, None, None).filterNot(_ == None).isEmpty

Nikolay
23.09.2016
13:43:42
ну так откуда эти option-ы берутся? в примере просто из переменных. если хочется более конкретный пример, то можно адаптировать

Daniel
23.09.2016
13:44:16
о, нет!
я думал тут творческий кружок =(

Lev
23.09.2016
13:45:09
хотя, если это ради самовыражения… почему бы и нет

лишь бы не водка

Nikolay
23.09.2016
13:46:56
пф, тут еще решения с shapeless не было)

я думаю там можно что-то интересное изобразить

жаль что нет в чате человека, который бы shapeless продвигал

был бы тогда творческий кружок что надо

Denis
23.09.2016
13:50:15
что его продвигать ?

Google
Denis
23.09.2016
13:50:27
дело стоит тысячи слов

посмотреть на либы где используется и все понятно сразу )

Viacheslav
23.09.2016
13:50:48
в принципе с листом худо бедно ок получается, остается только в паттерн матчинг запихать условие - если все элементы не None

Denis
23.09.2016
13:51:03
а если сам не упарываешься по тайплевелу то и не нужно )

Nikolay
23.09.2016
13:51:39
а если сам не упарываешься по тайплевелу то и не нужно )
нет, тут скорее любопытно посмотреть как решается разными способами

Viacheslav
23.09.2016
13:53:06
Lev
23.09.2016
13:53:53
ога, только паттерн матчинг тут за уши притянут

Nikolay
23.09.2016
13:54:00
ну да)

Viacheslav
23.09.2016
13:54:11
дааа)

Nikolay
23.09.2016
13:54:18
хотели паттерн матчинг - получите сполна

это может быть один из case тем более

Viacheslav
23.09.2016
13:54:41
интересно в какой момент после таких фокусов придут по мою душу)

Lev
23.09.2016
13:54:51
l.forall(_.is/nonEmpty) — и читается, и работает. только послевкусие всё равно не пропадает

Nikolay
23.09.2016
13:54:54
через collect тоже самое получится

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