Size: a a a

2020 February 21

AN

Alexander Nozik in Kotlin JVM
Vladimir Petrakovich
Да так же как в спринге всё
Я понимаю, просто объясняю человеку, что такое рефлексия. Так небось и дойдем до того, почему у всех методов с аннотацией сигнатура одна и таже вдруг
источник

BP

Bogdan Panchenko in Kotlin JVM
Alexander Nozik
Вы точно уверены, что это при компилляции делается?
Рефлексия нужна в основном для создания прокси
источник

BP

Bogdan Panchenko in Kotlin JVM
Alexander Nozik
Я понимаю, просто объясняю человеку, что такое рефлексия. Так небось и дойдем до того, почему у всех методов с аннотацией сигнатура одна и таже вдруг
Ты просто человека пугаешь)
источник

AN

Alexander Nozik in Kotlin JVM
Bogdan Panchenko
Рефлексия нужна в основном для создания прокси
Я думаю, что в случае с спринг аннотациями, рефлексия - это костыль, который был нужен за не именеием нормальных билдеров
источник

VP

Vladimir Petrakovich in Kotlin JVM
Alexander Nozik
Я понимаю, просто объясняю человеку, что такое рефлексия. Так небось и дойдем до того, почему у всех методов с аннотацией сигнатура одна и таже вдруг
Ну человек должен понимать, что Assembly.GetTypes() - это рефлексия в чистом виде
источник

AN

Alexander Nozik in Kotlin JVM
Vladimir Petrakovich
Ну человек должен понимать, что Assembly.GetTypes() - это рефлексия в чистом виде
Весь образовательный процесс насмарку :)
источник

V

Vabka in Kotlin JVM
Alexander Nozik
Вы точно уверены, что это при компилляции делается?
А где я сказал, что это при компиляции делается? Я же около 10 сообщений назад сказал, "почему бы при запуске все не определить?"
источник

V

Vabka in Kotlin JVM
Vladimir Petrakovich
Ну человек должен понимать, что Assembly.GetTypes() - это рефлексия в чистом виде
А я и не спорил с этим
источник

AN

Alexander Nozik in Kotlin JVM
Ну так вот, а теперь есть у нас этот аннотированный метод, и как узнать, какие параметры рефлективный вызов должен туда подпихнуть?
источник

VP

Vladimir Petrakovich in Kotlin JVM
Vabka
А я и не спорил с этим
Ну вот если вы ещё не поняли, Ktor подразумевает немного другой подход. За счёт Locations бойлерплейта будет меньше, но в целом всё делается явно в коде, а не сканом аннотаций.
В качестве плюсов - меньше подкапотной магии, больше проверок ошибок при компиляции.
Структурировать код можно в любом случае как угодно - всё в одном месте или раскидывать по классам, группируя как-нибудь.
источник

AN

Alexander Nozik in Kotlin JVM
На случай, если не удастся довести дискуссию до логичного конца. В рефлективный вызов нельзя подпихнуть произвольные параметры, просто потому что у него должна быть довольно жесткая сигнатура для того, чтобы его можно было вызвать. Да и контекст он может терять. Поэтому без контейнеров жить с ними тяжело. Если нет рефлексии, то и в контейнерах необходимость отпадает
источник

AO

Alexey Otts in Kotlin JVM
Alexander Nozik
На случай, если не удастся довести дискуссию до логичного конца. В рефлективный вызов нельзя подпихнуть произвольные параметры, просто потому что у него должна быть довольно жесткая сигнатура для того, чтобы его можно было вызвать. Да и контекст он может терять. Поэтому без контейнеров жить с ними тяжело. Если нет рефлексии, то и в контейнерах необходимость отпадает
Ну контейнер удобно, если есть жизненный цикл у приложения
источник

AO

Alexey Otts in Kotlin JVM
Но для этого, конечно же не нужна рефлексия
источник

AN

Alexander Nozik in Kotlin JVM
Alexey Otts
Ну контейнер удобно, если есть жизненный цикл у приложения
Но это уже ортогонально. Я к тому, что пока мы работаем с аннотациями без него не живут, поэтому у народа в голове просто уже вообще нет жизни без DI
источник

V

Vabka in Kotlin JVM
Alexey Otts
Но для этого, конечно же не нужна рефлексия
А я не говорил что для контейнера нужна рефлексия. Но опять же чтобы уменьшить количество однотипных конфигов рефлексия тоже полезна.
Только если это не autowired
источник

BP

Bogdan Panchenko in Kotlin JVM
@Vabka рекомендую все же модули, идея отлично делает навигацию по ним через application.conf
источник

BP

Bogdan Panchenko in Kotlin JVM
ПС: мини проект как разбить роутинг ктора.  Application.kt - сгенерил плагин ктора
источник

V

Vabka in Kotlin JVM
Bogdan Panchenko
@Vabka рекомендую все же модули, идея отлично делает навигацию по ним через application.conf
о спасибо. Сейчас буду смотреть
источник

V

Vabka in Kotlin JVM
Bogdan Panchenko
@Vabka рекомендую все же модули, идея отлично делает навигацию по ним через application.conf
а что за application.conf ?
источник

V

Vabka in Kotlin JVM
мне кажется стрёмным настраивать константное поведение через конфиги
источник