Size: a a a

2019 December 18

RI

Ruslan Ibragimov in Kotlin JVM
Есть таска docs которая что-то генерит (у меня pdf из asciidoc) в модуле agent-docs, в другом модуле есть application плагин, который берет все jar которые должны быть в runtime + скрипты для запуска + доки и пакует в zip/tar

application {
   applicationName = "agent"
   mainClassName = "com.company.Main"
   applicationDistribution
       .from(tasks.getByPath(":agent-docs:docs"))
       .into("docs")
}
источник

RI

Ruslan Ibragimov in Kotlin JVM
Application расширяет distribution, так что по идеи примерно так-же можно с ним сделать
источник

AO

Alexey Otts in Kotlin JVM
Народ, кто чем в мемкешь ходит?
Я почему то всё что нашёл - такой шлак
источник
2019 December 19

IP

I Prvz 🌚 in Kotlin JVM
Приветствую. Объясните, пжлст, что я делаю не так?

private fun <T: Comparable<T>> classifyValue(value: String, conditionalType: String): T {

   return when(conditionalType) {
       "Int" -> value.toInt()
       "String" -> value
       else -> throw IllegalStateException("Unsupported conditional type")
   }
}
источник

AT

Alexey Tkachenko in Kotlin JVM
I Prvz 🌚
Приветствую. Объясните, пжлст, что я делаю не так?

private fun <T: Comparable<T>> classifyValue(value: String, conditionalType: String): T {

   return when(conditionalType) {
       "Int" -> value.toInt()
       "String" -> value
       else -> throw IllegalStateException("Unsupported conditional type")
   }
}
Очевидно, возвращаешь не тот тип, который объявлен в сигнатуре
источник

MK

Mark Kos in Kotlin JVM
Можно добавить as T
источник

IP

I Prvz 🌚 in Kotlin JVM
Alexey Tkachenko
Очевидно, возвращаешь не тот тип, который объявлен в сигнатуре
Ну вот об этом и вопрос. Я, конечно, давно не трогал дженерики в котлине, но вроде как логично же получается
источник

MK

Mark Kos in Kotlin JVM
I Prvz 🌚
Ну вот об этом и вопрос. Я, конечно, давно не трогал дженерики в котлине, но вроде как логично же получается
Как компилятор будет узнавать, что именно за T ты используешь?
источник

AT

Alexey Tkachenko in Kotlin JVM
I Prvz 🌚
Ну вот об этом и вопрос. Я, конечно, давно не трогал дженерики в котлине, но вроде как логично же получается
Тип дженерика стирается же, нужно привести явно
источник

IP

I Prvz 🌚 in Kotlin JVM
Alexey Tkachenko
Тип дженерика стирается же, нужно привести явно
А reified никак не поможет?
источник

VP

Vladimir Petrakovich in Kotlin JVM
I Prvz 🌚
Ну вот об этом и вопрос. Я, конечно, давно не трогал дженерики в котлине, но вроде как логично же получается
А где логика? Метод вернёт любой тип, который заставят?
Всё, что можно сделать - выкинуть дженерики.
источник

AT

Alexey Tkachenko in Kotlin JVM
I Prvz 🌚
А reified никак не поможет?
Может помочь, но ты вначале представь, что ты вызываешь этот метод и в качестве T даёшь ему, например, Double
источник

IP

I Prvz 🌚 in Kotlin JVM
Да. Всё. Въехал. Спасибо, всем, кто заставил подумать с непривычки)
источник
2019 December 20

AL

Anton Lakotka in Kotlin JVM
Привет,
Можете посоветовать какой-нибудь литературы по теме организации кода в джава приложениях?

я не работал с джавой до котлина.

И сейчас пишу все в одном модуле, он уже довольно крупно вырос и у меня есть такое подозрение, что его следовало бы разделить на модули / sourceset-ы.

В таком случае можно было бы пользоватся internal-ами да и компилировать не все целиком, а только части.
ибо иногда невозможно нормально рефакторить некоторые части, т.к. компиляция постоянно ломается. а так бы в рамках одного модуля можно было бы эксперементировать/тестировать и уже потом менять зависимые модули.
источник

VP

Vladimir Petrakovich in Kotlin JVM
Anton Lakotka
Привет,
Можете посоветовать какой-нибудь литературы по теме организации кода в джава приложениях?

я не работал с джавой до котлина.

И сейчас пишу все в одном модуле, он уже довольно крупно вырос и у меня есть такое подозрение, что его следовало бы разделить на модули / sourceset-ы.

В таком случае можно было бы пользоватся internal-ами да и компилировать не все целиком, а только части.
ибо иногда невозможно нормально рефакторить некоторые части, т.к. компиляция постоянно ломается. а так бы в рамках одного модуля можно было бы эксперементировать/тестировать и уже потом менять зависимые модули.
В джаве всё как в котлине, только ещё package-private есть
источник

AT

Alexey Tkachenko in Kotlin JVM
Clean Architecture + SOLID
источник

VP

Vladimir Petrakovich in Kotlin JVM
Ну и ещё BlaBlaUtils и всё в таком духе
источник

BV

Boris Vanin in Kotlin JVM
Anton Lakotka
Привет,
Можете посоветовать какой-нибудь литературы по теме организации кода в джава приложениях?

я не работал с джавой до котлина.

И сейчас пишу все в одном модуле, он уже довольно крупно вырос и у меня есть такое подозрение, что его следовало бы разделить на модули / sourceset-ы.

В таком случае можно было бы пользоватся internal-ами да и компилировать не все целиком, а только части.
ибо иногда невозможно нормально рефакторить некоторые части, т.к. компиляция постоянно ломается. а так бы в рамках одного модуля можно было бы эксперементировать/тестировать и уже потом менять зависимые модули.
Не знаю литературу, но для джавы/котлина по-умолчанию разные сорссеты main/java и main/kotlin
источник

AT

Alexey Tkachenko in Kotlin JVM
Boris Vanin
Не знаю литературу, но для джавы/котлина по-умолчанию разные сорссеты main/java и main/kotlin
зачем это?
источник

AL

Anton Lakotka in Kotlin JVM
не-не я про то как делить на пакеты. и все это организовать с best-practice по градлу
источник