|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Я тут код смотрю чужой и вижу такое, а так как всё еще не прочитал книгу или много доков по спрингу не особо уверен, что такое кол-во аннотаций есть гуд: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Особенно смущает последняя комбинация :) Имеет право на жизнь такой код или аннотации перекрывают друг друга? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 00:31 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic Я тут код смотрю чужой и вижу такое, а так как всё еще не прочитал книгу или много доков по спрингу не особо уверен, что такое кол-во аннотаций есть гуд: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Особенно смущает последняя комбинация :) Имеет право на жизнь такой код или аннотации перекрывают друг друга? Ну "@Configuration" это грязный класс. Надо стараться чтобы в нем сосредотачивалась всякая дичь. Как минимум это лучше, чем писать портянки xml, для настройки Spring-контекста. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 05:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Да тут вопрос больше наверное про сочетание: Код: java 1. 2.
выглядит реально как дичь Это тоже странновато: Код: java 1. 2.
В реальности наверное лучше просто в метод передать этот бин как параметр, а не инжектить во всю конфигурацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 18:06 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan Да тут вопрос больше наверное про сочетание: Код: java 1. 2.
выглядит реально как дичь Согласен с вами. Это странное аннотирование SpringMan Это тоже странновато: Код: java 1. 2.
В реальности наверное лучше просто в метод передать этот бин как параметр, а не инжектить во всю конфигурацию. Ну возможно, нужны бины в методе "@PostConstruct" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 05:21 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic Я тут код смотрю чужой и вижу такое Код: java 1. 2. 3. 4.
Щас мы разберем все полтора миллиона вариантов аннотаций и скажем что метод2 тут явно лишний ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 06:04 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД. Да, меня именно эта связка аннотаций смутила: @Bean @PostConstruct а инжект Environment'а - фиг с ним :) SomeConfig.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 11:19 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Я вообще думаю, что для решения задачи достаточно было в пропертях добавить spring.datasource.continue-on-error=false Что и было зделано дополнительно к этому коду. Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так. Но вот эта связка... очень смущает. Наверное есть лучше способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 11:24 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Для такого решения достаточно только @PostConstruct. По поводу spring.datasource.continue-on-error=false тут есть. Этот параметр значит: падать, если скрипт инициализации базы успешно не запустился - т.е. придется подложить какой-нить скрипт - тоже не самое красивое, что есть) Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного Nixic Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так. Вообще звучит как неправда ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 22:52 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного Да не, там же System.exit(1); Приложение вообще без подключения к БД не долго стартовать, на счет того, что оно в рантайме потеряет БД тут оно хоть упадет, хоть нет - не важно, главное, что если упадет, то не принудительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 01:53 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan Для такого решения достаточно только @PostConstruct. По поводу spring.datasource.continue-on-error=false тут есть. Этот параметр значит: падать, если скрипт инициализации базы успешно не запустился - т.е. придется подложить какой-нить скрипт - тоже не самое красивое, что есть) Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного Nixic Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так. Вообще звучит как неправда Вы про подключение к базе? Не, такое не поддерживается в Спринге сейчас. Вот ссылка на обсуждение и на мой коммент (ник apriamostanov): https://github.com/spring-projects/spring-boot/issues/4779#issuecomment-501242970 Он не просто не стартует если базы нет, но и падает если например базу перезагрузили. Идея в том чтобы отлавливать восстановимые ошибки при коннекте к базе и ждать их восстановления. Сейчас это не поддерживается в Спринге ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 04:00 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Я фигею. Спринг уже аннотациями базу захватил? Тут есть хоть один у кого рабочий проект с этим делом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 10:44 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Потому что спринг пора закопать. Иначе рискуете, что ваш проект начнет жить своей жизнью, независимо от вас, и ничего хорошего из этого разумеется не выйдет. Думать надо, и архитектуру разрабатывать головой, а не спрингом. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 10:51 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic SpringMan Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного Да не, там же System.exit(1); Приложение вообще без подключения к БД не долго стартовать, на счет того, что оно в рантайме потеряет БД тут оно хоть упадет, хоть нет - не важно, главное, что если упадет, то не принудительно. Не так выразился. Философия у сприговцев, не у создателя приложения dakeiras Он не просто не стартует если базы нет, но и падает если например базу перезагрузили. Специально сейчас проверил: приложение нормально стартует, если нет базы. У ТС-а уже противоположная проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:01 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Я фигею. Спринг уже аннотациями базу захватил? Тут есть хоть один у кого рабочий проект с этим делом? Ну там возможность только запустить sql скрипт при старте приложения или flayway/liquidbase скрипты - магии особой нет ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:12 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan PetroNotC Sharp Я фигею. Спринг уже аннотациями базу захватил? Тут есть хоть один у кого рабочий проект с этим делом? Ну там возможность только запустить sql скрипт при старте приложения или flayway/liquidbase скрипты - магии особой нет Не понял архитектуру и замысел. Если так как ты написал, тогда это походит на выполнение скрипта из html. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:22 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
>или flayway/liquidbase скрипты = спринг знает про эти либы? Есть include какие то что ли о данных форматах? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:24 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp >или flayway/liquidbase скрипты = спринг знает про эти либы? Есть include какие то что ли о данных форматах? Ужос.... Почитал. Спринг и туда добрался. Круто)) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:27 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
По сабжу - аннотации спринга = перебор. Прогеру трудно выбирать, где они нужны и где не нужны. Так как аннотирование превратилось в программирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:29 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Не понял архитектуру и замысел. Если так как ты написал, тогда это походит на выполнение скрипта из html. По сути да. Такой же подход (создание базы из приложения) есть в hibernate, groovy on grails, ruby on rails и т.п. Это всего лишь возможность для особых случаев, никто не обязует так делать всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:35 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, Ну, могу сказать про хибер. Эта фича у него естественна. Вот и получается что спринг нагло влез на территорию хибера. Ну а Ruby вроде к java не имеет отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:39 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Тут имхо не важно хибер/руби или что там еще. Главное выбрать подход: создавать базу во время старта приложения или накатывать скрипты отдельно. Лично мне вообще не спокойно, если хиберу давать делать какие-то ddl операции. Кто знает, что он там начнет делать в случае обновления версий и т.п. - sql скрипты прозрачнее ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 11:46 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, ЗАДАЧА: Создать БД (тестовая?) во время старта ВЕБ ПРИЛОЖЕНИЯ (сервиса?) ...... Тут столько вопросов сразу возникает по уточнению ТЗ. Что невольно спрашиваешь, нахрена тут спринг лезет вообще со своей аннотацией? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 12:01 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Для создания базы при старте приложения вообще не надо никаких аннотаций, это решается на уровне конфигураций. Создание базы и аннотации ТС-а это не связанные проблемы (ТС захотел просто использовать spring.datasource.continue-on-error = false, а это не совсем о его проблеме) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 12:37 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic Особенно смущает последняя комбинация :) Имеет право на жизнь такой код или аннотации перекрывают друг друга? Поскольку декларативная наука "программирование на аннотациях" еще не сформировалась, как отдельная отрасль - нам придется решать вопросы приоритета процессинга аннотаций особенно если процессоров более чем один. Я думаю что это выльеться как минимум еще в один язык программирования или мета-язык. И где-то на последних этапах переосмысления мы придем вопросу принципиальной невозможности решать эти проблемы на мета-языке и нам потребуется не мета-язык а ПОЛНОЦЕННЫЙ язык пре-процессинга наподобие языка разработки. Или создадим язык-в-языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 12:53 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, Аннотация это конфигурирование на сегодняшний день. Или декларативное программирование. Поэтому фраза: "не надо аннотаций но надо конфигурации" вообще запутывает честного программиста. А я говорил еще шире - какого рожна спринг лезет в базу. Хоть и скриптами? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:25 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton, Да. Бардак пока с идеологией. Ведь тема про что? ПЕРЕБОР АННОТАЦИЙ СПРИНГА ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:27 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД. Этот вопрос - вообще не имеет отношения к Спрингу. Моя мысль такова - "Show must go on!" Спринг должен стартовать в любом случае. Есть база или нет. Пул должен перейти в некое закрытое состояние. И какое-то время (минуту или больше) давать мнговенный код ошибки на любую попытку получить коннекшек к БД. Здесь в помошь шаблон - аварийный размыкатель - Cirquit Breaker для предотвращения долбёжки или висячих сокетов в направлении дохлой базы. https://spring.io/guides/gs/circuit-breaker/ Моя идея станет более понятна если представить что База это просто очередной ресурс которых сотни подключенных к приложению и гарантировать все-все из них поднятыми очень проблемно. Полюбому кто-то будет отваливаться и падать. Теория надёжности как-бе говорит нам. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:33 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp SpringMan, Аннотация это конфигурирование на сегодняшний день. Или декларативное программирование. Поэтому фраза: "не надо аннотаций но надо конфигурации" вообще запутывает честного программиста. А я говорил еще шире - какого рожна спринг лезет в базу. Хоть и скриптами? Аннотации это часть java языка, конфигурация spring.datasource.continue-on-error - это запись в properties/yaml файлике. Вроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит. Наличие возможности, даже такой, лучше, чем ее отсутствие PetroNotC Sharp mayton, Да. Бардак пока с идеологией. Ведь тема про что? ПЕРЕБОР АННОТАЦИЙ СПРИНГА Вот то, что мы полдня обсуждаем, это не относится к проблеме ТС-а. У него одна проблема - предшественник до него написал одну лишнюю аннотацию, которая не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:45 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Увы. Таково течение коллективного разума. Он не всегда обсуждает то что надо автору. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:47 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, Да. Конечно. Мы обсуждаем фразу - название темы. Буквально. "Спринг много на себя берет". (с) авторНаличие возможности, даже такой, лучше, чем ее отсутствие В архитектуре эта фраза антипаттерн. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 13:56 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит.скажи назначение приватных полей. Пусть кто хочет лезет, кто хочет не лезет ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:01 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Да, это очень похоже на антипаттерн. Но тут недавное по-моему asv79 с проблемой бегал. Надо обновить базу, доступа до нее нет, и фиг знает у кого он есть. Есть два пути: 1) Писать каждый раз кучу писем с кучей согласований, чтобы взяли твой скрипт и прогнали фиг знает кто, фиг знает когда и фиг знает какой результат у него будет 2) Встроить это в приложение, которое ты можешь обновлять куда быстрее Первый способ конечно правильнее, но через какое-то время можно выбрать второй, как путь с меньшим сопротивлением PetroNotC Sharp SpringMan, авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит. Пусть кто хочет лезет, кто хочет не лезет Имхо сравнение не совсем корректно. Спринг/приложение уже знает как попасть в базу. Если оно будет выполнять скрипты никакой дополнительной приватности не нарушается ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:10 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
SpringMan, Откуда оно что знает? У меня в бд имеет доступ jndi или пул. Но спринг оказывается что то там знает.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:21 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
https://www.codeflow.site/ru/article/spring-persistence-jpa-jndi-datasource Тут вроде спринг никуда не лезет и спокойно уступает место JNDI, JPA, HIBER.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:27 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, А больше ничего и не надо. Через jndi/pool можно точно также вызвать нужный скрипт, как и в спринговом приложении. И тот же спринг можно так же натравливать на jndi) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 14:31 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Nixic Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД. Да, меня именно эта связка аннотаций смутила: @Bean @PostConstruct а инжект Environment'а - фиг с ним :) Не истины ради, а флейма для. Проверка, на существование БД. Если нету БД, то приложение падает. (Для Spring Boot, на Kotlin) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В принципе в бин можно добавить проверки, даже если есть соединение. Главное Exception выкинуть. В данном случае exception кидает "dataSource.connection" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 07:56 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
а, вы про чистый Спринг. Там не проверял. Но в Spring Boot 100% если база не доступна, приложение не стартанёт. А какой у вас юскейс? Зачем хотите чтобы падало если базы нет? База не всегда доступна (если сеть упала или базу перезагрузили). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 09:42 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Zzz79, Чем плохо декларативное программирование? Тем что ты становишься конфигурастом а не программистом. Спринг это же клей. Вот ты и клеишь программу. Поэтому ты не знаешь что такое FK и оператор new object. Что такое наследование и композиция. .... Поэтому почему то становится проблемой "огромные куски дубляжа". Проблема не раскрыта. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:00 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
У декларативности есть дефект. Она - ничего нем не говорит о порядке исполнения операций. Конешно полагаясь на хронологический порядок аннотаций мы можем предполагать что процессор аннотаций обработает их именно так. Но что делать когда этих процессоров несколько. Lombok и Spring (примеру) умеют читать свой домен аннотаций. Но если возникает вопрос "кто первый процессит" - то здесь декларативное программирование даёт сбой. Оно (декларативное) - не знает кто первый. Нет у него такой опции как ранг аннотаций или ранг процессинга. Тоже самое про maven. Maven - делкаративен. Но нам чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. Хотя они декларированы как одно-ранговые. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:04 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:15 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton, Да можно и порядок и приоритет в принципе закодить. Но препроцессинг ведь. Заменяем код своими значками @мойСуперКлючикСтрокаЗначок(.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:17 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
chpasha, Ты тоже прав. Нужно в меру. Нужно чтобы спринг знал меру)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:20 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ну... яб сказал что самый первый вопрос которым должны мордовать и мучать бедного джуна на техническом ревью - это Spring и жизненный цикл бина. Про что это? Это именно про порядок инициализации заинжекченых полей и пропертей и пост-конструкторов и прочего декралативного дерьма. Порядок сцуко - важен. На порядке инициализации 80% багов прилетает. Особенно хреново когда есть race-conditions. И мультипоточка. И какие-то бл%дские статические поля переменных. Там - вобще конь не валялся. И как всегда на тестах хорошо а в продуктиве - падает. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:20 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Да можно и порядок и приоритет в принципе закодить. Но препроцессинг ведь. Заменяем код своими значками @мойСуперКлючикСтрокаЗначок(.... Это - еще хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 19:21 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Проблема не в аннотациях, что вы к ним привязались? Очевидный факт упускаете, что проблема в том что реализация этих аннотаций не видна программисту, т.к. она делается на этапе инициализации контекста и создания проки классов. Это - основная проблема. Т.к. документация не всегда понятна и полна в Спринге. Да и всегда удобно код почитать. А тут - не получится. Вот за это я оч. уважаю AST аннотации\трансформации - т.к. там можно подебажить и посмотреть что конкретно происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 21:38 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ломбок это пародия на Груви. А так я привык читать код библиотек которые использую. Но в случае со Спрингом уже тоже свыкся... Хотя давно могли также Intellij добавить поддержку просмотра gclib обработчиков аннотаций из кода приложения ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 22:45 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали... А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 08:03 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Но самый перебор, это конечно не аннотации. Самый перебор - это когда поведение зависит от наличия той или иной зависимости без какой либо явной конфигурации. Вот где абсолютное зло. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 08:09 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ржавый гвоздь Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали... А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает. Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 09:12 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое? Не всегда и не везде плохо. Но когда ее используют и где надо и где не надо - от нее больше вреда, чем пользы. Засилие аннотаций - типичный вредный пример, а какой нибудь сериализатор - вполне хороший. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 09:19 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Что касается модульных приложений, тот тут в подавляющем большинстве случаев никакая рефлексия не нужна, достаточно возможности загрузить класс и работать с ним через интерфейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 09:22 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ржавый гвоздь Что касается модульных приложений, тот тут в подавляющем большинстве случаев никакая рефлексия не нужна, достаточно возможности загрузить класс и работать с ним через интерфейс. как вы загрузите класс по имени без рефлексии? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 09:41 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ржавый гвоздь Вот где абсолютное зло. просто уже ткни сосиской туда, где абсолютное добро, мы закроем ветку и просто уйдем все туда, где ништяки и нет макросов с рефлексией. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 09:53 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras как вы загрузите класс по имени без рефлексии? Вот еще о терминах спорить не хватало. По моему, я предельно ясно пояснил, что именно имею в виду. chpasha просто уже ткни сосиской туда, где абсолютное добро Понятия не имею. Но есть у меня подозрение, что добро должно коррелировать с количеством здравого смысла у разработчиков. У разрабов спринга он точно давно уже не ночевал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 10:18 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, dakeiras как вы загрузите класс по имени без рефлексии? Java SPI например. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:09 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ржавый гвоздь Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали... А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:11 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, А че тебя рефлексия зацепила? Самый простой ответ раширяемого приложения это REST. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:15 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton Тоже самое про maven. Maven - делкаративен. Но нам чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. Хотя они декларированы как одно-ранговые. В маевке это как раз таки детерминировано. https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins When multiple executions are given that match a particular phase, they are executed in the order specified in the POM, with inherited executions running first. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:16 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Zzz79, авторкак по мне петро ты немного путаешь) без анотаций ты становишься конфигурастом- а с анотациями программистом- Дак есть пример - 1Сники. Они открывают конфигуратор и работают без new. А ты мне доказываешь что тот кто new не знает программист))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:18 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch mayton Тоже самое про maven. Maven - делкаративен. Но нам чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. Хотя они декларированы как одно-ранговые. В маевке это как раз таки детерминировано. https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins When multiple executions are given that match a particular phase, they are executed in the order specified in the POM, with inherited executions running first. Да. Это типичное отклонение от декларативности. Вроде и декларативно. Но в то-же время есть "процедура" или "рецепт" к выполнению. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:36 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras, dakeiras как вы загрузите класс по имени без рефлексии? Java SPI например. это древнее неудобное г. для Java SE. Вы сами этим пользовались перед тем как советовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:48 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, А че тебя рефлексия зацепила? Самый простой ответ раширяемого приложения это REST. Ну REST это да, модульно:) RPC ещё. Ведь рефлексия это же так медленно (нет). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:51 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, 1) я не советовал, а отвечал на вопрос "как загрузить класс без рефлексии" 2) Да, пользовался, даже свои Service Provider писал dakeiras Ведь рефлексия это же так медленно (нет). Видимо из-за того, что она такая быстрая (нет, она медленная) тот же Jackson кеширует информацию о типах... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:54 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras PetroNotC Sharp dakeiras, А че тебя рефлексия зацепила? Самый простой ответ раширяемого приложения это REST. Ну REST это да, модульно:) RPC ещё. Ведь рефлексия это же так медленно (нет). Зря иронизируете. Вы просто связали рефлексию и модульность ПРИЛОЖЕНИЯ. Это как связать болт и самолет. Не связывается это в одно приложение осмысленное. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:58 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
авторНе связывается это в одно приложение предложение осмысленное. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:00 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Петро, пока тебя не было, на sql.ru редактирование постов завезли ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:03 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
chpasha, Давно меня не было)). А вот цитирование выделенного в хроме смартфонном не работает))). Sql.ru не догадалось с кнопки всплывающей в ГУИ продублировать команду на кнопку под постом Цитировать. Ну а хром убирает кнопку от sql.ru команды. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:15 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Рефлексия и модульность это синонимы. Альтернатива рефлексии статический биндинг, но он не масштабируется. Под рефлексией я подразумеваю в данном контексте Class.forName().newInstance. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:23 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Есть ещё одна альтернатива - run-time компиляция (Груви), она позволяет добиться модульности без использования рефлексии. Но это не всегда нужно, а по производительности одинаково (инстанциирование экземпляра класса). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:26 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Рефлексия и модульность это синонимы. Рефлексия это уровень кода. Модульность это АРХИТЕКТУРА. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:28 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Ну а как иначе в приложении на Яве поддержать плагины (модули)? Или Вы под модулями понимаете модули Maven/Gradle? Так это не те модули :) Их неправильно назвали модулями, на самом деле это просто приложения сгруппированные в общую последовательность сборки. А не модули никакие конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:53 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, а что такое модули? В дельфи же тоже есть рефлексия. Это просто найти название метода и его вызвать в рантайме. Но модульность (плагинообразность) делают совершенно по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, а что такое модули? В дельфи же тоже есть рефлексия. Это просто найти название метода и его вызвать в рантайме. Но модульность (плагинообразность) делают совершенно по другому. ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга? Через jndi разве что? Но это усложняет довольно сильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:06 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:19 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга? и инстациировать как? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:48 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга? Можно целую тему создать. Тысячи решений. 1. Учитывая мейнстрим сейчас модуль приравнивается к сервису. Заметь, слово микросервис я не люблю. Поддержку в ИС дополнительно к своим 15-ти сервисам ещё воткнуть сервис по продаже авиабилетов нет проблем? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras и инстациировать как? Конкретную реализацию умеет выбирать SPI. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:17 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
вот. Приходим к @Service и context.getBean("beanName"). Что является альтернативой рефлексии при использовании Спринга. Хотя я одинаково часто использую и context.getAutowireBeanCapableFactory().autowireBean(myPojo) где myPojo инстанциируется через рефлексию, но имеет @Autowired поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:23 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, а что такое модули? В дельфи же тоже есть рефлексия. Это просто найти название метода и его вызвать в рантайме. Но модульность (плагинообразность) делают совершенно по другому. Я-бы различал модули maven-based проекта. Они полезны когда например есть дистрибуция приложения частями. И вы можете поставлять например изменившиеся DAO которые зависят от изменившися SOAP wsdl протоколов. Отдельно - стоит различать OSGI bundles. Которые очень любит Deuche Bank. Да и прочие европейские банки. Любой пустяк в них заворачивают. И отдельно - модули Java-9 . Все таки они - технологически другие. Тоесть спор о модулях - это сложный спор. И его надо начинать в контексте хотя-бы общего понимания. Я вот например видел много проектов с модулями maven/gradle но я не уверен что модули gradle - это тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:25 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras и инстациировать как? Конкретную реализацию умеет выбирать SPI. А когда много реализаций? По имени он же не умеет выбирать, да? Т.е. когда выбранный плагин задаётся в конфиге, это уже не работает. Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:28 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras вот. Есть разные способы получить более-менее произвольную реализацию, доступную в класспути и без всякой рефлексии. Загрузка-то ленивая. Можно сначала подложить нужный class-файл "из большого списка", а уже потом обратиться к нему. Можно динамически скомпилировать нужную реализацию. Можно, наверное, и через j.l.invoke работать (Java 7+). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:39 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:42 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras вот. Приходим к @Service и context.getBean("beanName"). Что является альтернативой рефлексии при использовании Спринга. Кодогенерация. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:56 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается. А откуда вы знаете как будет называться произвольная реализация заранее? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:07 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras А откуда вы знаете как будет называться произвольная реализация заранее? Хотя, кодогенерация и эту проблему позволяет порешать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:08 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras вот. Есть разные способы получить более-менее произвольную реализацию, доступную в класспути и без всякой рефлексии. Загрузка-то ленивая. Можно сначала подложить нужный class-файл "из большого списка", а уже потом обратиться к нему. Можно динамически скомпилировать нужную реализацию. Можно, наверное, и через j.l.invoke работать (Java 7+). Короче нет альтернатив рефлексии :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:08 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras А откуда вы знаете как будет называться произвольная реализация заранее? Хотя, кодогенерация и эту проблему позволяет порешать. В смысле зачем?? У вас есть система плагинов, вы их загружаете по конфигу. Ни названия плагинов ни конфиг заранее не известны. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:09 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Короче нет альтернатив рефлексии :) Ну так это не достоинство рефлексии, а недостаток инструментария. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:09 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, В плагинах все натыкается на бизнес логику того чего еще не существует. Ну будет у тебя меню с п.п. Сервисы где 25 пунктов это запуск а ля dll в папке /plugins/ Информационная система все равно Г. Если это не фотошоп с плагинами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:54 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Сорри но вы просто оправдываете свою предвзятость по отношению к рефлексии, уши этого тянутся с 2005 года когда она тормозила и была плохой практикой, что уже давно не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:08 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Обычно в инфо-безопасности плагин - это настоящая дыра для проникновения троянов и всего прочего. Тоесть просто обеспечить вызов плагина это еще пол-дела. А вот проверить что он не содержит угроз. Как минимум проверить его Digital Signature и сконфигурить окружение Security Manager чтоб плагин работал в коробочке с минимумом привилегий. Вот это челендж. А рефлексия - это так. Мелочи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:14 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras вы просто оправдываете свою предвзятость по отношению к рефлексии ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:29 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton Обычно в инфо-безопасности плагин - это настоящая дыра для проникновения троянов и всего прочего. Тоесть просто обеспечить вызов плагина это еще пол-дела. А вот проверить что он не содержит угроз. Как минимум проверить его Digital Signature и сконфигурить окружение Security Manager чтоб плагин работал в коробочке с минимумом привилегий. Вот это челендж. А рефлексия - это так. Мелочи. Пример: телеграм чат бот с готовым движком. Вы его добавляете как зависимость (либо скачиваете исполняемый jar), он уже содержит всё необходимое включая Spring Boot и готов к запуску. Далее добавляете в него команды (типа /mycommand в чате с ботом) в виде классов (либо копируя плагины в ./plugins). Имя класса=имя команды бота. Бот заранее не знает какие будут в нём команды. Плагины разрабатываете Вы сами. Какая тут дыра в безопасности? Не нужны никакие подписи. Вы же себе доверяете сами, правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:54 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, Какие детские примеры с чатами и чатиками. Давай корпоратив. Мы же в java. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:04 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, ты вообще мою мысль не понял. Кто сказал что ты сам плагины делаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:04 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
так а кто сказал что стороние плагины? Ок, не нравится пример с чат ботом, вот другой пример: ETL. Допустим вы не используете Talend, а у вас какой-то простой свой ETL. Плагин на вход - плагин на выход. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:29 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
И кстати чат бот совсем не детский пример. Чат бот это такой же фронтэнд канал как и мобильное приложение. И когда чат бот для работы с финансами (карты, трансферы средств) - это как раз отличный пример энтерпрайза. С продуманной экосистемой, архитектурой и безопасностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:32 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ну ты понимешь что плагины - это инжекция чужого кода в твоё приложение. И то что ты тестил своё приложение тыщу раз вовсе не отменяет тот факт что любой кодер шутки ради сможет удалить все файлы твоего /home/{userName} просто так. Но если глубина моих глубин тебе непонятна - то ладно забей. Это я так... отклонился в сторону. Это кстати тоже с рефлексией и класслоадером тесно связано. Уж коли на то пошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:52 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras И когда чат бот для работы с финансами (карты, трансферы средств) - это как раз отличный пример энтерпрайза. С продуманной экосистемой, архитектурой и безопасностью. Мы таких не знаем. Рассказывай. Мы пару часов послушаем. Вникнем. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 18:32 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras И когда чат бот для работы с финансами (карты, трансферы средств) - это как раз отличный пример энтерпрайза. С продуманной экосистемой, архитектурой и безопасностью. Мы таких не знаем. Рассказывай. Мы пару часов послушаем. Вникнем. ну я делал пару таких, один на проде уже года 2, другой для стартапа. Чат бот с поддержкой step up authorization, SMS/Email OTP, , плагинов. Могу если интересно выложить исходники движка. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 04:52 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ай, да что уж там томить, вот он, великий и ужасный: https://github.com/INFINITE-TECHNOLOGY/DAVID Работает на проде в фин. тех банке несколько лет. Ну что, поцоны ваще ребята, да? :) А если серьёзно, в мире Телеграм ботов это остров надежды. Советую юзать это, если делаете бота своего. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 08:02 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, Могу по статистике тебе сказать. Что в гитхаб заглянул один мембер из всех. Рассказывать надо, а не ссылки кидать. Или ссылку на Статью. Презентовать решение). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 09:56 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ноль форков. Никто себе не сделал копию для изменений. И ноль звездочек. Отношение - так себе. Нейтральное. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 09:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton, Вот представь, сидит босс. Тут приходит чел и говорит что нам нужен телеграмм боты. Превый вопрос: "это что такое? Мессенджер что ли"? "Зачем нам мессенджер "? .... Нужно на пальцах объяснить)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 10:35 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton Ноль форков. Никто себе не сделал копию для изменений. И ноль звездочек. Отношение - так себе. Нейтральное. Я впервый раз запостил тут, погодите. Сейчас напишу в группу telegram bots, там иранцы офигеют и поставят звёздочки:) Но сначала хотел бы улучшить документацию, и возможно пока выпилить Ascend из бота, а то неподготовленные умы оплавятся от такого :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 10:43 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Вот представь, сидит босс. Тут приходит чел и говорит что нам нужен телеграмм боты. Превый вопрос: "это что такое? Мессенджер что ли"? "Зачем нам мессенджер "? .... Нужно на пальцах объяснить)) Я верю в способность босса нюхом чувствовать рынок. А если его это не зацепит в первые 30 секунд - то идея тухляк. И ее можно отложить еще на 2-3 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 10:52 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
mayton, Именно. У чела есть 30 сек чтобы босс въехал в предложение. Даже если взять СССР, то это документ Концепция на 1 лист А4 в ворде. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 10:57 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras mayton Ноль форков. Никто себе не сделал копию для изменений. И ноль звездочек. Отношение - так себе. Нейтральное. Я впервый раз запостил тут, погодите. Сейчас напишу в группу telegram bots, там иранцы офигеют и поставят звёздочки:) Но сначала хотел бы улучшить документацию, и возможно пока выпилить Ascend из бота, а то неподготовленные умы оплавятся от такого :) Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 10:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp По сабжу - аннотации спринга = перебор. Прогеру трудно выбирать, где они нужны и где не нужны. Так как аннотирование превратилось в программирование. юзай плей. там почти нет аннотаций. только от гуиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 22:06 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Даже если взять СССР, то это документ Концепция на 1 лист А4 в ворде. P.S. Нет, текстовые редакторы были. Коллега, помнится, печатал "рассылку" (шаблон плюс список) для многих человек на ДВК-4 плюс "Роботрон". Редактор, вроде, "Мир" назывался. Не помню точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 09:21 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Ай, да что уж там томить, вот он, великий и ужасный: https://github.com/INFINITE-TECHNOLOGY/DAVID Работает на проде в фин. тех банке несколько лет. Ну что, поцоны ваще ребята, да? :) А если серьёзно, в мире Телеграм ботов это остров надежды. Советую юзать это, если делаете бота своего. Зачем? Что даст? Что ускорит при разработке? dakeiras@SpringBootApplication(scanBasePackages = [" io.infinite.ascend ", "io.infinite.david"]) То есть Spring Boot Autoconfiguration вы тоже не освоили. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 10:59 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
авторТо есть Spring Boot Autoconfiguration вы тоже не освоили. Что такое Spring Boot Autoconfiguration и чем оно отличается от обычного @EnableAutoConfiguration? Помоему это Вы не освоили, либо недопоняли что-то. авторЗачем? Что даст? Что ускорит при разработке? Даст готовую основу с Spring Boot и многопоточную модель взаимодействия с пользователями (обработка ввода-вывода) + сессию пользователя. Т.е. весь движок чат бота. На выходе это даст качественный UX. Соотвественно останется только реализовать конкретные команды бота. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 11:23 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras авторТо есть Spring Boot Autoconfiguration вы тоже не освоили. Что такое Spring Boot Autoconfiguration и чем оно отличается от обычного @EnableAutoConfiguration? Тем, что в своем модуле, вы делаете конфигурацию "по умолчанию". Которая позволяет, при подключении вашего модуля к проекту "из коробки" получить уже настроенное поведение. Без использования аннотаций, а только указаний специфичных для вашего модуля настроек в "properties" файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 11:45 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ascend это JAR зависимость. Я вообще не понимаю о чём вы говорите. Как ещё добавить в контекст бины из JAR зависимости? Наверное если добавлена такая аннотация, то не просто так? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:04 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, dakeirasДаст готовую основу с Spring Boot и многопоточную модель взаимодействия с пользователями (обработка ввода-вывода) + сессию пользователя. Т.е. весь движок чат бота. На выходе это даст качественный UX. Что из этого мне не даст Спринг + полдня разбора документации Telegram? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:18 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Как ещё добавить в контекст бины из JAR зависимости? Так и быть: https://lmgtfy.com/?q=spring boot custom auto configuration ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:20 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras, dakeirasДаст готовую основу с Spring Boot и многопоточную модель взаимодействия с пользователями (обработка ввода-вывода) + сессию пользователя. Т.е. весь движок чат бота. На выходе это даст качественный UX. Что из этого мне не даст Спринг + полдня разбора документации Telegram? :) Вам ничего не даст, т.к. вы эксперт по Java и Spring. А вот сидя в группе в Телеге по "telegram chat bots" (Java реализация Telegram Chat Bot API) - там сидят гопники и иранцы, которые не могут скомпилить приложение даже. Для них добавить БД проблема, тем более спринг. Поэтому сделал для них. Хотя ещё не давал им ссылку - надо сначала сделать документацию. + готов к деплою на хероку (с этим сложности почему-то у некоторых людей возникают) + многопоточная модель - позволяет интерактивное выполнение с пользовательском вводом в рамках 1 метода - этого нет в библиотеке telegram chat bots ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:23 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
т.к. чат ботов в основном пишут чтобы на биткоинах кого-то нагреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:24 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras т.к. чат ботов в основном пишут чтобы на биткоинах кого-то нагреть. Хорошо, https://azure.microsoft.com/en-us/services/bot-service/#getting-started - в чем ваше преимущество? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:34 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras Как ещё добавить в контекст бины из JAR зависимости? Так и быть: https://lmgtfy.com/?q=spring boot custom auto configuration https://docs.spring.io/spring-boot/docs/2.0.0.M5/reference/html/boot-features-developing-auto-configuration.html Это? Нет не знал. Я первый раз делаю Spring Boot библиотеку. Далеко не всегда это требуется. Посмотрю, добавлю в Ascend. Там много чего можно добавить из того же Keycloak Spring. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:37 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras т.к. чат ботов в основном пишут чтобы на биткоинах кого-то нагреть. Хорошо, https://azure.microsoft.com/en-us/services/bot-service/#getting-started - в чем ваше преимущество? Идея отличная. Но их Java API - это страх божий. Посмотрите: https://github.com/microsoft/botbuilder-java/tree/master/samples/45.state-management/src/main/java/com/microsoft/bot/sample/statemanagement Всё на флагах работает: https://github.com/microsoft/botbuilder-java/blob/master/samples/45.state-management/src/main/java/com/microsoft/bot/sample/statemanagement/ConversationData.java Код: java 1.
Посмотрите как реализованы команды в Дэвиде. https://github.com/INFINITE-TECHNOLOGY/DAVID/blob/master/david-sdk/src/main/groovy/io/infinite/david/abilities/History.groovy Код: java 1.
Всё в 1 файле, интерактивно с пользовательским вводом, лаконично. Microsoft, что ты сделал?...:( Идея и возможности были отличные, но код кошмар какой-то получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:24 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:53 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras, Так а зачем там на java писать? Если индусы или для кого вы там API делаете настолько не умеют java - пусть пишут на C# или питоне) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 16:35 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Ну наверное да.. Надеюсь что с C# там получше, хотя тоже терзают сомнения. Ну и Microsoft как обычно не может по нормальному сделать, сам уровень абстракции Bot API как я понимаю только черещ шину работает, через Azure. Т.е. нельзя без интеграции с Azure всё это развернуть, как я понял (хотя сам бот можно отдельно - но он будет ломиться в Azure). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 16:39 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 16:54 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Да, я это и написал. Но ломиться это будет всё равно в Азур. Без Азура не будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 17:31 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras С чего вы взяли?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 20:25 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras пропущено... Да, я это и написал. Но ломиться это будет всё равно в Азур. Без Азура не будет работать. С чего вы взяли?)) https://github.com/microsoft/botframework-sdk#channels-and-adapters ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 21:22 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
+ тот факт что я не вижу standalone Telegram Bot API Implementation от Microsoft, которым можно было бы воспользоваться отдельно. А то может я бы поглядел на него вместо библиотеки "Telegram Chat Bots" - к ней есть претензии... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 21:26 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
dakeiras Lelouch пропущено... С чего вы взяли?)) https://github.com/microsoft/botframework-sdk#channels-and-adapters Так платить то за это не придется. Если я правильно понимаю telegram относится к стандартным каналам, так что там нет лимита бесплатных сообщений. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 22:21 |
|
Аннотации спринга, по-моему перебор, не? :)
|
|||
---|---|---|---|
#18+
Lelouch dakeiras Так платить то за это не придется. Если я правильно понимаю telegram относится к стандартным каналам, так что там нет лимита бесплатных сообщений. Вроде не придётся, тоже так понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 22:27 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120799]: |
0ms |
get settings: |
18ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
2113ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 2553ms |
0 / 0 |