powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается поднять бота на Spring Boot
25 сообщений из 233, страница 4 из 10
Не получается поднять бота на Spring Boot
    #39968717
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторлегкий хибернейт?)) ну мб в рамках дефолт репозиториев и методов 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

авторхероку хорош для пет проектов- неужели ты его юзаешь под прод коммерческих проектов?
а почему нет? Всё отлично. Единственный минус: дорого.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968747
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
    @Query("""select a from PrototypeAuthorization a
        join fetch a.scopes s
        where s.name = :scopeName
        and a.serverNamespace = :serverNamespace""")
    Set<PrototypeAuthorization> inquire(
            @Param("scopeName") String scopeName,
            @Param("serverNamespace") String serverNamespace
    )



Вы думаете, что JPA вам обязано упрощать написание запросов, это во-первых, нифига не так, во-вторых, надо хоть иногда включать мозг прежде чем пороть хрень: в вашем случае достаточно было ввести явную связь типа PrototypeAuthorizationScope с M2O на PrototypeAuthorization и Scope и обращаться к этой связи, а не писать чушь.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968771
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторболее того, в JPA подразумевается что при работе с объектной моделью ассоциативные связи бывают только в двух состояниях: "заполнены полностью" и "мы к ним еще не обращались и не знаем что там
я именно об этом и говорю. Это неправильный подход.

Объясню почему:
- Это колечит весь дизайн т.к.
1) ограничивается размер коллекций - иначе без join предикат план запроса будет делать hash join вместо nested loops. И база будет вставать раком.
2) из-за п.1 придётся отказываться от логических зависимостей
3) появляются извращения как Вы ниже предложили (явные промежуточные сущности)
4) в итоге переписываем у себя в коде жалкое подобие того что могло быть сделано элементарно стандартными средствами SQL

авторв вашем случае достаточно было ввести явную связь типа PrototypeAuthorizationScope с M2O на PrototypeAuthorization и Scope и обращаться к этой связи
Это всё понятно и рассматривалось. И не сделано т.к. как раз таки не соответствует философии ORM.

авторВы думаете, что JPA вам обязано упрощать написание запросов
Я так не думаю.

авторвыучите-таки SQL за который так топите
Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки.
Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо.

Но в относительном положении (относительно разработчиков и пользователей SQL), я не давал в этом топике поводов усомниться в своих знаниях. Да и очень маловероятно что такое когда-либо произойдёт.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968785
miroooha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока тема активна, уточню ещё один нюанс. До перехода на Spring Boot я писал распарсенные игры в json файл, и из этого файла при каждом новом старте приложения читал данные во внутреннюю мапу, с которой и работал до следующего перезапуска приложения. Каждый новый запрос писался и в мапу и в файл одновременно.

Я решил теперь писать в БД с помощью Spring JPA (ну пробую возможности Spring'a). И у меня возник вопрос.

Стоит ли при каждом новом запуске приложения подгружать из БД данные в локальную мапу и далее работать с ней (как делалось с файлом) или работать напрямую с БД и через обычные SQL-запросы? С каждым новым запросом идти в БД напрямую или опять же использовать внутреннюю мапу, а затем уже писать в БД? Короче говоря, нужна ли мне "промежуточная" локальная мапа при использовании БД?
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968808
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miroooha,
Не нужно делать промежуточные сущности.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968812
miroooha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
miroooha,
Не нужно делать промежуточные сущности.

То бишь убрать вообще локальную мапу и работать напрямую с БД? Никаких преимуществ использование внутренней структуры данных не даст?
Интересно, что отработает быстрее: поиск по БД или хешмапке. Ну к БД можно интересный запрос написать, например. Более гибким этот вариант видится.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968818
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miroooha,
Это просто копирование из бд таблицы в оперативку..
Мапа это ведь таблица.
..... Иногда надо. Но мы ведь не будем счас воображать кучу этих причин.
Разумеется к бд медленнее.
Ты дома склад продуктоа делаешь если под окном Пятерочка магаз?
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968821
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miroooha
PetroNotC Sharp
miroooha,
Не нужно делать промежуточные сущности.

То бишь убрать вообще локальную мапу и работать напрямую с БД? Никаких преимуществ использование внутренней структуры данных не даст?
Интересно, что отработает быстрее: поиск по БД или хешмапке. Ну к БД можно интересный запрос написать, например. Более гибким этот вариант видится.

Если-б кеш полностью заменял БД - то тогда зачем тебе вообще БД?

Храни всё в хешмапке.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968823
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никто не дал правильный ответ.

Правильный ответ с точки зрения архитектуры: в боте хранить только сессию.
Всё остальное хранить в отдельном приложении, в которое бот должен ходить через REST API.

Когда потребуется другой бот (например фейсбучный), мобильное приложение или сайт - REST API не придётся заново делать\переносить из бота.

Как хранить - в БД, мапе, монго или на берестяных грамотах - не важно на самом деле, при такой архитектуре.
Как нравится так и храни. Я храню в БД.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968825
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Как нравится так и храни.

Цена вопроса - фиксация последнего изменения. И чем ты готов пожертвовать.

Как "нравится" ... это не совсем инженерный термин IMHO.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968826
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

Тебе виднее. Боты удел молодости))
Мы тут в корпоративе.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968833
miroooha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
miroooha,
Ты дома склад продуктоа делаешь если под окном Пятерочка магаз?

