|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Приветствую! Хотел переписать своего телеграм бота, написанного на чистой Java, на новый лад с использованием Spring. Для начала решил попробовать написать простейшего бота, который просто отвечает "Hello"! Нашел подходящую библиотеку: https://github.com/rubenlagus/TelegramBots/tree/master/telegrambots-spring-boot-starter Пошёл настраивать xml, получилось так: Код: xml 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.
Возможно, нахватал лишних зависимостей, так как Spring я только начинаю осваивать, подсмотрел в каком-то проекте на гитхабе. Создаю главный класс: Код: java 1. 2. 3. 4. 5. 6. 7.
И класс бота: Код: 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. 29. 30. 31. 32. 33. 34.
Далее запускаю, в консоли получаю следующий лог: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
После этого бот падает, приложение останавливается, никаких дополнительных ошибок или сообщений нет. Он просто перестает работать, не успев начать. WARNING - классические для бота, написанный не на спринге бот выплевывает их таким же образом, но это не мешает ему работать. Пробовал и с VPN - не помогло. Не знаю, куда копать. Возможно, проблема тут: No active profile set, falling back to default profiles: default ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 14:11 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Какую же глупую ошибку я обнаружил спустя 3 часа. Неверный класс указываю для Код: java 1.
В этом и была проблема. Хотя мне изначально казалось, что мне необходимо передавать в аргументы тот класс, который наследуется от LongPollingBot. А нужен тот, где init(). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 16:36 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Вот прекрасный пример бота под Хероку на этой библиотеке: https://github.com/INFINITE-TECHNOLOGY/DAVID ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2020, 21:29 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Напишите хоть полезного бота. Типа там... ProbeiNomera или ProbeiTelefon. А если нету - то предложить юзеру и внести инфу. Будет такая себе самонаполняющаяся базка. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 18:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79, я тебя умоляю. Тогда все соц-сети надо закрыть. Там же личной инфы столько скольку угрозыску не снилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 18:46 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Подобные базы уже создаются. По крайней мере для Андроид приложений что-то есть. А с государством на его территории конечно я в кошки-мышки играть не буду. Это не моё. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:17 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Вот вчера я в перерывах между анализом китайского AWS-кода и чтением спек слушал вот этого перца. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:48 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Термин - "работать на дядю" мне непонятен. Поясни что ты понимаешь под этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 19:59 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, это такой эффемизм вопроса: "Ты капиталист или пролетарий?" Стандартный ответом может быть: "Мелкобуржуазный пролетарий" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 20:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Стартапа точно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 20:26 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Работа. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 21:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Продолжаю мучаться, пыхтеть и пробовать. Возникла проблема следующего рода. В общем, если я размещаю всю логику в классе, который наследуется от LongPolling: Код: java 1. 2.
то, мой бот прекрасно работает и по определенным запросам сохраняет информацию в базу данных. По другому запросу забирает информацию из БД и возвращает пользователю. Стоить мне всё вынести в отдельный класс (обработку Update), и бот не может достать информацию из БД - он возвращает всегда null. Есть репа для обращения к БД: Код: java 1. 2. 3.
Есть сам класс-сущность, которую добавляю в БД (с геттерами/сеттерами/конструкторами): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
В главный класс внедряю репу: Код: java 1. 2.
Ну сохраняю и достаю примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Так всё работает. Бот отвечает на запросы и корректно добавляет/забирает в/из БД. Пробую перенести все эти методы в другой класс: Код: java 1. 2. 3. 4. 5. 6.
И при попытке сохранить в БД или достать из нее, я получаю NPE. Ошибки о том, что я не могу подключиться к БД, я не получаю. Таблица в БД на месте. Да и не знаю, как проверить, подключается ли он вообще к БД. При этом обычные команды работают, если не обращаться к БД. Где я свернул не туда? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 22:42 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Дружище. NPE происходит в конкретной строке. В стектрейсе видно. Подсвети ее в твоих сорцах. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 22:46 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Дружище. NPE происходит в конкретной строке. В стектрейсе видно. Подсвети ее в твоих сорцах. Я понимаю что в конкретной (лог забыл приложить), я сисаутами заплевал консоль и все корректно, до момента обращения к репозиторию. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Т.е. при попытке достать игру из БД падает тут: Код: java 1.
При попытке сохранить в БД падает тут: Код: java 1.
Т.е. при заходе в два метода, которые работают с БД через репу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 22:55 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Что такое главный класс? Вот эта штука предположительно не инициализировалась. Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 23:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Что такое главный класс? Вот эта штука предположительно не инициализировалась. Код: java 1. 2.
Здесь у меня главный тот, который наследуется от LongPolling и получает апдейты, т.е. вот этот: Код: java 1. 2.
Да, скорее всего репозиторий не инициализируется. Выходит спринг не может внедрить зависимость из-за того, что я через new создаю объект класса UpdatesReceiver и вызываю на нем метод. Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 23:10 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Сложно понять по этим огрызкам что из себя представляет твоё приложение. Попробуй так Код: java 1. 2. 3. 4.
Или так Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 23:18 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, Получилось так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я создавал UpdatesReceiver, которому переадресую Update и, в котором обращаюсь далее к репе, через new. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 23:22 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79 репозиторий нужно пометить анотацией репозиторий @Repository тогда @Autowired будет работать Можно и не помечать. Можно в конфигурационном классе указать где лежать интерфейсы репозитория. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 12:41 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79 mad_nazgul пропущено... Можно и не помечать. Можно в конфигурационном классе указать где лежать интерфейсы репозитория. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
:-) я думаю для проекта автора это будет overhead ,достаточно простой анотации чтобы инициализация прошла успешно Вполне, но узнать что-то новое и попробовать это, всегда полезно :) Возник вопрос про контроллер. Как я могу его "красиво" использовать без веб составляющей? У меня нет url и соответсвующих маппингов, типа такого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я глубоко ещё не копал про контроллер и маппинги, но тут условно при запросе url с /main на конце я попаду в этот метод и верну соответсвующую модель. А если рассмотреть мой проект, у меня есть условно этот UpdatesReceiver. Могу я к нему добавить маппинги, но чтобы маппинг связывался с сообщением пользователя? Т.е. примерно так: Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 20:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
"Странного" захотелось? Что такое "сообщение " в твоём проекте? JMS? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 20:15 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, Обычное пользовательское сообщение в чат, которое приходит от телеграм бота. Просто репозиторий есть, модель есть, а контроллера нет, вот я и подумал, что и его тоже как-нибудь надо реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 20:22 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha mayton, Обычное пользовательское сообщение в чат, которое приходит от телеграм бота. Просто репозиторий есть, модель есть, а контроллера нет, вот я и подумал, что и его тоже как-нибудь надо реализовать. Смотри. Я могу просто подсказать тебе фреймворк который в декларативном стиле (тыже хочешь декларативности) роутит сообщения. Любого типа. И не обязательно примитивы. Фреймворк называется Apache Camel https://camel.apache.org/docs/ Это - вершина MQ-процессинга. Если тебе нужно построить свой Crew Dragon на месседжах то бери его не прогадаешь. В нем есть примерно 2 approaches для достижения такой конфигурации. Один с использованием XML routes. Другой с динамическими роутами которые можно как-то на Java кодить. Мы использовали только первый вариант. Вот конфигурация для твоего случая. У тебя "Привет" должен быть свойством объекта-месседжа. https://camel.apache.org/components/latest/eips/message-router.html Но это все красиво летает реально при очень большом проекте с сложной бизнес-логикой и я не уверен что здесь телеграмный бот подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2020, 22:53 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, Я вот еще вариант нашел, как раз того, чего я примерно хотел. https://habr.com/ru/post/335490/ Только сложновато для меня, а тупо копипастить не хочу. Наверное, проще убрать вообще контроллер и сделать обычную обработку в обычном java коде без привязки к MVC архитектуре. Но сущность (model) оставлю, как и репозиторий. Вот такой вот обрубок MV без C получится. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 00:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Вот есть 2 задачи. Первое - это сделать бота. И второе - сделать бота "странным образом". Я-бы на твоем месте просто делал бота. В этом есть какая-то философская идея а также следование принципам KISS/YAGNI. Согласен? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 08:55 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
мой пример вы смотрели? Там уже многопоточность и асинхронность сделана. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 11:08 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Вот есть 2 задачи. Первое - это сделать бота. И второе - сделать бота "странным образом". Я-бы на твоем месте просто делал бота. В этом есть какая-то философская идея а также следование принципам KISS/YAGNI. Согласен? У меня есть бот, и он работает на чистой Java. И работает так, как нужно. Проблема возникла в том, что у меня информация пишется в json файл, а heroku рестартит бота каждые 24 часа, и этот json файл каждый день обновляется. Я хотел перенести всё это дело в БД. А возиться с JDBC не особо хочется, поэтому выбрал удобную модель "сущность для БД - репозиторий для работы с БД". Да и банально Spring хотелось пощупать. dakeiras мой пример вы смотрели? Там уже многопоточность и асинхронность сделана. Да моему боту многопоточность не нужна. Он же для каждого юзера запрос обрабатывает отдельно, по очереди. Коллизии при использовании данных не будет. Вопрос только во времени ожидания. Тестировал на 4 аккаунтах сразу, отправлял запрос одновеменно на парсинг - ответ пришел в течение секунды, что вполне меня устраивает. Если бот в будущем "найдет себе жизнь", то можно будет подумать об этом, а пока это лишнее. Тем более там в код груви замешан и прочитать и понять его сходу у меня не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 13:11 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha У меня есть бот, и он работает на чистой Java. И работает так, как нужно. Проблема возникла в том, что у меня информация пишется в json файл, а heroku рестартит бота каждые 24 часа, и этот json файл каждый день обновляется. Я хотел перенести всё это дело в БД. А возиться с JDBC не особо хочется, поэтому выбрал удобную модель "сущность для БД - репозиторий для работы с БД". Да и банально Spring хотелось пощупать. Не смотря на то что я люблю Spring, но мне кажется проще заморочиться с JDBC, чем пытаться изучить Spring. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 14:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul miroooha У меня есть бот, и он работает на чистой Java. И работает так, как нужно. Проблема возникла в том, что у меня информация пишется в json файл, а heroku рестартит бота каждые 24 часа, и этот json файл каждый день обновляется. Я хотел перенести всё это дело в БД. А возиться с JDBC не особо хочется, поэтому выбрал удобную модель "сущность для БД - репозиторий для работы с БД". Да и банально Spring хотелось пощупать. Не смотря на то что я люблю Spring, но мне кажется проще заморочиться с JDBC, чем пытаться изучить Spring. Ну мне не имея опыта работы для будущего собеседования будет полезнее изучить Spring, чем JDBC. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 14:31 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Будет плохо, если я оставлю сущность/модель (объект с информацией об игре), которую используя spring будут сохранять в БД при парсинге и репозиторий для обращения к БД, опустив контроллер? Как на такой код посмотрит будущий работодатель, который будет смотреть мои проекты? Я хочу изучить Spring не из-за того, что я с него тащусь, а из-за того что даже на джуниорских вакансиях в 80% случаев требуют (либо желательно) знание спринга. А там еще Hibernate где-то рядом :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 14:36 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha mad_nazgul пропущено... Не смотря на то что я люблю Spring, но мне кажется проще заморочиться с JDBC, чем пытаться изучить Spring. Ну мне не имея опыта работы для будущего собеседования будет полезнее изучить Spring, чем JDBC. :) Желательно соскочить с хероку на нормальный хостинг. А то ... какой-то замкнутый круг получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 15:09 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton miroooha пропущено... Ну мне не имея опыта работы для будущего собеседования будет полезнее изучить Spring, чем JDBC. :) Желательно соскочить с хероку на нормальный хостинг. А то ... какой-то замкнутый круг получится. Да, heroku конечно ограничивает возможную функциональность, но с другой стороны за "бесплатно" он работает хорошо. А какие хостинги можете посоветовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 15:12 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Если ты из РФ - то смотри местные. Они должны быть недороги. У AWS можно купить EC2 instance. Например t2.micro (1Gb/1CPU/SSD). Любой линукс себе закажешь. Насчет биллинга я не скажу. Я поднимал себе инстансы только для экспериментов. Что-то попробовать там. Поднял. Часик пороаботал. И потушил. Более дешевый вариант - Docker. Он же ECS. Но на своём акке я докеры еще не поднимал. В некотором гипотетическом сценарии Телеграм бота можно попробовать поднять как Lambda. Но я тут не уверен хватит ли возможностей. Если только Stateless прокатит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 15:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha mayton пропущено... Желательно соскочить с хероку на нормальный хостинг. А то ... какой-то замкнутый круг получится. Да, heroku конечно ограничивает возможную функциональность, но с другой стороны за "бесплатно" он работает хорошо. А какие хостинги можете посоветовать? Heroku хорошь тем что поднял и забыл. Никаких инфраструктурных головняков. А советовать поднимать докер=шабашить SRE на полставки у самого себя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 16:32 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
В топике по моему звучали жалобы на то что дескыть файлы не сохраняет и вообще state после ребута нигде не хранится. Вобщем ребята если просто хотите расти над собой и развиваться - то выбрасывайте бесплатные песочницы. Это знаете... как летать бизнес-классом и экономом. В экономе просидишь всю жизнь с синдромом бедности. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 17:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha, >А какие хостинги можете посоветовать? За 300-500 руб в месяц тебе не дорого? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 19:50 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Например t2.micro (1Gb/1CPU/SSD) В течение года бесплатно. Потом можно поменять кридитную карточку и зарегестрировать новую. Но 1 Gb на Java + Web - сейчас уже маловато ((( С дефолтными настройками JVM даже не запустится (Metaspace и non heap нужно зарезать по максимому) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 20:01 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Год бесплатно? У меня был только 1 месяц бесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton В топике по моему звучали жалобы на то что дескыть файлы не сохраняет и вообще state после ребута нигде не хранится. Вобщем ребята если просто хотите расти над собой и развиваться - то выбрасывайте бесплатные песочницы. Это знаете... как летать бизнес-классом и экономом. В экономе просидишь всю жизнь с синдромом бедности. мой зоопарк в хероку обходится в килобакс в месяц :) И оно того стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:10 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Тоесть ты хочешь чтобы мы термин "зоопарк" попытались натянуть на какое-то понимание бизнеса? Вроде как и похвастался. И в то-же время деталей не раскрыл. Ай хитёр. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Тоесть ты хочешь чтобы мы термин "зоопарк" попытались натянуть на какое-то понимание бизнеса? Вроде как и похвастался. И в то-же время деталей не раскрыл. Ай хитёр. Да уже рассказывал тут по отдельности... Весь этот стэк для нескольких заказчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ну моё мнение по Бобину ты знаешь .... Тот факт что оно у тебя работает я связываю с твоим энергичным "продвижением" этой ненужной dependency а также с забыванием прекрасной философии YAGNI. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:39 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
я кстати активно поработал над проектами последние недели на основе комментарием отсюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:45 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha Будет плохо, если я оставлю сущность/модель (объект с информацией об игре), которую используя spring будут сохранять в БД при парсинге и репозиторий для обращения к БД, опустив контроллер? Как на такой код посмотрит будущий работодатель, который будет смотреть мои проекты? Тогда желательно начать изучения Spring не с Spring Data Jpa, а с Spring core и реализации DI в нем. Т.е. пойти на spring.io и попробовать несколько примеров. Чем пытаться выудит информацию из форумов. miroooha Я хочу изучить Spring не из-за того, что я с него тащусь, а из-за того что даже на джуниорских вакансиях в 80% случаев требуют (либо желательно) знание спринга. А там еще Hibernate где-то рядом :) Hibernate это вообще «Чу́дище о́бло, озо́рно, огро́мно, стозе́вно и ла́яй». С кем я сталкивался никто его не знает полностью. Я тоже не знаю полностью Hibernate. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 06:34 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul Hibernate это вообще «Чу́дище о́бло, озо́рно, огро́мно, стозе́вно и ла́яй». С кем я сталкивался никто его не знает полностью. Я тоже не знаю полностью Hibernate. Его "замели веником" под ковёр SpringData. Но это до тех пор пока у вас все хорошо. Как только полезет Hiber-специфичная бага - вы увидите стектрейсы хибера во всей красе. И тогда надо будет снова брать документацию и читать с нуля. Включать режим трейса для хибер пакетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul Hibernate это вообще «Чу́дище о́бло, озо́рно, огро́мно, стозе́вно и ла́яй» ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:32 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфилов, а вы не побовали Oracle TopLink? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Hibernate это автоматизация работы с SQL, не более того. Там знать особо нечего и не нужно себе голову забивать. Всё равно всё нужно тестировать на конкретных БД. То что работает в Postgres может очень легко не работать в MSSQL - и не по вине hibernate. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:46 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton mad_nazgul Hibernate это вообще «Чу́дище о́бло, озо́рно, огро́мно, стозе́вно и ла́яй». С кем я сталкивался никто его не знает полностью. Я тоже не знаю полностью Hibernate. Его "замели веником" под ковёр SpringData. Но это до тех пор пока у вас все хорошо. Как только полезет Hiber-специфичная бага - вы увидите стектрейсы хибера во всей красе. И тогда надо будет снова брать документацию и читать с нуля. Включать режим трейса для хибер пакетов. Вот полностью с вами согласен. Но тут работает правило 20/80. Грубо говоря в подавляющем большинстве случаев хватает Spring Data Jpa. А вот когда не хватает... То тогда да. Начинается ужас. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:31 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфилов mad_nazgul Hibernate это вообще «Чу́дище о́бло, озо́рно, огро́мно, стозе́вно и ла́яй» Я бы не сказал, что Хибернейт УГ. Просто он сложный, очень сложный. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Hibernate это автоматизация работы с SQL, не более того. Вот не надо верить маркетинговым бредням. Это не автоматизация Object-Relational Mapping. Грубо говоря Попытка отобразить РМД на объекты. dakeiras Там знать особо нечего и не нужно себе голову забивать. Всё равно всё нужно тестировать на конкретных БД. Зачем, когда можно все сделать через нативные SQL-запросы и RowMapping в JDBCTemplate? Это и проще, и быстрее. ;-) dakeiras То что работает в Postgres может очень легко не работать в MSSQL - и не по вине hibernate. А может и работать, при этом модель может быть совсем не тривиальная. Хибернейт уже давно может генерировать SQL запросы в зависимости от используемой БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:37 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
это всё понятно. OLAP на ORM никак не сделать :) А что-то несложное но с непонятной инфраструктурой - велкам JPA. Потом приятно смотреть как ПМы удивляются - как так не займёт времени переезд на другую БД? авторА может и работать, при этом модель может быть совсем не тривиальная. Хибернейт уже давно может генерировать SQL запросы в зависимости от используемой БД. Значит оно скорее всего изначально мигрировалось с JDBC/писалось под MSSQL. Но я не отрицаю, всё зависит от задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:46 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul Андрей Панфилов пропущено... Нет никаких сомнений, что хибернейт - это УГ, но вы даже себе представить не можете какое УГ eclipselink... Я бы не сказал, что Хибернейт УГ. Просто он сложный, очень сложный. Пользователям незачем знать его внутренности совершенно. А когда появляется такая надобность - как Вы сказали надо спрыгивать на нативный SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul Андрей Панфилов пропущено... Нет никаких сомнений, что хибернейт - это УГ, но вы даже себе представить не можете какое УГ eclipselink... Я бы не сказал, что Хибернейт УГ. Просто он сложный, очень сложный. Я-бы сказал что цели и задачи которые ставились Хибером были достигнуты. Но это не серебрянная пуля. А бронзовая. И многие разработчики восприняли эту идею как некий рафинированный рай, где они могут заниматься Java-кодингом и ничего не знать про архитктуру реляционной БД. Странная позиция. Тем более что если разраб хочет расти как архитектор то он должен знать весь стек целиком. И не быть Java-идеалистом. Любая перформанная проблема моментально выдёргивает тебя из этого рая. А решать перформансные проблемы все равно надо. Это судьба любой системы. Она всегда хороша на тестовых данных. А на продуктовых - всё плохо. Всё лагает. Все требует тонкого тюнинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторЯ-бы сказал что цели и задачи которые ставились Хибером были достигнуты. Но это не серебрянная пуля. А бронзовая. И многие разработчики восприняли эту идею как некий рафинированный рай, где они могут заниматься Java-кодингом и ничего не знать про архитктуру реляционной БД. Странная позиция. Тем более что если разраб хочет расти как архитектор то он должен знать весь стек целиком. И не быть Java-идеалистом. Любая перформанная проблема моментально выдёргивает тебя из этого рая. А решать перформансные проблемы все равно надо. Это судьба любой системы. Она всегда хороша на тестовых данных. А на продуктовых - всё плохо. Всё лагает. Все требует тонкого тюнинга. Я более того скажу - SQL это основа основ. Я работал Java программистом только 3 месяца в 2006 году (кстати на прошлой неделе внезапно снова попал в отдел разработки на Яве). Потом работал программитстом только на PL/SQL, довольно много лет. Так вот могу сказать - у людей без SQL бэкграунда есть страшная боязнь SQL. Как буд-то это монстр какой-то. И они всячески изворачиваются чтобы не использовать его - придумывают разные no sql/mongodb, hadoop big data и прочее. Ну и насилуют JPA. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:58 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Так вот могу сказать - у людей без SQL бэкграунда есть страшная боязнь SQL. Как буд-то это монстр какой-то. Да, это правда. dakeiras И они всячески изворачиваются чтобы не использовать его - придумывают разные no sql/mongodb, hadoop big data и прочее. Ну и насилуют JPA. А вот это уже твои фантазии, все эти инструменты заточены под определенные юскейсы и прекрасно с ними справляются, там где реляционки не вывозят. И самое интересное тот же bigdata тоже в основном использует sql, но ключевое - не реляционный ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:24 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
NoSQL стар как само время. Просто терминологически его стали выделять в категорию в середине 2000х. BerkeleyDb стар, и все старые файло-подобные "БД на файлах" и либы которые писались в 20м веке - это по сути NoSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:34 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
забыл ник тот же bigdata термин интересный, но что это значит, я например не понимаю Как было в свое время сказано в подфоруме работа, про работу в российской компании которая гордилась, что у нее самая большая СУБД в Европе: "сделать самую большую СУБД в Европе - много ума не надо" ( C ) На одном из предыдущих проектов наблюдал, как в процессе миграции из старой системы в новую, табличка из пары гигабайт элегантным движением... превращается... табличка превращается... почти в террабайт информации ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:35 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, один мой знакомый архитектор говаривал: - Естественным образом? ...А ну это как раковая опухоль. Она - всегда растет естественно. Мне кажется что иногда железный стек сам по себе подкидывает новые техно-категории. Например. Как только подешевел мегабайт - стали строить датацентры где хранилища стоили как грязь. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:40 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Я-бы сказал что цели и задачи которые ставились Хибером были достигнуты. Но это не серебрянная пуля. А бронзовая. И многие разработчики восприняли эту идею как некий рафинированный рай, где они могут заниматься Java-кодингом и ничего не знать про архитктуру реляционной БД. Странная позиция. Тем более что если разраб хочет расти как архитектор то он должен знать весь стек целиком. И не быть Java-идеалистом. Любая перформанная проблема моментально выдёргивает тебя из этого рая. А решать перформансные проблемы все равно надо. Это судьба любой системы. Она всегда хороша на тестовых данных. А на продуктовых - всё плохо. Всё лагает. Все требует тонкого тюнинга. Прошу прощения, но я тут с вами не согласен. Цели Хибернейтом не были достигнуты. Цель - отображение РМД на ООМ. Когда модели простые, то все ок - работает. И даже просто. Но как только модель становиться сложной, то начинается попытка натянуть сову на глобус. С закономерным результатом. И тут либо надо разбираться в потрохах Хибернейта, чтобы угадать, какие запросы будут созданы. Либо плюнуть и использовать SQL + Jdbc. При этом для простых моделей, для Хибернейта приходиться писать много бойлерплайт кода. Эту проблему решает Spring Data Jpa. Который позволяет не писать кучу не относящегося к БЛ кода. А позволяет в декларативном стиле обратиться к БД. Но в силу того, что Spring Data Jpa не SQL, то данный инструмент очень сильно ограничен. И не позволяет использовать все возможности SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 14:48 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Я более того скажу - SQL это основа основ. Я работал Java программистом только 3 месяца в 2006 году (кстати на прошлой неделе внезапно снова попал в отдел разработки на Яве). Потом работал программитстом только на PL/SQL, довольно много лет. Так вот могу сказать - у людей без SQL бэкграунда есть страшная боязнь SQL. Как буд-то это монстр какой-то. И они всячески изворачиваются чтобы не использовать его - придумывают разные no sql/mongodb, hadoop big data и прочее. Ну и насилуют JPA. Вот тоже самое могу сказать про "базистов". Которые привыкли думать в парадигме РМД. В то время, как сейчас существуют другие способы работы с данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 14:51 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton NoSQL стар как само время. Просто терминологически его стали выделять в категорию в середине 2000х. BerkeleyDb стар, и все старые файло-подобные "БД на файлах" и либы которые писались в 20м веке - это по сути NoSQL. Не совсем. Просто на данной спирали развития СУБД (без Р), предлагаются другие способы решения проблем согласованности и не противоречивости данных. Для ортодоксальных "базистов" они выглядят, как "ересь". Кстати сейчас БД как двигаются в сторону NoSQL. Но проблема, в том, что получается "ну так себе" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 14:58 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev забыл ник тот же bigdata термин интересный, но что это значит, я например не понимаю Как было в свое время сказано в подфоруме работа, про работу в российской компании которая гордилась, что у нее самая большая СУБД в Европе: "сделать самую большую СУБД в Европе - много ума не надо" ( C ) На одном из предыдущих проектов наблюдал, как в процессе миграции из старой системы в новую, табличка из пары гигабайт элегантным движением... превращается... табличка превращается... почти в террабайт информации ))) BigData это когда не хватает денег на лицензии Oracle. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 14:59 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul BigData это когда не хватает денег на лицензии Oracle. :-) Нет. Бигдата не решает Оракловых проблем. Это больше про аналитику и события в прошлом. Я где-то в форуме поднатужился и изобрёл свое определение Bigdata. Могу найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:20 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul Прошу прощения, но я тут с вами не согласен. Цели Хибернейтом не были достигнуты. Цель - отображение РМД на ООМ. Когда модели простые, то все ок - работает. И даже просто. Но как только модель становиться сложной, то начинается попытка натянуть сову на глобус. С закономерным результатом. И тут либо надо разбираться в потрохах Хибернейта, чтобы угадать, какие запросы будут созданы. Либо плюнуть и использовать SQL + Jdbc. Я думаю что цели все таки достигнуты. Ведь формально вы Сегодня можете создавать БД не от SQL скриптов а от Hibernate опций auto.ddl=create Насколько глубоко эта модель будет использовать ВОЗМОЖНОСТИ БД как то партишенинг, хранимки, триггеры - это большой вопрос. Но ведь и стандарт SQL тоже не урегулировал этот вопрос до конца. Язык хранимок Оракла и Постгреса несовместим хотя и похож. Кроме того если вы знаете более правильный или идеальный ОРМ - попробуйте его найти среди множества других. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:25 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Я думаю что цели все таки достигнуты. Ведь формально вы Сегодня можете создавать БД не от SQL скриптов а от Hibernate опций auto.ddl=create Насколько глубоко эта модель будет использовать ВОЗМОЖНОСТИ БД как то партишенинг, хранимки, триггеры - это большой вопрос. Но ведь и стандарт SQL тоже не урегулировал этот вопрос до конца. Язык хранимок Оракла и Постгреса несовместим хотя и похож. Даже формально нет. Т.к. не решает задачи формального перевода одной модели в другую. И дело тут не в триггерах и пр., а в моделях. mayton Кроме того если вы знаете более правильный или идеальный ОРМ - попробуйте его найти среди множества других. Идеального ORM нет и не будет. Ограничение фундаментальное. РМД все таки основывается на вполне понятной и строгой математической модели. Есть понятные правила/алгоритмы построения модели, что позволило создать хороший декларативный ЯП SQL. А вот с ООМ ситуация мутная. Каждая модель уникальна. И нет понятных "правил/алгоритмов" по которым строятся эти модели. Поэтому для сложных ООМ лучше писать свой "проебразователь" в РМД. Причем может так оказаться, что разные ООМ могут быть представлены в виде одной РМД и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:45 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul mayton Я думаю что цели все таки достигнуты. Ведь формально вы Сегодня можете создавать БД не от SQL скриптов а от Hibernate опций auto.ddl=create Насколько глубоко эта модель будет использовать ВОЗМОЖНОСТИ БД как то партишенинг, хранимки, триггеры - это большой вопрос. Но ведь и стандарт SQL тоже не урегулировал этот вопрос до конца. Язык хранимок Оракла и Постгреса несовместим хотя и похож. Даже формально нет. Т.к. не решает задачи формального перевода одной модели в другую. И дело тут не в триггерах и пр., а в моделях. Ты чуть-чуть меня недоубедил. Не хватает примера. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:46 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mad_nazgul РМД все таки основывается на вполне понятной и строгой математической модели. Есть понятные правила/алгоритмы построения модели, что позволило создать хороший декларативный ЯП SQL. А вот с ООМ ситуация мутная. Каждая модель уникальна. И нет понятных "правил/алгоритмов" по которым строятся эти модели. Поэтому для сложных ООМ лучше писать свой "проебразователь" в РМД. Причем может так оказаться, что разные ООМ могут быть представлены в виде одной РМД и наоборот. Кажется есть обобщенный термин Object-relational impedance mismatch целые статьи ему посвящаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:48 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Просто само понятие объект - искусственное и натянутое в рамках программирование. Ну и когда берут мусор на вход то получается и мусор на выходев виде ОРМ, который решает надуманную проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:56 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
О нет! Только давай сейчас не трогать ООП. Там - еще хуже. В РА есть хотя-бы алгебра множеств. И есть декларативные (доказуемые) свойства соединений. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton О нет! Только давай сейчас не трогать ООП. Там - еще хуже. В РА есть хотя-бы алгебра множеств. И есть декларативные (доказуемые) свойства соединений. Так я про то и говорю, что нету никакого object-relational mismatch, есть проблема в том что много кто моделирует приложение в виде объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:08 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
забыл ник, Ну смотри. Проблема то не в том что Хибернейт не совершенен. Он - полируется много лет и туда уже просто НЕЧЕГО ДОБАВИТЬ как в том анекдоте. А в том что сама идея ORM - не формализована нигде. Нет научной работы которая бы показывала что маппинг должен быть таким и вот доказательство (как Пуанкаре). И поэтому мы в топике даже не можем спорить т.к. нет судейства. P.S. А хибер в своём сегменте - вполне себе завершонное ПО. Хотя и мне не нравится лично. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:31 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
доказательство ущербности мировоззрения среднестатистического пользователя ORM на stackoverflow: https://stackoverflow.com/a/5819631/6784237 Просто вчитайтесь. Нигилизм во всей красе. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:52 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras доказательство ущербности мировоззрения среднестатистического пользователя ORM на stackoverflow: https://stackoverflow.com/a/5819631/6784237 Просто вчитайтесь. Нигилизм во всей красе. вкратце переведу: человек утверждает что использовать предикату в inner join (JPQL "join fetch") - неправильно, а надо фильтровать в Ява коде уже коллекцию. Это просто меня убивает если честно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:58 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Criteria API вообще должен был умереть. Я пожалуй вижу единственный его смысл - генерация динамики в SQL. Но обычно эта фича легко закрывалась прикладными билдерами SQL которые люди сами для себя пишут и их решение всегда компактне чем Criteria. А я туда еще хинты Оракла добавлял. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 17:04 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторлегкий хибернейт?)) ну мб в рамках дефолт репозиториев и методов findById а вот когда ты начинаешь инрегрировать его в крупный проект начнутся проблемы и первая это постоянный рефакторинг сущностей поэтому мы выборали для части наших адаптеров жук,который гораздо более гибок в этом плане Так и не нужно насиловать его в сложных случаях :) Как тут написали - нативный SQL без альтернатив. Вот примеры, всё примитивно и удобно, Хибернейт помогает в таких случаях: https://github.com/INFINITE-TECHNOLOGY/ASCEND/tree/master/ascend-sdk/src/main/groovy/io/infinite/ascend/granting/configuration/repositories https://github.com/INFINITE-TECHNOLOGY/ASCEND/tree/master/ascend-sdk/src/main/groovy/io/infinite/ascend/common/repositories https://github.com/INFINITE-TECHNOLOGY/PIGEON/tree/master/pigeon-lib/src/main/groovy/io/infinite/pigeon/repositories авторхероку хорош для пет проектов- неужели ты его юзаешь под прод коммерческих проектов? а почему нет? Всё отлично. Единственный минус: дорого. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 22:22 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras dakeiras доказательство ущербности мировоззрения среднестатистического пользователя ORM на stackoverflow: https://stackoverflow.com/a/5819631/6784237 Просто вчитайтесь. Нигилизм во всей красе. вкратце переведу: человек утверждает что использовать предикату в inner join (JPQL "join fetch") - неправильно, а надо фильтровать в Ява коде уже коллекцию. Это просто меня убивает если честно. Где именно в том топике на SO вы прочли именно это ? Там довольно прозрачно написано, что JOIN FETCH - это projection и применять к нему условия (т.е. использовать его в selection ) совершенно не разумно (выучите-таки SQL за который так топите), более того, в JPA подразумевается что при работе с объектной моделью ассоциативные связи бывают только в двух состояниях: "заполнены полностью" и "мы к ним еще не обращались и не знаем что там", такой концепции, что в зависимости от "контекста" ассоциативная связь ведет себя по разному, в JPA нет и быть не может, потому что оно не имеет никакого смысла: противоречивость модели - это полная жопа с точки зрения разработки, если вам действительно требуется контекст в таком смысле, то нужно делать слой над моделью, а не писать дичь в духе: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Вы думаете, что JPA вам обязано упрощать написание запросов, это во-первых, нифига не так, во-вторых, надо хоть иногда включать мозг прежде чем пороть хрень: в вашем случае достаточно было ввести явную связь типа PrototypeAuthorizationScope с M2O на PrototypeAuthorization и Scope и обращаться к этой связи, а не писать чушь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 09:57 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторболее того, в JPA подразумевается что при работе с объектной моделью ассоциативные связи бывают только в двух состояниях: "заполнены полностью" и "мы к ним еще не обращались и не знаем что там я именно об этом и говорю. Это неправильный подход. Объясню почему: - Это колечит весь дизайн т.к. 1) ограничивается размер коллекций - иначе без join предикат план запроса будет делать hash join вместо nested loops. И база будет вставать раком. 2) из-за п.1 придётся отказываться от логических зависимостей 3) появляются извращения как Вы ниже предложили (явные промежуточные сущности) 4) в итоге переписываем у себя в коде жалкое подобие того что могло быть сделано элементарно стандартными средствами SQL авторв вашем случае достаточно было ввести явную связь типа PrototypeAuthorizationScope с M2O на PrototypeAuthorization и Scope и обращаться к этой связи Это всё понятно и рассматривалось. И не сделано т.к. как раз таки не соответствует философии ORM. авторВы думаете, что JPA вам обязано упрощать написание запросов Я так не думаю. авторвыучите-таки SQL за который так топите Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки. Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо. Но в относительном положении (относительно разработчиков и пользователей SQL), я не давал в этом топике поводов усомниться в своих знаниях. Да и очень маловероятно что такое когда-либо произойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 12:24 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Пока тема активна, уточню ещё один нюанс. До перехода на Spring Boot я писал распарсенные игры в json файл, и из этого файла при каждом новом старте приложения читал данные во внутреннюю мапу, с которой и работал до следующего перезапуска приложения. Каждый новый запрос писался и в мапу и в файл одновременно. Я решил теперь писать в БД с помощью Spring JPA (ну пробую возможности Spring'a). И у меня возник вопрос. Стоит ли при каждом новом запуске приложения подгружать из БД данные в локальную мапу и далее работать с ней (как делалось с файлом) или работать напрямую с БД и через обычные SQL-запросы? С каждым новым запросом идти в БД напрямую или опять же использовать внутреннюю мапу, а затем уже писать в БД? Короче говоря, нужна ли мне "промежуточная" локальная мапа при использовании БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 13:00 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha, Не нужно делать промежуточные сущности. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 15:45 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp miroooha, Не нужно делать промежуточные сущности. То бишь убрать вообще локальную мапу и работать напрямую с БД? Никаких преимуществ использование внутренней структуры данных не даст? Интересно, что отработает быстрее: поиск по БД или хешмапке. Ну к БД можно интересный запрос написать, например. Более гибким этот вариант видится. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 15:55 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha, Это просто копирование из бд таблицы в оперативку.. Мапа это ведь таблица. ..... Иногда надо. Но мы ведь не будем счас воображать кучу этих причин. Разумеется к бд медленнее. Ты дома склад продуктоа делаешь если под окном Пятерочка магаз? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 16:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha PetroNotC Sharp miroooha, Не нужно делать промежуточные сущности. То бишь убрать вообще локальную мапу и работать напрямую с БД? Никаких преимуществ использование внутренней структуры данных не даст? Интересно, что отработает быстрее: поиск по БД или хешмапке. Ну к БД можно интересный запрос написать, например. Более гибким этот вариант видится. Если-б кеш полностью заменял БД - то тогда зачем тебе вообще БД? Храни всё в хешмапке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 16:42 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
никто не дал правильный ответ. Правильный ответ с точки зрения архитектуры: в боте хранить только сессию. Всё остальное хранить в отдельном приложении, в которое бот должен ходить через REST API. Когда потребуется другой бот (например фейсбучный), мобильное приложение или сайт - REST API не придётся заново делать\переносить из бота. Как хранить - в БД, мапе, монго или на берестяных грамотах - не важно на самом деле, при такой архитектуре. Как нравится так и храни. Я храню в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 16:58 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Как нравится так и храни. Цена вопроса - фиксация последнего изменения. И чем ты готов пожертвовать. Как "нравится" ... это не совсем инженерный термин IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 17:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Тебе виднее. Боты удел молодости)) Мы тут в корпоративе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 17:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp miroooha, Ты дома склад продуктоа делаешь если под окном Пятерочка магаз? Погреб с картофлесом на даче подойдет? :D PetroNotC Sharp dakeiras, Боты удел молодости)) А ещё неплохая практика для тех, кто делает свои первые проекты и поднимается на junior уровень. Да мне вариант с БД даже больше нравится, так как с файлом и локальной мапой уже работал, теперь можно и напрямую с БД поиграться. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 17:36 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки. Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо. Скажу как бывший DBA. Знание SQL является главной опцией именно разработчика. Ему - код делать и развивать архитектуру и фиксить баги. DBA в данном вопросе вторичен. Он может давать консультации по разным деталям (performance issues, disaster recovery procedurres) но принятие решений по тому КАК разрабатывать решает именно разработчик и только он. Поэтому нет никакой другой роли или отвественности которая обязывала бы знать SQL лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 17:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, Тебе виднее. Боты удел молодости)) Мы тут в корпоративе. Бот это такой же пользовательский канал как и веб сайт или мобильное приложение. Насчёт молодости не понял к чему (или к кому) это. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 18:31 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки. Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо. Скажу как бывший DBA. Знание SQL является главной опцией именно разработчика. Ему - код делать и развивать архитектуру и фиксить баги. DBA в данном вопросе вторичен. Он может давать консультации по разным деталям (performance issues, disaster recovery procedurres) но принятие решений по тому КАК разрабатывать решает именно разработчик и только он. Поэтому нет никакой другой роли или отвественности которая обязывала бы знать SQL лучше. а как же partition pruning, external tables, анализ производительности на конкретных СУБД? Без админских прав не получится залезть глубоко слишком. А как только программист получает доступ админский к машине с базой (даже локальной), он уже не программист, а DBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 18:34 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras PetroNotC Sharp dakeiras, Тебе виднее. Боты удел молодости)) Мы тут в корпоративе. Бот это такой же пользовательский канал как и веб сайт или мобильное приложение. Насчёт молодости не понял к чему (или к кому) это. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 18:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторты рассказал техническую часть. А я сказал про "в чем ценность бота для бизнеса"…? бот это дешёвая и хорошая альтернатива мобильным приложениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 19:06 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton пропущено... Скажу как бывший DBA. Знание SQL является главной опцией именно разработчика. Ему - код делать и развивать архитектуру и фиксить баги. DBA в данном вопросе вторичен. Он может давать консультации по разным деталям (performance issues, disaster recovery procedurres) но принятие решений по тому КАК разрабатывать решает именно разработчик и только он. Поэтому нет никакой другой роли или отвественности которая обязывала бы знать SQL лучше. а как же partition pruning, external tables, анализ производительности на конкретных СУБД? Без админских прав не получится залезть глубоко слишком. А как только программист получает доступ админский к машине с базой (даже локальной), он уже не программист, а DBA. Даже будучи DBA я не всегда имел возможность проверить то что хотелось. Обычно environment имел типовую конфигурацию (Oracle pfile) которую нельзя было трогать. Это не запрет а просто договорённость между группой DBA и сисадминов. И я поднимал виртуалки и проверял свои тестовые конфигурации. Я не вижу преград чтоб разработчик сделал тоже самое. А имеено поднял грёбаный VBox, VMVare или Docker и просто проверил то что хочется под привилегиями SysDba. Поэтому и partitioning и работу в RAC и восстановление сломаной БД с RMAN я проверял на виртуалках. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 19:56 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras авторты рассказал техническую часть. А я сказал про "в чем ценность бота для бизнеса"…? бот это дешёвая и хорошая альтернатива мобильным приложениям.у меня приложение сканит штрих код бутылки вина в магазине и выдает всю инфу по нему. Жду не бла бла "у нас самый лучший стиральный порошок" а альтернативу моему юз кейсу выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:22 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras пропущено... бот это дешёвая и хорошая альтернатива мобильным приложениям. Жду не бла бла "у нас самый лучший стиральный порошок" а альтернативу моему юз кейсу выше. ээ, это как раз юскейс для бота именно. Зачем для этого целое приложение? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:28 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторЯ не вижу преград чтоб разработчик сделал тоже самое. А имеено поднял грёбаный VBox, VMVare или Docker и просто проверил то что хочется под привилегиями SysDba. ну да, так и приходится делать. Докер вообще кайф - например MSSQL в 1 клик ставится. Но всё равно это не 100% гарантия, данных меньше будет в базе и другая среда всё таки. Но так то да. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:30 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Блин, ну я ни одного бота не видел. И ты не показал. Мобильное означает на мобильнике. Где там боты? Не вижу ни одного. Покаж!)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Телеграм установи сначала. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:40 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, Блин, ну я ни одного бота не видел. И ты не показал. Мобильное означает на мобильнике. Где там боты? Не вижу ни одного. Покаж!)))) а, всё, понял. Сорри. вот демо бот: http://t.me/david_it_bot https://github.com/INFINITE-TECHNOLOGY/DAVID В Вашем случае это так организуется: - Боту посылается фотка со штрихкодом - на боте используется сервис или библиотека для распознавания штрихкодов - бот шлёт сообщения с инфой юзеру Но может быть есть и более интегрированное решение, я только финансовых ботов делаю. Игры\прикладные боты особо не делал, и не знаю какие там удобства в телеге есть для таких вещей. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 20:42 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp, Телеграм установи сначала. Угу. Ватсап есть, вайбер есть, скайп есть. Еще телеграмм и будет нирвана? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 21:18 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, >вот демо бот: Ресурс заблокирован ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 21:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, >вот демо бот: Ресурс заблокирован телегу блокируют в России надо через впн ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 22:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ну вот тут ботам и смерть пришла. Оказывается законы некоторых стран могут запрещать бото-платформы. Мдя... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2020, 23:04 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Отсюда вывод что это не мейнстрим. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 09:51 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
хотите открою страшную вещь? 90% жителей ЮВА считают что "Интернет" это Фейсбук. Выводы делайте сами дальше. А от себя замечу что Российское IT застряло в начале 2010х. Стараниями эффективных менеджеров из Яндекса. Поэтому тут не то что чат бот вызывает удивление, даже нормального приложения для заказа еды нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 10:17 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Это голословно, что вы наехали на IT Рф. Вы вышели привели юз кейс бота. Но так и не сказали ЧЕМ ОТЛИЧАЕТСЯ от веб приложения? Мой пример был основан что ГУИ андроида это десктоп. И просто там приложение красивше выходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:26 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Скрины хоть давайте, если не можете рассказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:27 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Все больше убеждаюсь что боьы пишут 16тилетки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:29 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:47 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:47 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, я пытался искать научный смысл или некую наукообразность в ботах https://www.sql.ru/forum/1325197/chyat-boty-i-ii Но я разочарован. Писатели ботов не знают что такое "экспертные системы". Это уже не первый мой investigation. Я и в других инфо-ресурсах интересовался. Логика диалога построенная на if-else мне не интересна. И TelegramLongPollingBot ничем принципиально не отличается от HttpServlet по usecase. Просто yet another fucken facade. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторВсе больше убеждаюсь что боьы пишут 16тилетки. Оно так и есть в основном. + Иранцы (у них оч. популярна телега, когда был там пару лет назад - везде реклама групп в телеге). И всякие гопники. Группы по библиотеке телеге - тот ещё ад)) Детский сад там полный. С другой стороны Mayton очень интересную тему тут дал: Microsoft botframework. В ней перегиб в другую сторону идёт - жуткий CompletableFuture API но с поддержкой любых чат платформ (фейсбук, слак и прочее). Пока у моей фирмы ниша - качественные финансовые боты на телеге, с отличным UX. Там посмотрим - либо буду добавлять чат платформы, либо буду использовать botframework вопреки качеству. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:52 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp, я пытался искать научный смысл или некую наукообразность в ботах https://www.sql.ru/forum/1325197/chyat-boty-i-ii Но я разочарован. Писатели ботов не знают что такое "экспертные системы". Это уже не первый мой investigation. Я и в других инфо-ресурсах интересовался. Логика диалога построенная на if-else мне не интересна. И TelegramLongPollingBot ничем принципиально не отличается от HttpServlet по usecase. Просто yet another fucken facade. В том MS Botframework который ты раскопал вроде есть поддержка всякого ИИ. Но в общем случае ты совершенно прав. Поэтому правильное использование бота - просто как фронтенд. Без попыток эмулировать разумного человека. См. выше скриншоты. Почти никакого пользовательского ввода. Тупо кнопки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton PetroNotC Sharp, я пытался искать научный смысл или некую наукообразность в ботах https://www.sql.ru/forum/1325197/chyat-boty-i-ii Но я разочарован. Писатели ботов не знают что такое "экспертные системы". Это уже не первый мой investigation. Я и в других инфо-ресурсах интересовался. Логика диалога построенная на if-else мне не интересна. И TelegramLongPollingBot ничем принципиально не отличается от HttpServlet по usecase. Просто yet another fucken facade. В том MS Botframework который ты раскопал вроде есть поддержка всякого ИИ. Хм... странно. Не помню что-б я такое раскапывал. Какая-там лицензия? Там есть open-source? Описана идея? Можно ли самому делать contribute? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 12:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras пропущено... В том MS Botframework который ты раскопал вроде есть поддержка всякого ИИ. Хм... странно. Не помню что-б я такое раскапывал. Какая-там лицензия? Там есть open-source? Описана идея? Можно ли самому делать contribute? сорри может я попутал пользователя. Кто-то тут посоветовал это. Там всё плохо - сам адаптер API чат платформ как я понял проприетарный и завязан обязательно на Азур. Но с точки зрения универсальности - идея правильная. Пишешь 1 раз бота - ипользуешь на любых чат платформах. https://www.botframework.com/ https://github.com/microsoft/botframework-sdk ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 12:06 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton пропущено... Хм... странно. Не помню что-б я такое раскапывал. Какая-там лицензия? Там есть open-source? Описана идея? Можно ли самому делать contribute? сорри может я попутал пользователя. Кто-то тут посоветовал это. Там всё плохо - сам адаптер API чат платформ как я понял проприетарный и завязан обязательно на Азур. Но с точки зрения универсальности - идея правильная. Пишешь 1 раз бота - ипользуешь на любых чат платформах. https://www.botframework.com/ https://github.com/microsoft/botframework-sdk Это похоже на AWS SDK. По всей видимости ты не сможешь использовать этот сорс отдельно от облака. Вобщем эта тема тоже мне не интересна. Вообще всё коробочное и пропреитарное - можно обсуждать даже в форумах девопсов и дизайнеров. Программирования тут мало. И следовательно предмета для обсуждения еще меньше. А в преддверии тотального ИИ мы все скоро запишемся в управдомы девопсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 12:16 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton ... двачую. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 12:25 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Кто там эксперт по heroku? Хотел пробно поднять бота, но не получилось. Точнее получилось, но он молчит. Использовал настройки, с которыми работал обычный (не Spring) бот: с Procfile, main-class в pom.xml, и конфигурация worker. Какая конфигурация нужна для Spring Boot бота? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 19:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha Кто там эксперт по heroku? Хотел пробно поднять бота, но не получилось. Точнее получилось, но он молчит. Использовал настройки, с которыми работал обычный (не Spring) бот: с Procfile, main-class в pom.xml, и конфигурация worker. Какая конфигурация нужна для Spring Boot бота? https://github.com/INFINITE-TECHNOLOGY/DAVID ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 01:05 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
по поводу где держать в базе или в коде если все данные влезают в объекты, значит данных мало, а если их мало, то и СУБД держит их в кеше. плюс субд ориентирована нативно для такой работы по ботам - куча вариантов про двухфакторную авторизацию, использование бота добавляет ещё один вариант. на Хабре уже появился громоздкий код, но можно сделать намного проще. в отличие от авторизации по qr - не надо писать приложения для мобилок. в отличие от смс - бесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 02:25 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Ага, значит в Procfile уже не worker, а web. А проект вручную надо собирать? Или heroku сам его соберёт? Плюс я с gradle не работал, только Maven. Но если не собирать, то какой путь указывать для jar'ника. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 15:26 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ну вот что не так? Беру простейшего бота на вебхуках. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: 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. 29. 30. 31.
Создал приложение на heroku. Прописал в проперти: Код: java 1. 2. 3.
Установил для бота соответствующий вебхук по такому шаблону: Код: java 1.
Всё подхватилось, тестировал через адрес, который генерит ngrok. Делаю деплой, heroku собирает jar-ник, из логов: Код: java 1.
В панели heroku dyno ставится автоматом: Код: java 1.
Деплой успешен, бот молчит. У кого был реальный опыт деплоя Spring Boot бота на вебхуках, может объяснить, что не так? Я код пишу меньше, чем вожусь с этим деплоеем. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 14:16 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha dakeiras, Ага, значит в Procfile уже не worker, а web. А проект вручную надо собирать? Или heroku сам его соберёт? Плюс я с gradle не работал, только Maven. Но если не собирать, то какой путь указывать для jar'ника. Gradle сам соберёт, надо просто прилинковать github репозиторий ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 14:25 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторБеру простейшего бота на вебхуках. а зачем на веб хуках? Оно нормально работало только в фантазиях Дурова. Все делают на GetUpdates. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 14:26 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras авторБеру простейшего бота на вебхуках. а зачем на веб хуках? Потому что обычный на LongPolling аналогично не заводится, решил попробовать вебхуки. Во время тестов на вебхуках работал нормально. В общем, ни одна срань на спринг буте на heroku не работает (у меня). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 14:50 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
А что в логах? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 16:21 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 17:24 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton А что в логах? В логах heroku нашел следующее: Код: java 1. 2. 3. 4. 5. 6. 7.
Видимо, проблема в том, что heroku либо не может собрать jar, либо не может его "распаковать и запустить". В Procfile я положил: Код: java 1.
Добавил в pom.xml: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Теперь в логах: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 13:50 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
У тебя в артифактах не собралсись важные классы такие как ApiContextInitializer Чтоб их собрать в 1 артифакт - попробуй плагин maven-shade-plugin вместо jar-plugin. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 13:59 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Переписал "дино" с web на worker и этот бот заработал. В pom.xml: Код: 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. 29. 30. 31. 32. 33. 34.
В Procfile: Код: java 1.
И в самом heroku включил ползунок, бот заработал. Однако в логах по-прежнему мелькает строчка: Код: java 1.
Теперь надо попробовать на настоящем боте, а не тестовом. Но вот заставить бота работать как web пока не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 14:08 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Что ж, поднял своего спрингового бота с такой же конфигурацией, пошел смотреть логи, а там: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
И вот откуда это берется, если на локальной машине всё прекрасно работает? Ну и БД он естественно не подхватывает/не создаёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 14:29 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ану попробуй как он предлагает запуск с application with 'debug' enabled ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 14:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, Удалось разрешить конфликт зависимостей (точнее циклическое создание бинов), но там свои косяки появились (думаю, решаемы), но хотя бы бот стал отвечать. Как мне подружить heroku с БД? На локальном ПК я создавал БД (Postgres) локально через pgAdmin. Собственно, в application.propeties лежит это: Код: java 1. 2. 3. 4. 5. 6.
Но по идее heroku создает свою БД? Плагин для БД он сам подтянул, вижу в dashboard. Какие настройки нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 14:51 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Я не знаю я не специалист в heroku. Но если тарифный план включает в себя оплату за БД то это действие должно где-то проходить как создание еще одного сервиса. Так делает AWS по крайней мере. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 14:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Я не знаю я не специалист в heroku. Но если тарифный план включает в себя оплату за БД то это действие должно где-то проходить как создание еще одного сервиса. Так делает AWS по крайней мере. Нашел вроде как хорошую статейку: https://dev.to/prisma/how-to-setup-a-free-postgresql-database-on-heroku-1dc1 Попробую, потом отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 22:05 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Подтянул настройки, всё заработало! Какое облегчение, победить в этом бою. Надеюсь, что heroku БД не "сбрасывает" каждый день, как было с файлом. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 22:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Если ещё смогу победить вебхуки, вообще будет замечательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 22:34 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Вот кстати новость проскочила что РФ разблокирует телеграм. Думаю что ботов станут делать активнее. Чтож. Я надеюсь только что боты станут чуть умнее чем диалоговые меню в магазинах. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 09:01 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton, Мне кажется что бот к телеге равноценен плагину к браузеру. Кто то пишет. Но это единицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 09:33 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, Мне кажется что бот к телеге равноценен плагину к браузеру. Кто то пишет. Но это единицы. неправильно кажется. И уже 100 раз объясняли и даже картинки давали. Надо уметь воспринимать информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 10:24 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Мне кажется что бот к телеге равноценен плагину к браузеру. Кто то пишет. Но это единицы. через бот торгуют, управляют, общаются авторизуются ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 11:27 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Мне не нравится что оно в пределах телеги. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 12:12 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя, НАПРАВЛЕНИЕМ оно станет, когда пуповину от телеги отрежет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 12:13 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Я не знаю я не специалист в heroku. Но если тарифный план включает в себя оплату за БД то это действие должно где-то проходить как создание еще одного сервиса. Так делает AWS по крайней мере. Кстати, судя по имени хоста, heroku в качестве хоста для БД использует AWS. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 12:25 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Перепродает услугу получается? Ну тогда надо цены сравнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 12:57 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, Мне не нравится что оно в пределах телеги. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 12:59 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Бот - это слишком громкое слово. Никакой это не бот. Это просто сервлет который работает в контейнере мессенжера телеграм. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:00 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp dakeiras, Мне не нравится что оно в пределах телеги. Боты? Их полно: - Фейсбук - Ватсап - Слак - Саппорт боты на сайтах и пр. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Бот - это слишком громкое слово. Никакой это не бот. Это просто сервлет который работает в контейнере мессенжера телеграм. да. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Бот - это слишком громкое слово. Никакой это не бот. Это просто сервлет который работает в контейнере мессенжера телеграм. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:03 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Если мигрировать в AWS то я-бы предложит поробовать такую платформу как ECS (это ихний докер). Должна быть дешевле чем EC2. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:13 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Бот - это слишком громкое слово. Никакой это не бот. Это просто сервлет который работает в контейнере мессенжера телеграм. телеграм обеспечивает только передачу сообщений обработчик этих сообщений находится у тебя на сервере. как ты его сделаешь - это зависит от твоих знаний и возможностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:36 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Боты? Их полно: - Фейсбук - Ватсап - Слак - Саппорт боты на сайтах бот - Ватсап платный остальные не так популярны ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:37 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя dakeiras Боты? Их полно: - Фейсбук - Ватсап - Слак - Саппорт боты на сайтах бот - Ватсап платный остальные не так популярны Фейсбук не популярен? Я выше уже говорил, что 90% людей в ЮВА считают что Интернет это Фейсбук. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:40 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Так, удалось выяснить, что в бесплатном плане heroku поддерживает только 20 подключений, потом БД не доступна. Проблема у меня в коде, так как после запроса (я обращаюсь через репозиторий), я получается не закрываю подключение к БД. В итоге повис сейчас на 20/20 подключений. Сбросил все подключения вручную через Heroku CLI и рестартнул приложение. Вернулось к 0/20. Сделал 1 запрос к БД - стало 10/20. Спустя пару секунд, не обращаясь из телеграм бота к БД, уже снова 20/20. Короче говоря, утечки, не гуд. Как фиксить? Как закрывать подключение к БД? В классическом JDBC я примерно понимаю как, а вот в Spring Boot? Я вручную подключение не создаю, всё отдаю на волю спрингу и использую только репозиторий. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:43 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Используй Apache Dbcp или Hikari connection pools. 20 сеансов это свыше головы тебе хватит. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Фейсбук не популярен? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя mayton Бот - это слишком громкое слово. Никакой это не бот. Это просто сервлет который работает в контейнере мессенжера телеграм. телеграм обеспечивает только передачу сообщений обработчик этих сообщений находится у тебя на сервере. как ты его сделаешь - это зависит от твоих знаний и возможностей. ОК. Я согласен. Я просто подчеркиваю что никаких опций ИИ Телеграмский API нам не предоставил. В моём понимании Бот - это не диалоговая система а некий симулятор человека на той стороне. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 14:14 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton В моём понимании Бот - это не диалоговая система а некий симулятор человека на той стороне. "та сторона" - это твоя программа, если ты сможешь качественно симулировать человека -значит будет хорошой у тебя бот от апи телеги никаких опций и не требуется - только качественный канал ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 14:38 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя mayton В моём понимании Бот - это не диалоговая система а некий симулятор человека на той стороне. "та сторона" - это твоя программа, если ты сможешь качественно симулировать человека -значит будет хорошой у тебя бот от апи телеги никаких опций и не требуется - только качественный канал А чем она принципиально будет отличаться от мобильного сайта? Тоесть я хочу понять цимес диалогового бота. Может мне лень тайпать слова? Может я просто выберу в меню нужный мне тип товара? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 15:38 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton А чем она принципиально будет отличаться от мобильного сайта? но если вникать в тонкости - то почти всем. основное кодирование этих сообщений в браузерах есть пуш сообщения, для них используется какой-то сервер, и, кажись, платный ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 15:52 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя, Ну, если для тебя кодирование и шифроваться это главное, тогда конечно. Террорист? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 15:55 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
боже вас упоси юзера заставалять писать боту. Кнопки же есть в боте! За что вы так ненавидите юзеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя mayton А чем она принципиально будет отличаться от мобильного сайта? но если вникать в тонкости - то почти всем. основное кодирование этих сообщений в браузерах есть пуш сообщения, для них используется какой-то сервер, и, кажись, платный Платный? О чем ты говоришь? Ты себе на сайте легко поднимешь web-push без всякой оплаты. Тыж вебсокеты кодил? И в пуше тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:05 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras боже вас упоси юзера заставалять писать боту. Кнопки же есть в боте! За что вы так ненавидите юзеров? Вот вот. Яж к тому и подвожу. Если есть кнопки - нахрена мне нужен вообще мессенджер? Обычный статический контент с формочками. И я буду счастлив как слон. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Кстати, кто-нибудь может объяснить феномен? Я запускаю на локальной машине бота на Spring Boot: - успешный старт. Делаю деплой того же самого кода на heroku, и получаю ApplicationContext Error: The dependencies of some of the beans in the application context form a cycle... Окей, я убрал все внедрения зависимостей через конструктор и просто делаю @Autowired на полях, чтобы heroku смог поднять бота. Так работает. Но я никак не понимаю, почему в одном месте никаких циклических зависимостей не возникает, а там на heroku бац и.. Там как-то приложение по-особому стартует? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:19 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha, запускаешь как? Через меню Idea->Run? Или через gradle bootRun? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:26 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras боже вас упоси юзера заставалять писать боту. Кнопки же есть в боте! За что вы так ненавидите юзеров? Вот вот. Яж к тому и подвожу. Если есть кнопки - нахрена мне нужен вообще мессенджер? Обычный статический контент с формочками. И я буду счастлив как слон. Боты намного дешевле чем сайты\мобильные приложения, т.к. много вещей уже реализовано: - На аутентификации можно сэкономить (я не советую правда так делать) - на дизайне - платежи можно принимать (если вы фирма) + боты во многом удобнее сайтов - быстрее работают, история вся видна. Можно уведомления слать. Поэтому в сайты и в мобильные приложения добавляют ботов - с частью функционала. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:27 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
100% согласен что вы экономите на дизайне. Я-бы сказал что это главный поинт. И Телегу используете как PaaS. Но не возврат ли это в 90-е когда чятом была IRC ? Или когда сайты читали через ... не приведи господь Gopher протокол? Или когда файло скачали через ftp. Тоесть мы полностью похоронили дизайн. Его де-факто нет. И бедный дизайнер остался без работы. Мы лишили наш магазин идентичности. Кроме ярычка на титуле - ничего больше телега не показывает. С моей точки зрения это какая-то странная деградация. Хотя мне как программисту - пофиг. Я то своё рабочее место пока сохраняю. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 16:32 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Ну, если для тебя кодирование и шифроваться это главное, тогда конечно. не пользуешься - не хай ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Платный? О чем ты говоришь? Ты себе на сайте легко поднимешь web-push без всякой оплаты. Тыж вебсокеты кодил? И в пуше тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:04 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras - На аутентификации можно сэкономить (я не советую правда так делать) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:06 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras - На аутентификации можно сэкономить (я не советую правда так делать) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:06 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вадя dakeiras - На аутентификации можно сэкономить (я не советую правда так делать) бот это presentation layer. В нём не должно быть никакой своей бизнес логики. Бизнес логика в REST API. Безопасность в IAM. Иначе получается каша. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:31 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton miroooha, запускаешь как? Через меню Idea->Run? Или через gradle bootRun? Idea -> Run ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:37 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Собирай артифакт jar. И запускай его так как делает хероку. Только в таких условиях ты сможешь протестировать все нюансы. Компромиссов нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:41 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras бот это presentation layer. В нём не должно быть никакой своей бизнес логики. Бизнес логика в REST API. Безопасность в IAM. Иначе получается каша. открывается страница - на ней только число xxxxx юзверь вводит это число в бот бот отсылает это число к тебе на сервер по id юзверя в боте проверяешь его наличие телефона в своей базе если он есть - ищешь по этому числу сессию привязываешь этого юзверя к этой сессии и шлёшь по этой сессии новую страницу с инфой только для этого юзверя какая бизнес логика ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 17:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras вадя пропущено... это почему? бот это presentation layer. В нём не должно быть никакой своей бизнес логики. Бизнес логика в REST API. Безопасность в IAM. Иначе получается каша. Стоп-стоп. Вы щас улетите на луну с такими абстракциями. Под ботом вы подразумеваете что? Имплементацию TelegramLongPollingBot ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 18:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras пропущено... бот это presentation layer. В нём не должно быть никакой своей бизнес логики. Бизнес логика в REST API. Безопасность в IAM. Иначе получается каша. Стоп-стоп. Вы щас улетите на луну с такими абстракциями. Под ботом вы подразумеваете что? Имплементацию TelegramLongPollingBot ? При чём здесь абстракции. Это "архитектура" (ненавижу это слово). автора какая логика? открывается страница - на ней только число xxxxx юзверь вводит это число в бот бот отсылает это число к тебе на сервер по id юзверя в боте проверяешь его наличие телефона в своей базе если он есть - ищешь по этому числу сессию привязываешь этого юзверя к этой сессии и шлёшь по этой сессии новую страницу с инфой только для этого юзверя какая бизнес логика ? я ничего не понял. Можете понятнее описать? Вы имеете в виду что бот шлёт какое-то OTP? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 18:36 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, ты решил к боту подойти как к ентерпрайзу? Это обосновано? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 19:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras я ничего не понял. Можете понятнее описать? Вы имеете в виду что бот шлёт какое-то OTP? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 19:13 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras, ты решил к боту подойти как к ентерпрайзу? Это обосновано? имхо в современных реалиях - экономически это стало целесообразно. Изза облак, опенсорса и пр. Т.е. то что раньше стоило дорого, сейчас стало доступно - предоставляя преимущества. Но это имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 21:01 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, Я прекрасно знаю как работают облака. Но твое предложение пе декомпозиции бота на слои в данном примере - безсмысленно. Оно ничего не даёт автору. Но оно может обрести смысл если ты поможешь ему сэкономить на хостинге или обеспечить скейлинг. Только автор пока ни о чем таком не просит. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 21:08 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ребят, помогите "архитектуру" поправить, чтобы избежать циклических зависимостей. Spring выносит мне мозг. В общем, бот работает по примерно такой схеме: Получает Update в главном классе, который наследуется от LongPolling, потом я сразу отправляю этот апдейт в UpdateReceiver, откуда в зависимости от типа Update еще дальше отправляю его "гулять" по обработчикам. В классе бота написаны методы для отправки сообщения юзеру, поэтому этот "бот" нужен во всех обработчиках. Но этот бот зависит от UpdateReceiver, которому так же нужен этот "бот". В итоге циклическая зависимость: Чёрным цветом - классы (почти все помечены как @Component), красным - инжектнутые зависимости. Сделал конфигурацию для класса бота: Код: 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.
Немного "бота": Код: 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. 29. 30. 31.
Едем в UpdateReceiver: Код: 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. 29.
Ну и для примера в "текстовый" обработчик далее по цепочке: Код: 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.
Ну и получаю: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Проблему смог решить двумя путями. 1) Заменить все конструкторы на поля и повесить на них @Autowired Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
В таком случае бот работает, но постоянно плюется (почти ежесекундно) ошибками о том, что он не может получить апдейты, но он получает их и обрабатывает корректно. 2) Добавить в конструкторе @Lazy: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
В таком случае бот так же продолжает плеваться сообщениями типа: Код: java 1. 2.
Оба решения не совсем мне нравятся. В общем, нужен совет, что поменять и как заставить это чудо полноценно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 21:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 12:09 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, обычно я вместо длинной колбасы методов ввожу 1 поясняющую переменную. Кажется называется Introduce Temporary Variable refactoring. Тоесть вместо такого Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Делаю introduce data, и некий неизвестный объект message (не знаю какого он типа сам подставь нужный). Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
После этого код получается... более git-friendly. Строки короче. И смысл более сжатый и понятный. И изменения легче вносить т.к. они сжаты в 1 точке. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 19:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ентерпрайз не отменяет KISS. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 20:22 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
я так же делаю часто. Это более хорошая практика, делать if условие короче. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 20:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras, ну так исправляй. Что-ж ты несовершенный код выдаешь как пример. Потом джуны посмотрят и примут за чистую монету. И еще будут рассказывать что так видели и это правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 20:43 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Я не против бинов. Я просто эстетику кода оценивал. Чисто по диагонали. Обычно видно чем сильнее разработчик тем меньше у него копи-паст и само-повторения кода. У Бесконечно-Технологичного Дэвида - дохрена копи-паст и код его от этого... хм слегка теряет престиж. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 21:05 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
вы о разном коде говорите. Zzz79 говорит про адский код топик стартера. И как я понимаю троллит к тому же (я надеюсь на это). (upd: я так и не понял где Zzz79 увидел бины и у кого). В Дэвиде нет бинов. Даже компонентов нет. Хотя autowiring есть и всё в Спринге. Надо будет по местному совету передалать на Boot Starter и prototype бины. авторЯ не против бинов. Я просто эстетику кода оценивал. Чисто по диагонали. Обычно видно чем сильнее разработчик тем меньше у него копи-паст и само-повторения кода. У Бесконечно-Технологичного Дэвида - дохрена копи-паст и код его от этого... хм слегка теряет престиж. 2 фактора. Сила разработчика + количество итераций рефакторинга. Это не последняя итерация. Но там далеко не всё так плохо. Убогий копипаст кстати вызван кривым API TelegramBots, что они тоже постепенно выправляют (хоть и не туда куда нужно). Насчёт своей силы Java разработчика: она на уровне мидла. Я никогда не кричал и не кричу что я знаю Яву отлично (или даже хорошо). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 23:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79 mayton, Я просто к чему- что я разгребаю и легаси и более менее современный код но давно уже бины не видел А что не так стало с бинами-то теперь? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 23:47 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Убогий копипаст кстати вызван кривым API TelegramBots, что они тоже постепенно выправляют (хоть и не туда куда нужно). Не согласен. Я не вижу здесь влияния API TelegramBots. Я указал вам ВАШ авторский код который находится в namespace io.infinite.david. И я говорю - этот код плох. Его надо улучшить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 23:51 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Mayton, Кстати, не хотел разбивать Ваш идеализм насчёт эстетики кода. Но просто откройте популярные опен сорс проекты. Например тот же Logback. И просто ужаснитесь тому хтоническому ужасу который там внутри. И так в половине проектов. И они используются и развиваются. Тоже самое касается и проприетарщины. Там даже хуже бывает. Есть и отличные примеры конечно. Где всё идеально сделано (и опен сорс и проприетарные). К таким надо стремиться конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 23:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras Убогий копипаст кстати вызван кривым API TelegramBots, что они тоже постепенно выправляют (хоть и не туда куда нужно). Не согласен. Я не вижу здесь влияния API TelegramBots. Я указал вам ВАШ авторский код который находится в namespace io.infinite.david. И я говорю - этот код плох. Его надо улучшить. Даже не TelegramBots API. А сам бот АПИ телеги сделан через жопу Дуровым. Если будите с ним работать - сразу станет понятно. Ненормализованная модель данных, неоптимизированная. Не REST не GraphQL. Не рыба ни мясо короче. Я не спорю что мой код плох там. И улучшу в след раз когда буду что-то менять там. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 23:59 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Даже не TelegramBots API. А сам бот АПИ телеги сделан через жопу Дуровым. Если будите с ним работать - сразу станет понятно. Ненормализованная модель данных, неоптимизированная. Не REST не GraphQL. Не рыба ни мясо короче. Денормализация - вообще не в тему. При чем здесь это к качеству кода? Это разные векторы. REST/GraphQL - да пофиг вообще. Тебе как прикладнику какая разница какой там над-сетевой проткол? Ты же не браузером к боту подключаешся верно? dakeiras Я не спорю что мой код плох там. И улучшу в след раз когда буду что-то менять там. Ты уж постарайся. Меня коробит когда кто-то приводит эталоном свои проекты даже не пройдя независимые code-review. Я по возможности буду напоминать тебе об этом несовершенстве. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:04 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Но просто откройте популярные опен сорс проекты. Например тот же Logback. И просто ужаснитесь тому хтоническому ужасу который там внутри. Этот проект? https://github.com/qos-ch/logback Ну ткните меня туда где ужас-ужас. Я вот хочу ужастнуться. Может сам напишу issue с пожеланием об улучшении. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторДенормализация - вообще не в тему. При чем здесь это к качеству кода? Это разные векторы. REST/GraphQL - да пофиг вообще. Тебе как прикладнику какая разница какой там над-сетевой проткол? Ты же не браузером к боту подключаешся верно? Ну не знаю как это формально описать. В общем если столкнётесь с этим АПИ - увидите сами. Он... странный. Они запихнули всё в объект Update. Поэтому приходится постоянно делать if (update.hasThis.....), if (update.hasThat...) Код: java 1.
Могли они как-то иначе сделать. авторТы уж постарайся. Меня коробит когда кто-то приводит эталоном свои проекты даже не пройдя независимые code-review. Я по возможности буду напоминать тебе об этом несовершенстве. да я только рад, спасибо. Это помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:15 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Код: java 1.
Не понимаю проблемы. Сделай себе функцию и пользуйся. Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:35 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras Но просто откройте популярные опен сорс проекты. Например тот же Logback. И просто ужаснитесь тому хтоническому ужасу который там внутри. Этот проект? https://github.com/qos-ch/logback Ну ткните меня туда где ужас-ужас. Я вот хочу ужастнуться. Может сам напишу issue с пожеланием об улучшении. ch.qos.logback.classic.Logger filterAndLog_0_Or3Plus И прочие чудеса на виражах. Там нормального очень мало на самом деле. Код: java 1. 2. 3. 4. 5. 6. 7.
При этом ирония в том что logback и Slf4j делали одни и теже авторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:48 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras Код: java 1.
Не понимаю проблемы. Сделай себе функцию и пользуйся. Код: java 1.
да. Так и сделаю. Но это получается уже API над API. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton пропущено... Не понимаю проблемы. Сделай себе функцию и пользуйся. Код: java 1.
да. Так и сделаю. Но это получается уже API над API. Я последние 20 лет этим и занят. Делаю API над API. А ты как хотел? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 00:54 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Код: java 1. 2. 3. 4. 5. 6. 7.
Я посмотрел. Это внутренние приватные методы. Тебе их вызывать не надо. Ты же знаешь что такое инкапсуляция? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 01:02 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras Код: java 1. 2. 3. 4. 5. 6. 7.
Я посмотрел. Это внутренние приватные методы. Тебе их вызывать не надо. Ты же знаешь что такое инкапсуляция? так и у меня это внутренние методы. Это не отменяет кривизны. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 11:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Во что ты предлагаешь это переименовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 11:35 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Во что ты предлагаешь это переименовать? Тут проблема не переименовании. А в интерфейсах и null. И ещё большая проблема в интерфейсах самого Slf4j. В общем криво спроектировано да так что вообще никак это не исправить сохраняя обратную совместимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 13:11 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton Во что ты предлагаешь это переименовать? Тут проблема не переименовании. А в интерфейсах и null. И ещё большая проблема в интерфейсах самого Slf4j. В общем криво спроектировано да так что вообще никак это не исправить сохраняя обратную совместимость. Подожди подожди! Ты меня совсем запутал. То мы обсуждали LogBack. То ты говоришь про null в интерфейсах. Это баг? Он существует в их bug-tracker? И ты теперь переключаешся на Slf4j, который вообще не логгер а просто некий адаптер или мост сразу ко ВСЕМ логгерам. В этом его идея. Может ты не понял идею для чего создавался Slf4j? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 13:27 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Ох, какие тут дискуссии насчет кода. А мой говнокод безработного недоджуна-trainee уровня сможете оценить, как допилю? Проблему циклических зависимостей решил путем того, что из всяких handler'ов теперь возвращаю значение/сообщение, которое отправляется уже в главный класс бота. Т.о. нет необходимости инжектить бота в каждый обработчик. ИМХО, стало меньше гибкости, но в принципе терпимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:15 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton dakeiras пропущено... Тут проблема не переименовании. А в интерфейсах и null. И ещё большая проблема в интерфейсах самого Slf4j. В общем криво спроектировано да так что вообще никак это не исправить сохраняя обратную совместимость. Подожди подожди! Ты меня совсем запутал. То мы обсуждали LogBack. То ты говоришь про null в интерфейсах. Это баг? Он существует в их bug-tracker? И ты теперь переключаешся на Slf4j, который вообще не логгер а просто некий адаптер или мост сразу ко ВСЕМ логгерам. В этом его идея. Может ты не понял идею для чего создавался Slf4j? Проблема в Slf4j: Throwable можно передать только без других аргументов: (org.slf4j.Logger) Код: java 1.
Похоже это попытались обойти в Logback расчитывая что сработает следующее: (ch.qos.logback.classic.Logger) Код: java 1. 2. 3. 4. 5. 6.
(иначе я не знаю как объяснить этот загадочный код) Но не сработало. Потому что в Яве это так не работает! :) Тогда эти гениальные разработчики сделали что? Правильно. Они сделали следующее: (ch.qos.logback.classic.spi.LoggingEvent) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Типа если последний аргумент в массиве Throwable - то его обрабатывать как Throwable. Это систематические проблемы дизайна, которые даже не пытаются устранять или обсуждать. Ну и как результат - непонятный код\интерфейсы и наименования методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:17 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Это возможно. Только ради всех святых (Тьюринга и Дейкстры) не надо сюда печатать простыни. Кидай ссылку в гитхаб и кто-то посмотрит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:18 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha Ох, какие тут дискуссии насчет кода. А мой говнокод безработного недоджуна-trainee уровня сможете оценить, как допилю? Проблему циклических зависимостей решил путем того, что из всяких handler'ов теперь возвращаю значение/сообщение, которое отправляется уже в главный класс бота. Т.о. нет необходимости инжектить бота в каждый обработчик. ИМХО, стало меньше гибкости, но в принципе терпимо. Ты уже оценил его (и правильным образом). У тебя проблема не с кодом, а с того что ты не набрав опыта Core Java сразу делаешь на Spring. Это вызовет неправильные привычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:20 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Это возможно. Только ради всех святых (Тьюринга и Дейкстры) не надо сюда печатать простыни. Кидай ссылку в гитхаб и кто-то посмотрит. Нет проблем, я с гитом дружу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:20 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras miroooha Ох, какие тут дискуссии насчет кода. А мой говнокод безработного недоджуна-trainee уровня сможете оценить, как допилю? Проблему циклических зависимостей решил путем того, что из всяких handler'ов теперь возвращаю значение/сообщение, которое отправляется уже в главный класс бота. Т.о. нет необходимости инжектить бота в каждый обработчик. ИМХО, стало меньше гибкости, но в принципе терпимо. Ты уже оценил его (и правильным образом). У тебя проблема не с кодом, а с того что ты не набрав опыта Core Java сразу делаешь на Spring. Это вызовет неправильные привычки. Не соглашусь. У меня нет опыта в построении архитектуры приложения, потому что не было проектов. А Java Core я изучал прошлой осенью и этой зимой и чувствую себя там довольно комфортно (за исключением реальной многопоточки типа Fork Join Pool'a) для своего уровня. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:23 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha mayton Это возможно. Только ради всех святых (Тьюринга и Дейкстры) не надо сюда печатать простыни. Кидай ссылку в гитхаб и кто-то посмотрит. Нет проблем, я с гитом дружу :) Где ссылка? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:29 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
авторFork Join Pool Что? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:29 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha dakeiras пропущено... Ты уже оценил его (и правильным образом). У тебя проблема не с кодом, а с того что ты не набрав опыта Core Java сразу делаешь на Spring. Это вызовет неправильные привычки. Это и хорошо. Представь каких дров ты там наломаешь если тебе дать задание с взаимодейтсвием более чем 1 потока. И модульные тесты кстати не доказывают правильность мультипоточи. Вообще не доказывают даже на кейсах. И все равно синьоры за тебя будут все переделывать поэтому давать тебе многопоточное задание нет смысла. Поживи спокойно так. Реальное понимание многопоточки только с опытом приходит. Т.к. кроме Java надо еще копнуть в архитектуры железа. Без этого просто не будет понимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:32 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton miroooha пропущено... (за исключением реальной многопоточки типа Fork Join Pool'a) для своего уровня. Это и хорошо. Представь каких дров ты там наломаешь если тебе дать задание с взаимодейтсвием более чем 1 потока. И модульные тесты кстати не доказывают правильность мультипоточи. Вообще не доказывают даже на кейсах. И все равно синьоры за тебя будут все переделывать поэтому давать тебе многопоточное задание нет смысла. Поживи спокойно так. Реальное понимание многопоточки только с опытом приходит. Т.к. кроме Java надо еще копнуть в архитектуры железа. Без этого просто не будет понимания. с многопоточности надо начинать. Это самые фундаментальные основы любого программирования, особенно веб приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:34 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras mayton пропущено... Это и хорошо. Представь каких дров ты там наломаешь если тебе дать задание с взаимодейтсвием более чем 1 потока. И модульные тесты кстати не доказывают правильность мультипоточи. Вообще не доказывают даже на кейсах. И все равно синьоры за тебя будут все переделывать поэтому давать тебе многопоточное задание нет смысла. Поживи спокойно так. Реальное понимание многопоточки только с опытом приходит. Т.к. кроме Java надо еще копнуть в архитектуры железа. Без этого просто не будет понимания. с многопоточности надо начинать. Это самые фундаментальные основы любого программирования, особенно веб приложений. А ты попробуй на джунские вопросы по мультипоточке ответить. Там будет сразу анекдот про то как 1 глупец 100 мудрецов закопает. И спор про указатели С++ на массивы покажется просто детским мультиком по сравнению с мультипоточкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:41 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras с многопоточности надо начинать. Это самые фундаментальные основы любого программирования, особенно веб приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:45 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton miroooha пропущено... Нет проблем, я с гитом дружу :) Где ссылка? Позже на днях скину сюда, там надо допилить ещё код. dakeiras авторFork Join Pool Что? Что? Ну вот, из первого попавшегося поста на stackoverflow: - ExecutorService имеет общую очередь задач и некоторое количество потоков, которые забирают по очереди таски и выполняют их. - ForkJoinPool имеет некоторое количество потоков, но при этом еще имеет очередь тасков для каждого потока. Поток в процессе работы может дробить задачу на несколько тасков, одну он добавляет к себе в очередь а другую выполняет и это может рекурсивно повторяться. Если другой поток опустошил свою очередь, то он может взять задачи у другого потока, с конца очереди. Описанный механизм называется work-stealing. Это и является ключевым моментом различающим данные thread-pool'ы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:49 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Благослави Господь стековерфлоу. И зачем нам кастомер еще доллары платит? Пускай пишет туда вопросы и ИИ ему выдает готовые артифакты.... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 14:51 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфилов dakeiras с многопоточности надо начинать. Это самые фундаментальные основы любого программирования, особенно веб приложений. хорошо что помните. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 15:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
miroooha mayton пропущено... Где ссылка? Позже на днях скину сюда, там надо допилить ещё код. dakeiras пропущено... Что? Что? Ну вот, из первого попавшегося поста на stackoverflow: - ExecutorService имеет общую очередь задач и некоторое количество потоков, которые забирают по очереди таски и выполняют их. - ForkJoinPool имеет некоторое количество потоков, но при этом еще имеет очередь тасков для каждого потока. Поток в процессе работы может дробить задачу на несколько тасков, одну он добавляет к себе в очередь а другую выполняет и это может рекурсивно повторяться. Если другой поток опустошил свою очередь, то он может взять задачи у другого потока, с конца очереди. Описанный механизм называется work-stealing. Это и является ключевым моментом различающим данные thread-pool'ы. Round robin что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 15:44 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton Кидай ссылку в гитхаб и кто-то посмотрит. Собственно, решил не затягивать. Вот сам проект: https://github.com/vonoriMMM/SpringBot-test Где-то на время оставил заглушки (типо return null), буду дорабатывать. Если кто-то посмотрит, буду благодарен за конструктивную критику. Это первый небольшой, но полноценный проект (до этого были только задачки javarush/codewars/leetcode) в моей пока еще не начавшейся карьере. И вообще что-то первое с использованием Spring'a. Можно улучшать и увеличивать функциональность, потенциал есть, но и сейчас это полностью работающая версия. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 22:27 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
В pom.xml желательно указать явно версию JDK и компиллятора которым ты это собирал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 11:45 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
mayton В pom.xml желательно указать явно версию JDK и компиллятора которым ты это собирал. Обновил, добавил интересный (на мой взгляд) "сервис" по извлечению информации из Update. Чтоб в каждом месте не писать update.getMessage().getChatId() и т.д., завёл отдельный класс для всего этого добра. Да и логи случайно улетели. Но это всё никому не интересно, поэтому пусть будет! :D ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:09 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79 mayton В pom.xml желательно указать явно версию JDK и компиллятора которым ты это собирал. желательно вообще использовать градл,если есть прицел на реальную работу и вообще стараться отходить от всего что содержит хмл-технология мертва и активно вытесняется Да. Но я вангую что Jetbrains убъёт его в течении 3 лет, выпустив свой сборщик. Потому что всё же Gradle свернул не туда. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 00:35 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Вы - чемпионы по "вредным советам". Автор - просил review, а вы предложили поменять сборщик. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 03:00 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Zzz79 mayton В pom.xml желательно указать явно версию JDK и компиллятора которым ты это собирал. желательно вообще использовать градл,если есть прицел на реальную работу и вообще стараться отходить от всего что содержит хмл-технология мертва и активно вытесняется Maven живее всех живых. Он еще на похоронах Gradle постоит. :-) ИМХО maven вполне актуальны сборщик. И для новичков он будет попроще, чем gradle. Maven без gradle норм. А вот gradle без maven будет трудновато. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 08:07 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Но я вангую что Jetbrains убъёт его в течении 3 лет, выпустив свой сборщик. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 10:15 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Я не понимаю зачем Джетбрейнсу делать сборщики? Смысл сборщика как раз в том чтобы существовать отдельно от IDE. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 10:47 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
Андрей Панфилов dakeiras Но я вангую что Jetbrains убъёт его в течении 3 лет, выпустив свой сборщик. согласен насчёт поддержки сбощиков в идее. Меня это выбешивало всегда. Только в последних версиях стало получше. Но сделали же они котлин и он даже "взлетел". Так же могут и сборщик сделать. Там ничего особо сложного нет. авторкотлин порос мхом и страшные угрозы убить жаву так и остались угрозами,даже не смотря на мощную поддержку гугла это приятно читать. Я против котлина. Был (и есть) Груви - доброкачественный язык, полностью опен сорс. Это всё имперские замашки у Jet Brains. авторЯ не понимаю зачем Джетбрейнсу делать сборщики? Смысл сборщика как раз в том чтобы существовать отдельно от IDE. тот же сценарий что и с Котлином + Idea/Android studio. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 11:18 |
|
Не получается поднять бота на Spring Boot
|
|||
---|---|---|---|
#18+
dakeiras Но сделали же они котлин и он даже "взлетел". Так же могут и сборщик сделать. Там ничего особо сложного нет. Дъявол кроется в деталях. Проблема в построении новой системы сборки она совсем не алгоритмическая, если смотреть историю со стороны жавы, то сначала был make, потом ant, потом maven, при этом каждая новая система сборки добавляла новые киллер-фичи, без которых сейчас ну вообще никак. Gradle не взлетает потому что "Directed Acyclic Graph" сам по себе нафиг никому не нужен - это просто некая идея того, как система устроена внутри, а мне нужно нажать кнопку и получить результат, при этом чтобы под капотом не творился кромешный ужас, и на это можно было бы хоть как-то влиять без чтения документации и форумов, единственная киллер-фича у gradle - это в buildSrc можно писать свой креатив, при этом она совершенно незаметна на фоне всех остальных недостатков (от общей тормознутости, до невозможности построить SDLC, самый смак здесь - если плагин падает, то в IDE даже проект не разворачивается). Т.е. чтобы сейчас родить систему сборки нужно: - придумать пару-тройку киллер-фич - получить поддержку в распространенных IDE - сделать поддержку распространенных JVM-based языков + фронтовую срань - реализовать аналоги уже существующих возможностей/плагинов в maven (наверное пара сотен плагинов будет) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:06 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120769]: |
0ms |
get settings: |
26ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
3622ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 4038ms |
0 / 0 |