
Alexey
16.10.2018
06:21:10
Вот как вы относитесь к груви?

Alexandr
16.10.2018
06:26:03

Alexey
16.10.2018
06:27:57

Google

Alexey
16.10.2018
06:28:31
Это все равно все происходит в рантайме
И вот каждый раз эти аргументы звучат от разных людей. И вы это называете ором без аргументов

Bogdan
16.10.2018
06:30:40

Alexey
16.10.2018
06:30:41
Если бы спринг все аннотации процессил на этапе компиляции, к нему бы вопросов было значительно меньше

Bogdan
16.10.2018
06:32:46

Alexandr
16.10.2018
06:52:37
а что поудаляли мои коментарии то?

Mikhail
16.10.2018
06:54:41
Я вот переезжаю со спринга, т.к. надоело встревать в тупые проблемы в среднем раз в месяц, от спринга у меня только rest-api, но и этого хватает чтобы закапываться в стековерфлоу на полдня с любой мелкой проблемой

Alexandr
16.10.2018
06:55:24
ни разу за последние года 3 не закапывался. может надо просто изучить
да, местами спринг надо именно изучить)

Mikhail
16.10.2018
06:56:36
Ещё и обновление бута до второй версии не работает, у них там внутренний конфликт вебсокетов со скедулером

Alexandr
16.10.2018
06:57:01
чет тоже апнули и проблем нет

Mikhail
16.10.2018
06:57:07
Бага год назад была заведена, весной закрыли, но так и не заработало

Google

Mikhail
16.10.2018
06:58:59
Я сейчас заканчиваю писать враппер над своим фреймворком для совместимости с бутом

Alexey
16.10.2018
07:31:56

Alexandr
16.10.2018
07:33:30
жуть

Alexey
16.10.2018
07:39:17
неа, дольше
даже если это бы занимало в 2 раза больше в компайл тайме чем в рантайме, это всё равно было бы дешевле, так как ждать несколько минут старта могут себе позволить редкие приложения

Alexandr
16.10.2018
07:40:01
не думаю что старт бы так сильно ускорился
время занимает отнюдь не генерация проксей, а поднятие фреймворка

Alexey
16.10.2018
07:40:37
Ага, сканирование classpath это же такая незначительная операция

Alexandr
16.10.2018
07:40:40
ну и того, что настроили

Alexey
16.10.2018
07:41:18
У каждого класса в класс пазе надо ещё рефлексией посмотреть наличие аннотаций
Создание классиков по сравнению с этим просто моментальная операция

Alexandr
16.10.2018
07:44:16
а потом спросят откуда столько кода загружено в рантайме
и да, а стоит ли экономить время настарте? что к нему привязались то? это редкая операция
а вот если в рантайме будет съедена лишняя память - проблема

Alexey
16.10.2018
07:47:11

Alexandr
16.10.2018
07:48:08
А нагенеренный про куда денешь?

Mikhail
16.10.2018
07:48:22

Alexandr
16.10.2018
07:48:23
Его тоже надо будет загрузить что бы выполнить

Google

Vladimir
16.10.2018
07:48:48
Вы бы уже сравнили приложение на спринге с приложением на http://micronaut.io и всё

Alexandr
16.10.2018
07:48:50

Alexey
16.10.2018
07:48:56

Mi
16.10.2018
07:48:56
Приветствую, у кого-нибудь не найдётся примера Koltin + Gradle Kotlin DSL примера приложения для GAE? Благодарю

Mikhail
16.10.2018
07:49:02

Alexey
16.10.2018
07:49:12

Alexandr
16.10.2018
07:49:22

Alexey
16.10.2018
07:49:27

Руслан
16.10.2018
07:49:41

Alexandr
16.10.2018
07:49:51

Alexey
16.10.2018
07:49:57
кек

Mi
16.10.2018
07:49:59

Alexandr
16.10.2018
07:50:13
Я думал Руслан оффлайн, а он просто наблюдатель сегодня)))

Mi
16.10.2018
07:52:03

Alexandr
16.10.2018
07:52:09

Alexey
16.10.2018
07:52:45
Нет
Как нет то, если jvm их выгружает

Руслан
16.10.2018
07:53:14
https://ktor.io/quickstart/index.html
вот тут вкладка kotlin там где скрипт

Mikhail
16.10.2018
07:53:43
Нет
ну как нет, выгружается ненужное

Google

Mikhail
16.10.2018
07:53:45
вот стата с прода

