@scala_ru

Страница 690 из 1499
folex
23.05.2017
10:16:14
@rudogma кстати, а если у меня в каждом eid выполняется инстанциирование какой-то DTO, как бы мне это один раз делать на каждый элемент коллекции, а не каждый раз на каждый вызов? %) наверное никак?

Daniel
23.05.2017
10:19:06
из простых вариантов или отделить это инстанциирование от остального eid или объединить обращения в один вызов

folex
23.05.2017
10:20:26
из простых вариантов или отделить это инстанциирование от остального eid или объединить обращения в один вызов
у меня просто на самом деле не eid, а toSomeDTO, инстанциирование не отделить, так что второй вариант: надо просто один раз пробегаться, и конвертировать

Google
Mikhail
23.05.2017
10:23:04
ну откровенно говоря) второй вариант в плане код стайла всегда не очень
конечно не очень. потому что не надо определять doWork для коллекции. @folex надо определить только для элемента T def doWork[T](v:T)(implicit ev: ContainingData[T]) =

Kate
23.05.2017
10:34:11
Всем привет, мы пишем проект на scala, в команде много разработчков чисто с java бэкграундом, так что народ втягивается по-ходу. Хотели принять какой-либо scala checkstyle, чтобы ускорить ревью на предмет типичных антипаттернов. Можете посоветовать какой-либо, который на практике пошел норм?

Daniel
23.05.2017
10:38:30
http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html китаец как вариант (сам так и не дочитал)

Mikhail
23.05.2017
10:38:49
Всем привет, мы пишем проект на scala, в команде много разработчков чисто с java бэкграундом, так что народ втягивается по-ходу. Хотели принять какой-либо scala checkstyle, чтобы ускорить ревью на предмет типичных антипаттернов. Можете посоветовать какой-либо, который на практике пошел норм?
пишите как можете для начала. главное чтобы скомпилировалось и работало без ошибок) а потом смотрите на это как на го**о и думайте, что чем заменить - чтобы стало меньше кода, повысилась читаемость и ясность мысли. ну и сюда можете куски кода которые смущают - время от времени кидать - кто-нибудь попинает)

Sergey
23.05.2017
10:51:59
Не, это друзья предложили.
А что за проект стартапа то ?

folex
23.05.2017
10:55:00
поясни, это общее дто для типа или общее в рамках одного элемента но используется в нескольких функциях или что?
У меня есть несколько типов, которые сливаются в одну DTO для работы внутри метода, но при этом из метода нужно вернуть оригинальный, а не DTO, поэтому просто конвертнуть не получится

Mikhail
23.05.2017
10:57:41
У меня есть несколько типов, которые сливаются в одну DTO для работы внутри метода, но при этом из метода нужно вернуть оригинальный, а не DTO, поэтому просто конвертнуть не получится
ниче не понял, как-то запутанно. очередной признак так себешности подхода) возможно, если бы ты накидал чуть подбронее в классах - можно было бы конкретнее сказать

folex
23.05.2017
10:58:42
@rudogma да, понимаю, всё так. Я еще помедитирую на это всё, а потом постараюсь описать подход, и задать по нему вопросы :)

KrivdaTheTriewe
23.05.2017
10:59:13
идея совсем сломалась, есть вохмонжность ее как-нибудь даунгрейдить или переставлять нужно?

Dmitry
23.05.2017
10:59:38
эм?

Google
Dmitry
23.05.2017
10:59:44
джарник старый взять?

Vladimir
23.05.2017
10:59:49
я просто несколько версий одновременно держу

типа stable, dev и т.п.

KrivdaTheTriewe
23.05.2017
11:00:58
джарник старый взять?
диспатч асинк, кстати обновляется

Dmitry
23.05.2017
11:01:29
круть, там сейчас какой нетти юзается?

KrivdaTheTriewe
23.05.2017
11:01:49
круть, там сейчас какой нетти юзается?
а я еще не собирал) поэтому не знаю

<netty.version>4.1.11.Final</netty.version>