Погреб с картофлесом на даче подойдет? :D
PetroNotC Sharp
dakeiras,
Боты удел молодости))

А ещё неплохая практика для тех, кто делает свои первые проекты и поднимается на junior уровень.

Да мне вариант с БД даже больше нравится, так как с файлом и локальной мапой уже работал, теперь можно и напрямую с БД поиграться.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968836
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки.
Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо.

Скажу как бывший DBA. Знание SQL является главной опцией именно разработчика. Ему - код делать
и развивать архитектуру и фиксить баги. DBA в данном вопросе вторичен. Он может давать консультации
по разным деталям (performance issues, disaster recovery procedurres) но принятие решений по тому
КАК разрабатывать решает именно разработчик и только он.

Поэтому нет никакой другой роли или отвественности которая обязывала бы знать SQL лучше.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968850
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
dakeiras,

Тебе виднее. Боты удел молодости))
Мы тут в корпоративе.

Бот это такой же пользовательский канал как и веб сайт или мобильное приложение.

Насчёт молодости не понял к чему (или к кому) это.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968851
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
dakeiras

Есть определённый лимит, дальше которого разработчик превращается в DBA, c потерей навыков именно разработки.
Поэтому глупо было бы мне говорить что я знаю SQL абсолютно хорошо.

Скажу как бывший DBA. Знание SQL является главной опцией именно разработчика. Ему - код делать
и развивать архитектуру и фиксить баги. DBA в данном вопросе вторичен. Он может давать консультации
по разным деталям (performance issues, disaster recovery procedurres) но принятие решений по тому
КАК разрабатывать решает именно разработчик и только он.

Поэтому нет никакой другой роли или отвественности которая обязывала бы знать SQL лучше.

а как же partition pruning, external tables, анализ производительности на конкретных СУБД?

Без админских прав не получится залезть глубоко слишком.
А как только программист получает доступ админский к машине с базой (даже локальной), он уже не программист, а DBA.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968854
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
PetroNotC Sharp
dakeiras,

Тебе виднее. Боты удел молодости))
Мы тут в корпоративе.

Бот это такой же пользовательский канал как и веб сайт или мобильное приложение.

Насчёт молодости не понял к чему (или к кому) это.
ты рассказал техническую часть. А я сказал про "в чем ценность бота для бизнеса"…?
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968860
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторты рассказал техническую часть. А я сказал про "в чем ценность бота для бизнеса"…?
бот это дешёвая и хорошая альтернатива мобильным приложениям.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968872
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 я проверял на виртуалках.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968874
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
авторты рассказал техническую часть. А я сказал про "в чем ценность бота для бизнеса"…?

бот это дешёвая и хорошая альтернатива мобильным приложениям.у меня приложение сканит штрих код бутылки вина в магазине и выдает всю инфу по нему.
Жду не бла бла "у нас самый лучший стиральный порошок" а альтернативу моему юз кейсу выше.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968876
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
dakeiras
пропущено...

бот это дешёвая и хорошая альтернатива мобильным приложениям.
у меня приложение сканит штрих код бутылки вина в магазине и выдает всю инфу по нему.
Жду не бла бла "у нас самый лучший стиральный порошок" а альтернативу моему юз кейсу выше.


ээ, это как раз юскейс для бота именно. Зачем для этого целое приложение?
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968877
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ не вижу преград чтоб разработчик сделал тоже самое. А имеено поднял грёбаный VBox, VMVare
или Docker и просто проверил то что хочется под привилегиями SysDba.

ну да, так и приходится делать.
Докер вообще кайф - например MSSQL в 1 клик ставится.

Но всё равно это не 100% гарантия, данных меньше будет в базе и другая среда всё таки. Но так то да.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968879
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,
Блин, ну я ни одного бота не видел.
И ты не показал.
Мобильное означает на мобильнике.
Где там боты?
Не вижу ни одного. Покаж!))))
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968883
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, Телеграм установи сначала.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968884
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
dakeiras,
Блин, ну я ни одного бота не видел.
И ты не показал.
Мобильное означает на мобильнике.
Где там боты?
Не вижу ни одного. Покаж!))))

а, всё, понял.

Сорри.

вот демо бот: http://t.me/david_it_bot

https://github.com/INFINITE-TECHNOLOGY/DAVID

В Вашем случае это так организуется:
- Боту посылается фотка со штрихкодом
- на боте используется сервис или библиотека для распознавания штрихкодов
- бот шлёт сообщения с инфой юзеру

Но может быть есть и более интегрированное решение, я только финансовых ботов делаю. Игры\прикладные боты особо не делал, и не знаю какие там удобства в телеге есть для таких вещей.
...
Рейтинг: 0 / 0
Не получается поднять бота на Spring Boot
    #39968892
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp, Телеграм установи сначала.

Угу.
Ватсап есть, вайбер есть, скайп есть.
Еще телеграмм и будет нирвана?
...
Рейтинг: 0 / 0
25 сообщений из 233, страница 4 из 10
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается поднять бота на Spring Boot
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]