@kotlin_lang

Страница 951 из 982
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
Это все равно все происходит в рантайме

И вот каждый раз эти аргументы звучат от разных людей. И вы это называете ором без аргументов

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

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
А нагенеренный про куда денешь?
это капля в море по сравнению с данными

Alexey
16.10.2018
07:49:27
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
в репе ktor есть пример апы для GAE
однако там скрипты на Groovy

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

Руслан
16.10.2018
07:53:14
однако там скрипты на Groovy
так там тоже самое что в обычном gradle

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
@meosit /\
спасибо

Mikhail
16.10.2018
08:13:00
На сколько я знаю все что загружено класслоадером никогда не выгрузится за исключением случая когда гц собрал этот класслоадер
ничего полезного не нагуглил, ну допустим классы выгружаются только вместе с класслоадером, так в чем проблема? если класслоадер сделал свое дело, загрузил все что нужно, а потом эти классы оказались не нужны, зачем на него держать ссылку? все само и выгрузится

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
где 2 восклицатеьных знака
http://kotlinlang.org/docs/reference/null-safety.html#the--operator

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

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

Nameless
16.10.2018
08:24:18
означает "file по-любасу не null"
Понятийно ориентированное программирование

Георгий
16.10.2018
08:27:47
Vladislav
16.10.2018
08:30:59
А что мешает вытащить из спрингбута томкат и MVC запчасти, и подсунуть ему ktor, оставив DI, транзакции и прочее вам нужное?)
Да просто зачем. Лучше просто брать всю инфраструктуру, которая специально заточена под ktor и kotlin

А DI я руками делаю, просто в конструкторе передаю зависимости

Alexandr
16.10.2018
08:31:41
А зачем пытаться выгрузить сгенерированные классы, если через них всё приложение работает?
как раз тоже хотел написать. теоретически можно, но тогда не получится делать скоупы, только синглтоны. иначе да, от сгенеренного кода не избавится

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

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

Badya
16.10.2018
08:32:37
Да просто зачем. Лучше просто брать всю инфраструктуру, которая специально заточена под ktor и kotlin
Одним из основных аргументов за Котлин было то, что все из жавы работает и писать заново не надо

Страница 951 из 982