Хотя, я вру, <netty.version>4.0.47.Final</netty.version> , 4 в общем ( идея пишет 4.0.27)

Dmitry
23.05.2017
11:06:06
остается надеяться что у тебя в проекте тоже 4

Dmitry
23.05.2017
11:10:23
close enough

Dmitry
23.05.2017
11:10:52
я по этому в свое время ребут не юзал

а классик

потому что спрей тянул другую версию

KrivdaTheTriewe
23.05.2017
11:11:33
E = 1 | netty.spark.version - netty.async.version|.toInt < E , все нормально

Kate
23.05.2017
11:13:01
По стайлам - спасибо за предложения!

Alexander
23.05.2017
11:28:30
Возможно кому-то будут интересны наши zero-dependency tagged types: https://github.com/Treev-io/tagged-types Зачем это нужно: https://failex.blogspot.com.by/2017/04/the-high-cost-of-anyval-subclasses.html?view=sidebar

Daniel
23.05.2017
11:31:28
любопытно

Oleg
23.05.2017
11:38:16
Это не тоже самое https://github.com/softwaremill/scala-common#tagging ?
zero депеденси. Т.е. один исходник, без тестов

Google
Alexander
23.05.2017
11:38:37
Oleg
23.05.2017
11:38:38
Кода там как раз на запись в блоге

Alexander
23.05.2017
11:41:25
у Адама нету удобного базового типа для объявления в одну строку и апи для тэганья контейнерных типов (зато есть не сильно нужный TypeclassTaggingCompat)

Arthur
23.05.2017
11:52:37
прошлый вопрос не зашел, может тут кто подскажет, я достаю скаламетой параметры функции и хочу вычислить хешкод для каждого параметра, пытаюсь сделать это так val ss = paramss.flatten.map { p => val r = q"println(${p.name.syntax}.hashCode())" println(r) r } но код который генерируется выглядит как println("a".hashCode()) вместо того чтобы поставить параметр, кто может подсказать как сделать так чтобы вместо имени как строка подставлялось имя как параметр

RunOver
23.05.2017
12:02:01
Скала коалу в какао макала, коала под скалой какао лакала. #упоринум

Mikhail
23.05.2017
12:05:26
Возможно кому-то будут интересны наши zero-dependency tagged types: https://github.com/Treev-io/tagged-types Зачем это нужно: https://failex.blogspot.com.by/2017/04/the-high-cost-of-anyval-subclasses.html?view=sidebar
интересно, но есть вопросик. как преодолеть? object Username extends TaggedType[String] type Username = Username.Type def check(user:Username): Unit ={ println("user: "+user) } val user = "Hutor".@@[Username] val user2 = Username("Hutor 2") // check(user) // failed!!! wanted)) check(user2) // compiles ok

я знаю конечно, что String @@ Username будет работать, но хочется прям красиво без этого)

Alex
23.05.2017
12:07:01
кто нибудь трогал https://github.com/strymonas/staged-streams.scala ?

Mikhail
23.05.2017
12:07:30
хотя String @@ Username компилит первую строчку, но фейлит вторую

Oleg
23.05.2017
12:09:07
Alex
23.05.2017
12:09:37
реализация стрим фьюженов от киселева и компании

https://strymonas.github.io/

Oleg
23.05.2017
12:10:55
Он компилит стримы на лету?

Alex
23.05.2017
12:11:07
похоже на то

Oleg
23.05.2017
12:11:43
Типа как раст, только в скале, обрабатывает без промежуточных аллокаций, вызовов?

Alex
23.05.2017
12:12:20
As confirmed experimentally, our library indeed offers the highest, guaranteed, and portable performance.

