|
Не получается поднять бота на 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 |
|
|
start [/forum/topic.php?fid=59&msg=39968892&tid=2120769]: |
0ms |
get settings: |
21ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
527ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 624ms |
0 / 0 |