Alexandr
16.10.2018
07:54:38
Что это за метрика?

Mikhail
16.10.2018
07:55:40
final ClassLoadingMXBean classLoadingMXBean = ManagementFactory.getClassLoadingMXBean();
@Override
public void record(Recorder recorder) {
recorder.gauge(metricJvmClassesLoaded, classLoadingMXBean.getLoadedClassCount());
recorder.gauge(metricJvmTotal, classLoadingMXBean.getTotalLoadedClassCount());
recorder.gauge(metricJvmClassesUnloaded, classLoadingMXBean.getUnloadedClassCount());
}

Admin
ERROR: S client not available

Alexandr
16.10.2018
07:59:25
Окей, по какому признаку происходит выгрузка? Давай линки
На сколько я знаю все что загружено класслоадером никогда не выгрузится за исключением случая когда гц собрал этот класслоадер

Руслан
16.10.2018
08:01:50
вот тут вкладка kotlin там где скрипт
Только вот appengine-gradle-plugin не лежит в gradle plugin portal (https://github.com/GoogleCloudPlatform/gradle-appengine-plugin/issues/307 вот тут можешь лайкнуть чтобы починили), поэтому нужно в settings.gradle.kts вот такой костыль прописать:
pluginManagement {
// ...
resolutionStrategy {
eachPlugin {
if (requested.id.id == "appengine") {
useModule("com.google.appengine:gradle-appengine-plugin:1.9.59")
}
}
}
}
https://github.com/gradle/kotlin-dsl/blob/master/doc/getting-started/Configuring-Plugins.md


Mi
16.10.2018
08:06:19

Mikhail
16.10.2018
08:13:00

Alexandr
16.10.2018
08:15:04

Mikhail
16.10.2018
08:15:54

Alexandr
16.10.2018
08:16:34
Группа джаров грузится одним класслоадером, на уровне кода можно загрузить несколькими. Загрузку одного джара не разделить

Mikhail
16.10.2018
08:18:15
у спринг-бута например в джаре лежат джары всех зависимостей, для каждого отдельного джара можно свой класслоадер сделать

Vladimir
16.10.2018
08:19:56
А зачем пытаться выгрузить сгенерированные классы, если через них всё приложение работает?

Larymar
16.10.2018
08:20:18
подскажите что означает эта конструкция или как она хотя бы назвается
file!!.exists()
где 2 восклицатеьных знака

Vladimir
16.10.2018
08:21:03

Google

Георгий
16.10.2018
08:21:10
означает "file по-любасу не null"

Larymar
16.10.2018
08:22:27
спасибо

Nameless
16.10.2018
08:24:18

Alexandr
16.10.2018
08:26:32
короче холивар для холивара

Георгий
16.10.2018
08:27:47

Badya
16.10.2018
08:29:16
Аргументы такие, что spring медленный, жрет много оперативы, и много подкапотной магии. Это его минусы. Для старта он конечно хорошо, но потом надо очень много гуглить чтобы сделать что-то более менее сложное. Я несколько лет писал на спринге, сейчас вот попробовали ktor. Понравилось то что там все довольно очевидно, он очень быстр. Для работы с бд просто подключили Hibernate, хотя можно было попробовать и другие ормки по проще. Да немного больше велосипедить, ты прав насчёт транзакционности и jms ее надо самому сделать, но в остальном очень все нравится
А что мешает вытащить из спрингбута томкат и MVC запчасти, и подсунуть ему ktor, оставив DI, транзакции и прочее вам нужное?)

Vladislav
16.10.2018
08:30:59
А DI я руками делаю, просто в конструкторе передаю зависимости

Alexandr
16.10.2018
08:31:41

Badya
16.10.2018
08:31:42

dimiii
16.10.2018
08:32:04
Да, немного оффтопа и от меня, впечатленного вашим жарким и очень актуальным обсуждением о прокси и выгрузке классов.
Интернету нужно место, где яростные спорщики могли бы решать серьезные вопросы о монадах спринге имаксе и прочих нерешенных проблема индустрии. Где зрители в интерактивном режиме ставили бы им лайки / дислайки и одобрительно люлюкали в соседнем фрейме. Такое цифровое ристалище 21 века.

Alexandr
16.10.2018
08:32:30
Путь самурая
путь доширака скорее всего. крупное приложение потом дорого поддерживать станет

Badya
16.10.2018
08:32:37

Alexandr
16.10.2018
08:33:09