Alexander
23.05.2017
12:12:32
хотя String @@ Username компилит первую строчку, но фейлит вторую
У тебя там есть неточности, нужно так: object foo { object Username extends TaggedType[String] type Username = Username.Type def check(user: String @@ Username.Tag): Unit ={ println("user: "+user) } val user = "Hutor".@@[Username.Tag] val user2 = Username("Hutor 2") check(user) // failed!!! wanted)) check(user2) // compiles ok }

Alex
23.05.2017
12:12:53
оно поверх https://scala-lms.github.io/

Google
Alex
23.05.2017
12:13:18
ну пишут что заруливает Java8 стримы

Alexander
23.05.2017
12:15:11
@rudogma и так тоже тогда можно def check(user: Username): Unit ={ println("user: "+user) }

Mikhail
23.05.2017
12:16:08
@tvaroh в ридми пример с check(user:Username) и Username.Tag было бы неплохо добавить, а то я это первым делом полез искать не разбираясь как оно внутри там)

Alexander
23.05.2017
12:19:27
принято

Mikhail
23.05.2017
12:44:09
@tvaroh если добавить еще альяс, то можно вот так class TaggingExtensions ... { ... def @@[U](taggedType: TaggedType[U]): T @@ taggedType.Tag = taggedWith[taggedType.Tag] } val user3 = "Hutor 3" @@ Username

Alexander
23.05.2017
12:45:16
любопытно, но справа всё же тэг должен быть

Mikhail
23.05.2017
12:45:28
я же его дальше внутри беру из обьекта

Alexander
23.05.2017
12:46:00
я понимаю, но идея в том, что справа от @@ должет быть тэг, а слева raw value

чтобы это выглядело так же, как тип String @@ SomeTag

Mikhail
23.05.2017
12:46:22
оно работает точно также как @@[U]

только запись красивая

Alexander
23.05.2017
12:47:51
понял тебя, в принципе такое можно добавить да

Mikhail
23.05.2017
12:51:39
чтобы это выглядело так же, как тип String @@ SomeTag
идеологически оно так и получается. в одном случае на уровне типов String @@ SomeTag , во втором случае если спустились на уровень экземпляров rawValue @@ SomeTag(as instance of tag) - тоже кошерненько)) write once use everywhere

Alexander
23.05.2017
12:52:12
да, отличная идея на самом деле ) скоро будет, спасибо

Kirill
23.05.2017
13:06:33
товарищи, энтерпрайз совсем моск съел. Кладу файл конфигурации в classpath, и typesafe ConfigFactory его радостно ховает, принимая имя файла в метод load(). Но если я кладу файл в папку, то все, капут. Что со слешем, что без слеша. ЧЯДНТ?

Nikolay
23.05.2017
13:09:27
в какую папку?

и как ты загружаешь файл конфигурации?

Google
Nikolay
23.05.2017
13:10:02
и как load() вызываешь?

Kirill
23.05.2017
13:10:57
от подробностей может стать больно. Итак: я собираю war-архив. Все жарки лежат в WEB-INF/lib, экспериментальным путем было установлено, что если туда кинуть конфиг, то ConfigFactory по имени файла его найдет и сховает

но есть я кладу конфиг в WEB-INF/lib/config и делаю ConfigFactory.load(s"/config/$configName"), то магия не работает

Юрий
23.05.2017
13:12:11
начинай без слэша

Kirill
23.05.2017
13:12:22
пробовал, не влияет

опаньки, ConfigFactory.parseResources(configName) сховал все отличненько из папки

вопрос закрыт, спасибо)

Wystan
23.05.2017
13:42:47
А не, у меня другой случай. Можно либо деньги попросить, они есть, либо часть процентами взять.

В комментах там интересная дискуссия. Этот Егор толковый мужик.

Andry
23.05.2017
14:55:32
Офф. Какое классное кресло :) https://youtu.be/nQ7mhC5_Rys

Oleg
23.05.2017
15:24:07
В комментах там интересная дискуссия. Этот Егор толковый мужик.
В армии адептов элегантных объектов прибыло?

элегантных адептов

Nick
23.05.2017
15:26:00
KrivdaTheTriewe
23.05.2017
15:26:00
Elegant Monads In Cats

https://habrahabr.ru/company/mailru/blog/329258/

Nick
23.05.2017
15:28:41
когда эти олени вымрут

Nikolay
23.05.2017
15:29:30
mailru?

Nick
23.05.2017
15:29:44
кто сравнивает несравнимое)

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