Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
 Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Тяпничный список инжекторных движков
Spring
88,9%
 (24)
Google Guice
25,9%
 (7)
Dagger
3,7%
 (1)
Quarkus
14,8%
 (4)
Голосование открыто только для зарегистрированных пользователей.
Проголосовало: 27  

Привет друзья. С пятницей всех.

Проголосуйте какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем.
Есть опция мульти-выбора. Прошу прощения если я что-то забыл или не упомянул ваш фрейморк.

Дополните текстом.
26 мар 21, 17:10    [22300475]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
забыл ник
Member

Откуда:
Сообщений: 3471
mayton
Привет друзья. С пятницей всех.

Проголосуйте какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем.
Есть опция мульти-выбора. Прошу прощения если я что-то забыл или не упомянул ваш фрейморк.

Дополните текстом.

С переходом на скалу перестал использовать какие-либо DI в принципе, чему безмерно рад. Хотя там тоже есть один неплохой - macwire, можно юзать вместе с play, когда приложение написано в стиле better-java. Для ФП DI фактически не нужен
26 мар 21, 17:18    [22300481]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
SpringMan
Member

Откуда:
Сообщений: 231
забыл ник

С переходом на скалу перестал использовать какие-либо DI в принципе, чему безмерно рад.

А вот я со спарком страдаю. Когда куча логики и надо прокидывать конфиги, пулы к базам, хдфс-у, кафкам - так начинаешь скучать по старому-доброму @Autowired-у (
26 мар 21, 17:27    [22300486]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
забыл ник
Member

Откуда:
Сообщений: 3471
SpringMan
забыл ник

С переходом на скалу перестал использовать какие-либо DI в принципе, чему безмерно рад.

А вот я со спарком страдаю. Когда куча логики и надо прокидывать конфиги, пулы к базам, хдфс-у, кафкам - так начинаешь скучать по старому-доброму @Autowired-у (

Ну это ваша личная какая-то проблема.
1) dev.conf,prod.conf,uat.conf
2) Config.load($ENV)
Когда нужны именно разные имплементации подсистем, то typeclass+ final tagless, вообще никаких проблем
26 мар 21, 17:31    [22300490]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
В настоящий момент будем использовать Dagger для амазонских сервисов.

О кваркусе - наслышан но ни разу не использовал. Интересно посмотреть как они обеспечивают
быстрый старт. Возможно за счет спец плагинов компилляции в натив.
26 мар 21, 17:42    [22300496]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 202
Даже без native компиляции стартует значительно быстрее spring.
ИМХО просто потому, что в отлиции от spring, injection происходит compile time, а не runtime.
27 мар 21, 10:27    [22300691]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
kolchanov
Даже без native компиляции стартует значительно быстрее spring.
ИМХО просто потому, что в отлиции от spring, injection происходит compile time, а не runtime.


а как это? я вот в спринге пишу в одном модуле что-то в духе:

@Autowired(required=false)
private List<Service> services;

в надежде, что в другом модуле будет реализация, а тут как?
28 мар 21, 08:35    [22300990]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
mayton
Привет друзья. С пятницей всех.

Проголосуйте какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем.
Есть опция мульти-выбора. Прошу прощения если я что-то забыл или не упомянул ваш фрейморк.

Дополните текстом.

кваркус это ж жее древнючий.
28 мар 21, 11:28    [22301021]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
mayton
В настоящий момент будем использовать Dagger для амазонских сервисов.

О кваркусе - наслышан но ни разу не использовал. Интересно посмотреть как они обеспечивают
быстрый старт. Возможно за счет спец плагинов компилляции в натив.

я написал сервис из нескольких модулей (штук 6). оно стартует секунд 30-40. думаю на спринге было бы ровно тоже самое. всё что он делает - гребет с кафки данные складывает в эластик и по апишке юзерам данные из эластика выдает. и стартует оно не особо быстро. срезал всё что можно. стало быстрее. но быстрее чем выше не получилось.

у кварка просто удобные плюшки которые сразу делают модные докеримаджи (которые без бубнов один хер работают только ровно как в мануале написано. шаг влево-вправо - ищи бубен) которые там даже сразу куда то пушатся. а так тот же спринг. пока еще худенький и с детскими багами.
28 мар 21, 11:32    [22301022]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
гуис емнип в плее юзается. проголосовал за кварк и за гуис. :)
28 мар 21, 11:32    [22301023]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
andreykaT
mayton
Привет друзья. С пятницей всех.

Проголосуйте какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем.
Есть опция мульти-выбора. Прошу прощения если я что-то забыл или не упомянул ваш фрейморк.

Дополните текстом.

кваркус это ж жее древнючий.

Какие ваши доказательства?

(с) Черный Трудяга Шварценбрухер.
28 мар 21, 12:45    [22301035]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 202
>а как это? я вот в спринге пишу в одном модуле что-то в духе:
>в надежде, что в другом модуле будет реализация, а тут как?

https://quarkus.io/blog/quarkus-dependency-injection/
Все тоже самое, @Inject ищет compile time имплементацию.
29 мар 21, 12:26    [22301365]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
kolchanov
https://quarkus.io/blog/quarkus-dependency-injection/
Все тоже самое, @Inject ищет compile time имплементацию.
На вопрос "как" отвечают скорее не там, а в том месте, где рассказывают про AoT и GraalVM, однако в спринге тоже якобы все есть: https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/ и не нужно пользоваться убогим наследником CDI
29 мар 21, 14:35    [22301452]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Конечно на стороне Спринга ентерпрайзное превосходство.

Но наверное кваркус возник как попытка превзойти Спринг в части минимального футпринта
на микросервис по количеству классов и по размеру артифакта.
29 мар 21, 17:05    [22301553]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
mayton
Конечно на стороне Спринга ентерпрайзное превосходство.

Но наверное кваркус возник как попытка превзойти Спринг в части минимального футпринта
на микросервис по количеству классов и по размеру артифакта.


всем известно, что футпринт изменяется в деньгах. Можете расчеты привести, чтобы можно было увидеть как ограниченность технологии со всеми вытекающими (баги, проблемы с кадрами, проблемы с поддержкой) приносило бы ощутимую экономию? А то может ну ево нах эту жаву и пора все на C писать.
29 мар 21, 17:29    [22301576]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я не могу. Да и мне пока кваркус не нужен. Но возможно кто-то ковырял его для server-less архитектур.
29 мар 21, 17:45    [22301589]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
mayton
Я не могу. Да и мне пока кваркус не нужен. Но возможно кто-то ковырял его для server-less архитектур.


т.е. преимущество непонятно в чем, но оно точно есть Если посмотреть кто этот кваркус делает, то выяснится, что это те же самые бракоделы из редхата разработчики jboss, которые умеют делать так, что приложение, прекрасно работаютщее в коте и сфере в их поделку даже не деплоится.
29 мар 21, 19:04    [22301637]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я не защищаю кваркус, если что.
29 мар 21, 20:14    [22301673]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5817
mayton
какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем

Weld
29 мар 21, 21:26    [22301696]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
Spring boot рулит!
нахер ваши конфиги и xml портянки

разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд
29 мар 21, 21:39    [22301702]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 202
>всем известно, что футпринт изменяется в деньгах. Можете расчеты привести, чтобы можно было увидеть как ограниченность технологии со всеми вытекающими (баги, проблемы с кадрами, проблемы с поддержкой) приносило бы ощутимую экономию? А то может ну ево нах эту жаву и пора все на C писать.

Для нас в клаудных проектах критическим фактороми стали именно время старта, потребление CPU во время старта и память на поду.
Настолько критическим, что часть сервисов переписали на go, часть на с, там где это невохможно - quarkus.
Spring boot стал de-facto legacy.

Для in-house разработки, может это и не было проблемой, но приходится конскурировать с теми, у кого "микросервис" не стартует пару минут и не потребляет 250 Mb памяти на поду только на фреймворк. Т.е. это вопрос продаж а не cost cutting.

Баги есть у всех, и spring boot в новых версиях тоже приносил ошибки и обратную несовместимость.
Поддерживать все равно прходится самим.

проблемы с кадрами - эксперимент показал, что за две недели разработчик осваивает quarkus c сохранением уровня.
мидл отается мидлом, сеньер - сеньером.
30 мар 21, 01:00    [22301774]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
asv79
разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

Ты как всегда... Принёс в топик свой гнев и горе.

Что у тебя там за жесть с докером?
30 мар 21, 01:20    [22301778]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
kolchanov,

а не могли бы вы как-то ширше чтоли тему раскрыть? Я ранее ссылку на spring aot приводил, там пишут что без aot характерное время старта 1500ms, а с aot 100ms, вот другая: https://spring.io/blog/2018/12/12/how-fast-is-spring - там речь идет про 1-2 секунды, вы же утверждаете что на спринге получаются минуты, с моей точки зрения минуты может занимать БД запустить или такой добротный монолит - у меня в текущем проекте сборка монолита и запуск тысячи интеграционных тестов с подъемом 2 БД, 10 спринговых контекстов и прогоном миграций liquibase занимает 5 минут (мавен показывает 4:46 на сборку с интеграционными тестами и 54s просто на сборку), поэтому здесь я склонен верить тому, что пишут в интернетах про старт в пару секунд, нежели вашим минутам. Может у вас там где-то явный косяк в инфраструктуре/архитектуре при котором вы видите что на кваркусе можно получить какое-то преимущество, а на буте - нет (ну там сеньоры на самом деле не сеньоры, DevOps - совсем не DevOps, и все в таком духе)
30 мар 21, 05:42    [22301786]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3852
mayton
asv79
разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

Ты как всегда... Принёс в топик свой гнев и горе.

Что у тебя там за жесть с докером?


да там все понятно что за треш и угар у него, вот с моей точки зрения есть некий bottom line, который говорит о том, нормально проект организован или нет:
- удаляем ~/.m2 или ~/.gradle
- читаем README.md из проекта, выполняем, что там написано (при этом команды mvn или gradle(w) запускать нельзя)
- открываем IDE
- находим тест (лучше интеграционный) и запускаем его из IDE (без компиляций и остальных прелюдий, кроме описанных в README.md)

если тест успешно завершился, то проект живой, нет - говно.

Стасу же наверняка еще в проект понапихали докеров без возможности отладки и без информации о версиях того, что там крутится.
30 мар 21, 06:18    [22301789]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 202
>Может у вас там где-то явный косяк в инфраструктуре/архитектуре

Проблема в самом слабом звене - людях.
Spring boot очень мощный и вариабельный, и позволяет декларативно для run-time стадии описыывать кучу вещей.
Я 100% уверен, что хороший программист, который понимает что стоит за каждой аннотацией, и как она влияет на производительность сможет написать на spring boot сервис, который будет стартовать приемлемо быстро.

Но в "кровавом enterprise", где тысяи разработчиков всегда приходит ОН, разработчик уровня:

>разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

Я видел реальный spring-boot код (не могу его показать по юридическим причинам), в котором только в одном Configuraton классе аннотоации занимали целый экран.
- Никто не понимает как это работает
- Никто не может быстро туда внести изменения

Есть известная фраза - хороший фреймворк позволяет легко делать правильные вещи, и тяжело неправильные.
Когда я только узнал о существовании spring (не помню, был это уже 1.0 или нет), он позиционировался как non-intrusive фреймворк. В коде приложения не должно быть упомнинания spring, только внешний DI. И это было очень круто.

Сейчас spring-boot из-за большого количества фич и возможностей просто провоцирует писать приложения, которые стартуют 1-2 минуты, и бороться с этим очень сложно.
Проще выбрать другой фреймворк, в котором тяжелее писать неправильные вещи, или даже другой язык, где не может быть spring из-за особенностей языка.

Наш опыт на наших реальных микросервисах, а не на "сферическом коне в вакууме", показывает улучшение время старта в 10-30 раз на quarkus.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.
30 мар 21, 08:44    [22301807]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
kolchanov,

>аннотоации занимали целый экран.
Разве они секретны? Был бы интересен пример абстрактный.
На посмотреть.
30 мар 21, 10:03    [22301843]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
kolchanov
>Может у вас там где-то явный косяк в инфраструктуре/архитектуре

Проблема в самом слабом звене - людях.
Spring boot очень мощный и вариабельный, и позволяет декларативно для run-time стадии описыывать кучу вещей.
Я 100% уверен, что хороший программист, который понимает что стоит за каждой аннотацией, и как она влияет на производительность сможет написать на spring boot сервис, который будет стартовать приемлемо быстро.

Но в "кровавом enterprise", где тысяи разработчиков всегда приходит ОН, разработчик уровня:

>разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

Я видел реальный spring-boot код (не могу его показать по юридическим причинам), в котором только в одном Configuraton классе аннотоации занимали целый экран.
- Никто не понимает как это работает
- Никто не может быстро туда внести изменения

Есть известная фраза - хороший фреймворк позволяет легко делать правильные вещи, и тяжело неправильные.
Когда я только узнал о существовании spring (не помню, был это уже 1.0 или нет), он позиционировался как non-intrusive фреймворк. В коде приложения не должно быть упомнинания spring, только внешний DI. И это было очень круто.

Сейчас spring-boot из-за большого количества фич и возможностей просто провоцирует писать приложения, которые стартуют 1-2 минуты, и бороться с этим очень сложно.
Проще выбрать другой фреймворк, в котором тяжелее писать неправильные вещи, или даже другой язык, где не может быть spring из-за особенностей языка.

Наш опыт на наших реальных микросервисах, а не на "сферическом коне в вакууме", показывает улучшение время старта в 10-30 раз на quarkus.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.


ну вот кварка и появился на этой теме. типа спринг жирный на те вам на микропрофайле новый будущий спринг. юзайте пока холестерином не покрылся. ))
30 мар 21, 12:33    [22301962]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Нда. А прошло то от поклонов спрингу и микроХХХ, пара тройка лет.
30 мар 21, 12:52    [22301970]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
А сколькой фреймворков было похоронено? А кто вообще помнит JSF?

У меня есть такая теория что программный продукт останавливается в развитии как только
костяк разработчиков (обычно это несколько человек) утрачивает к нему интерес.

И дальше - смерть. Хотя продукт может покрываться багофиксами - ничего больше интересного
с ним не будет происходить.

А этот костяк просто переходит на новую задачу.
30 мар 21, 13:27    [22301993]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
asv79
разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

Ты как всегда... Принёс в топик свой гнев и горе.

Что у тебя там за жесть с докером?

да я тут решил немного разобораться с докером и кубернетис
вообщем что сейчас нужно - есть простое спринг бут приложение с бд постгрес
нужно чтобы все это дело крутилось в докер контейнере
с помощью докер файла я сделал образ приложения
а вот что дальше - смотрю по гайдам не очень получается
делаю как тут 1 в 1
https://medium.com/@isurunuwanthilaka/docker-zero-to-hero-with-springboot-postgres-e0b8c3a4dccb
и после запуска docker-compose up получаю ошибку

ERROR: for postgres Cannot create container for service postgres: Conflict. The container name "/postgres" is already in use by container "97107d0e2c1735bc1d77ac7e79349c1cbb5e8e07de736db60767839882e165da". You have to remove (or rename) that container to be able to reuse that name.
30 мар 21, 17:16    [22302149]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
После того как ты поработал с контейнером - его надо остановить.

docker container stop ...


И после этого запускать новый и опционально указывать имя.

..... --name .....
30 мар 21, 17:19    [22302153]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
mayton
А сколькой фреймворков было похоронено? А кто вообще помнит JSF?

Ну я помню.

На JSF базируется ADF, т.ч. долгая (и нудная) жизнь ADF-JSF'у гарантированна ))) Десятки компаний из Fortune-500 не могут ошибаться )))
30 мар 21, 17:27    [22302158]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
После того как ты поработал с контейнером - его надо остановить.

docker container stop ...


И после этого запускать новый и опционально указывать имя.

..... --name .....

я все делал как там написано -создал конейнер с постгрес- создал там бд
и получаю эту ошибку
30 мар 21, 17:29    [22302159]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
asv79,
Мастер ты из топика про СПИСОК балаган превращать.
В любую тему: "я тут картошку выращиваю....
30 мар 21, 17:30    [22302160]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
PetroNotC Sharp, не переживай так. Я же сам его спросил.
30 мар 21, 17:35    [22302162]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
asv79
mayton
После того как ты поработал с контейнером - его надо остановить.

docker container stop ...


И после этого запускать новый и опционально указывать имя.

..... --name .....

я все делал как там написано -создал конейнер с постгрес- создал там бд
и получаю эту ошибку

Так дай ему новое имя. Или имя-счетчик.
30 мар 21, 17:36    [22302163]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
asv79
пропущено...

я все делал как там написано -создал конейнер с постгрес- создал там бд
и получаю эту ошибку

Так дай ему новое имя. Или имя-счетчик.

ничего не понял - кому имя новое дать?контейнеру в котором лежит постгрес? а как же тогда вот этого докер - композ?

version: "3"
services:
  postgres:
    image: postgres:latest
    network_mode: bridge
    container_name: postgres
    volumes:
      - postgres-data:/var/lib/postgresql/data
    expose:
    - 5432
    ports:
      - 5432:5432
    environment:
         - POSTGRES_PASSWORD=admin
         - POSTGRES_USER=postgres
         - POSTGRES_DB=testdb
    restart: unless-stopped
# APP*****************************************
  springbootapp:
    image: springbootapp:latest
    network_mode: bridge
    container_name: springbootapp
    expose:
      - 8080
    ports:
      - 8080:8080
    restart: unless-stopped
    depends_on:
      - postgres
    links:
      - postgres
volumes:
  postgres-data:
30 мар 21, 17:46    [22302168]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Для компоуза насколько я помню имя не надо. Указывается репозитарий и тег. Для последнего постгреса
это будет "postgres:latest". И для твоего несчастного приложения "springbootapp:latest"

И компоуз поднимается не через docker start а как-то по другому не помню щас как.
30 мар 21, 18:01    [22302174]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Для компоуза насколько я помню имя не надо. Указывается репозитарий и тег. Для последнего постгреса
это будет "postgres:latest". И для твоего несчастного приложения "springbootapp:latest"

И компоуз поднимается не через docker start а как-то по другому не помню щас как.

как это не надо - а кто базу то создат?
https://medium.com/@isurunuwanthilaka/docker-zero-to-hero-with-springboot-postgres-e0b8c3a4dccb

вот делаю все по шагам 1 в 1
30 мар 21, 18:04    [22302177]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton


И компоуз поднимается не через docker start а как-то по другому не помню щас как.

docker-compose up
но не понятно при чем тут вообще это
30 мар 21, 18:08    [22302179]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Компоуз поднимает сразу пачку докеров. Причем с определенной логикой зависимостей.

Но тебе наверное для учебных задач компоуз еще рано брать в руки. Разбери просто
последовательную работу с постгресом и твоим приложением в ящике.
30 мар 21, 18:12    [22302181]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Компоуз поднимает сразу пачку докеров. Причем с определенной логикой зависимостей.

Но тебе наверное для учебных задач компоуз еще рано брать в руки. Разбери просто
последовательную работу с постгресом и твоим приложением в ящике.

не совсем так
докер композ пазволяет управлять несколькими контейнерами
30 мар 21, 18:18    [22302184]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Ну раз ты все знаешь - то тогда и знаешь куда положить скрипты для создания БД.
30 мар 21, 18:31    [22302190]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Ну раз ты все знаешь - то тогда и знаешь куда положить скрипты для создания БД.

скрипты для создания таблиц - это флайвей/ликвибейс
так же можно прописать инит sql в композе
но я вот ковыряю сейчас реальный проект с боя и не вижу нигде ни слова про то как создается сама база
30 мар 21, 19:55    [22302207]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
В постгресе база создается командой от суперпользователя postgres:


sudo -u postgres bash
psql

CREATE USER axon WITH PASSWORD 'pwd123';
CREATE TABLESPACE axon_space OWNER axon LOCATION '/bigdata/pg/axon';


дальше - под подльзователем БД.


CREATE DATABASE axondb OWNER axon TABLESPACE axon_space; 
30 мар 21, 20:10    [22302212]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
В постгресе база создается командой от суперпользователя postgres:


sudo -u postgres bash
psql

CREATE USER axon WITH PASSWORD 'pwd123';
CREATE TABLESPACE axon_space OWNER axon LOCATION '/bigdata/pg/axon';


дальше - под подльзователем БД.


CREATE DATABASE axondb OWNER axon TABLESPACE axon_space; 

так а куда это прописать то?
у меня есть образ моего приложения и образ постггерс
запуская композ он стартует два контейнера и понятное дело что в контейнере с постгрес не будет нужной вам бд- нужно при инициализации судя по всему ее создать - вопрос как это сделать если это так или как это вообще происходит - ни на примере который я ссылку давал нет ничего этого ,ни слова о том кто бд создает

вот эти скрипты на создание юзера и самой бд - куда и когда их прописать?
30 мар 21, 20:41    [22302223]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Есть две стратегии куда складывать твою базу. В файловую систему докера. Или во внешнюю ФС.

Куда ты хочешь?
30 мар 21, 20:42    [22302224]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Есть две стратегии куда складывать твою базу. В файловую систему докера. Или во внешнюю ФС.

Куда ты хочешь?

в докер конечно
30 мар 21, 20:55    [22302228]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Попробуй вот эту инструкцию.

https://stackoverflow.com/questions/26598738/how-to-create-user-database-in-script-for-docker-postgres

Но докер-файловая система не очень быстрая. Могут быть performance issues.
30 мар 21, 21:01    [22302230]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Попробуй вот эту инструкцию.

https://stackoverflow.com/questions/26598738/how-to-create-user-database-in-script-for-docker-postgres

Но докер-файловая система не очень быстрая. Могут быть performance issues.

никуа не получается- пишут что надо инит файл
я сделал как там - ошибка нет такой базы при запуске докер композ

сама ошибка
Unable to obtain connection from database: FATAL: database "testdb" does not exist
backend-1_1  | ----------------------------------------------------------------------------------
backend-1_1  | SQL State  : 3D000
backend-1_1  | Error Code : 0
backend-1_1  | Message    : FATAL: database "testdb" does not exist


сам файл init.sql
admin@testdev:~/test$ cat init.sql
CREATE USER postgres WITH PASSWORD 'postgres';
CREATE DATABASE testdb;
GRANT ALL PRIVILEGES ON DATABASE testdb TO postgres;


а это кусок докер -композа
services:
  postgres:
    image: postgres:13-alpine
    restart: unless-stopped
    networks:
      - test-net
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=testdb
    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
    ports:
      - "5432:5432"
30 мар 21, 22:06    [22302244]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
asv79

    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql


А это зачем ты так сделал?
30 мар 21, 22:24    [22302252]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
kolchanov

Наш опыт на наших реальных микросервисах, а не на "сферическом коне в вакууме", показывает улучшение время старта в 10-30 раз на quarkus.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.


Ну на моем опыте единственное, что тормозит в Spring это Hibernate :-)
Поднятие контекста Hibernate занимает всё время поднятие контекста Spring.

Но за счет кучи синтаксического сахара и множества декларативных аннотаций небольшие "прикладушки на коленке" пишутся на нем быстро.
Быстрее, возможно, только на Python.

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

Единственное Hibernate всё портит.
Но отказаться от Spring-Data-Jpa очень трудно. :-)
31 мар 21, 05:50    [22302299]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
asv79

    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql


А это зачем ты так сделал?

помоему это для того что бы там дата хранилась,в примере из ссылки такое есть и на бою
31 мар 21, 09:17    [22302339]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton,самое интересное что я сейчас защел в консоль контейнера с пострегрес и посмотрел - может там нет базы ,которая создается в init.sql ,но база есть.
получается приложение не может его увидеть потому что смотрит не туда- вопрос где что я не так прописал - может в application.yml фиг его знает
31 мар 21, 10:16    [22302359]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.
31 мар 21, 11:46    [22302407]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.

не ,там все вообще не так - никто ничего никуда не выводит - все в докере крутится
вообщем прикол в том,что докер компос делает все за нас- ему не нужны никакие инит файлы
достаточно прописать юзера и он создаст одноименню с ним базу
я убрал инит файл,добавил application.yml
в эту строчку url: jdbc:postgresql://${DB_SERVER_HOST:localhost}:${DB_SERVER_PORT:5432}/${DB_NAME:testdb}
и в композе

services:
  postgres:
    image: postgres:13-alpine
    restart: unless-stopped
    networks:
      - testdb-net
    environment:
      - POSTGRES_USER=testdb
      - POSTGRES_PASSWORD=testdb
    volumes:
      - database-data:/var/lib/postgresql/data/
    ports:
      - "5432:5432"

И Все заработало-ошибка была в том ,что я пытался в инит файле создать базу и в апл.ямл прописал к ней путь
а в это время докер композ создал бд с именем идентичным POSTGRES_USER=testdb

это конечно не очень правильно наверно - скорей всего если убрать environment:
то тогда подхватится init.sql
31 мар 21, 12:31    [22302435]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.
31 мар 21, 12:37    [22302441]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.

мне просто нужно сделать пример как тут
https://medium.com/@isurunuwanthilaka/docker-zero-to-hero-with-springboot-postgres-e0b8c3a4dcc
31 мар 21, 12:47    [22302448]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
вроде разобрался с докер копомз
теперь непонятно другое - я дропаю базу контейнер - потом создаю заново но у меня там уже есть данные в базе и база новая не создается- это какой то прикол докера или в чем проблема?
31 мар 21, 13:48    [22302482]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.
31 мар 21, 15:00    [22302530]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Попробуй убери вообще эту желтую строчку что я выделил маркером.
31 мар 21, 15:54    [22302582]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.

ну в принципе это нормально- вопрос в том как очистить это все - я не вижу таких директорий у себя
31 мар 21, 16:54    [22302624]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.
31 мар 21, 17:05    [22302630]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
все таки ты не прав майтон
нет на диске такой директории- нет у меня постгреса локально и директорий таких тоже нет
все облазил сейчас
а вот как раз в докер контейнере с постгрес такая директория присуствует
откуда берется БД и как сохраняются значения после удаления контейнера - большой вопрос - похоже это что то типо кеша докеровского или же что то типо гита - других мыслей у меня нет

пс.если эту строчку убрать ты не сможешь бд созадть - эта команда прописывает путь где сторить бд у тебя в контейнере
31 мар 21, 17:12    [22302632]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)
31 мар 21, 17:23    [22302640]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
asv79
mayton
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)

Windows?
31 мар 21, 17:28    [22302641]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
asv79
пропущено...

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)

Windows?

линукс конечно- спецом и взял чтобы немного знаний поднять по линукс и девопсятине)
короче нашел я где эта дичь лежала
в докере в volumes
нужно сделать
 docker system prune --volumes

и будет счастье
31 мар 21, 17:35    [22302643]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?
31 мар 21, 17:52    [22302649]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?

это не очистка образов это удаление всего
всех контейенеров,образов,нетворков,волумов,билд кешей вот так будет правильней звучать

пс.вроде да разобрался что к чему
1.файл инит не нужен - база будет создана из того что пропишешь при создании контейнера
2.инит файл нужен для таких вещей как напрмиер create extension if not exist "uuid-ossp"
3.нужно правильно прописиывать переменные окружения в application.yml и в докер- композе
4.волум - сторит нашу дату- что в приницпе логичено не каждый же раз ее дропать при рестарте контейнера

где физически лежит волум - в нашем случае постгрес дата - судя по всему в докере ,но вне контейнеров( но это не точно- тут нужно мнение профессионалов- я таких директорий на своем серваке не нашел - причем понятно что смотрел все и скрытые)

Сообщение было отредактировано: 31 мар 21, 18:03
31 мар 21, 18:09    [22302657]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
по волумам вот такой ответ

Volumes are stored in a part of the host filesystem which is managed by Docker ( /var/lib/docker/volumes/ on Linux). Non-Docker processes should not modify this part of the filesystem. Volumes are the best way to persist data in Docker
31 мар 21, 18:32    [22302664]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

docket tag ...
docker push ... 

Там отдельный репо создается. Креды к нему и прочее.

Для тебя его полезный эффект будет в виде еще одного экспоуз сетевого порта и все. Больше ничего
не будет. Ни операционки. Ни bash консоли.

Ну а виртуальный приватный хост будет уже чисто для твоего приложения.

Сообщение было отредактировано: 31 мар 21, 18:28
31 мар 21, 18:35    [22302666]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3329
mayton
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

docket tag ...
docker push ... 

Там отдельный репо создается. Креды к нему и прочее.

Для тебя его полезный эффект будет в виде еще одного экспоуз сетевого порта и все. Больше ничего
не будет. Ни операционки. Ни bash консоли.

Ну а виртуальный приватный хост будет уже чисто для твоего приложения.

в моем случае яндекс .облако - обычная виртуалка ,которую я использую в качестве сервака
для докера в мое конкретном случае там нет ничего -так как это триал версия - взял погонять чтобы вкусить весь путь от пуша до развертывания на кубернетис - чо то меня прям это все увлекло ,да так что в отпуске залипаю на 12 часов у компа)
31 мар 21, 18:50    [22302679]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Попробую смигрировать один проект с Guice на Dagger2.

У задачи нет сроков. Она - игрушечная поэтому могу играться с ней бесконечно. Без лимитов по времени.
10 апр 21, 14:31    [22306963]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Dmitry Eliseev
Member

Откуда: Saint-Petersburg
Сообщений: 105
Почему в опросе нет трушного CDI ?
20 апр 21, 18:30    [22311602]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
Dmitry Eliseev
Почему в опросе нет трушного CDI ?


Потому что поциент скорее мертв, чем жив?!
<:o)
21 апр 21, 15:30    [22311999]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я вроде писал что извиняюсь если я кого-то забыл.
21 апр 21, 18:07    [22312089]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
ну что там с кваркусом то? решили где гэ а где не гэ?
имхо. для себя сделал вывод, где аннотации - там гэ.
где аннотации размером с жирафа (в экран не влезают) - это гэ в факториале.

опять же вопрос - как вы используете свой фреймворк. если весь ворох свистелок трынделок это одно. а если только как диай контейнер а остальное сами-сами то это совсем другое.

все эти спринги кварки хибернейты отличные штуки если дают возможность без переделок и закапываний в потроха решить конкретно твою задачу. если надо лезть в потроха - уже появляются вариации.
21 апр 21, 18:43    [22312109]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
andreykaT
все эти спринги кварки хибернейты отличные штуки если дают возможность без переделок и закапываний в потроха решить конкретно твою задачу. если надо лезть в потроха - уже появляются вариации.
Ну Spring DI и Hibernate решают задачи очень разной сложности. Spring DI решает очень простую задачу, которую и вручную не то чтоб сложно решить. Поэтому и на его изучение/применение в идеале не должно уходить усилий (чему всякое гэ типа Spring Boot'а не способствует). Hibernate же решает очень сложные проблемы которые вручную тоже трудно решить. Поэтому если его изучение и применение будут сложными - это ожидаемо.

Сообщение было отредактировано: 21 апр 21, 18:45
21 апр 21, 18:51    [22312114]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
сказанное выше это в разрезе того что мы говорим о фреймворках в целом. и спринг и хибер - это в первую очередь фреймворки.
21 апр 21, 18:56    [22312115]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Dmitry Eliseev
Member

Откуда: Saint-Petersburg
Сообщений: 105
mad_nazgul
Dmitry Eliseev
Почему в опросе нет трушного CDI ?


Потому что поциент скорее мертв, чем жив?!
<:o)


Разве может стандарт JEE умереть ?
Кроме того существует достаточно много фреймворков и серверов приложений которые его поддерживают.
То что люди не пользуются а тащат туда спринг, утяжеляя приложение - личное дело каждого.

Тот же Quarkus, участвующий в опросе пишет на своём сайте:
Quarkus DI solution (also called ArC) is based on the Contexts and Dependency Injection for Java 2.0 specification. However, it is not a full CDI
21 апр 21, 19:09    [22312122]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
Dmitry Eliseev
Разве может стандарт JEE умереть ?
А вот и умер (ну в смысле поменял хозяев и переименовался), теперь это Jakarta EE :)
21 апр 21, 19:27    [22312129]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
Stanislav Bashkyrtsev
Hibernate же решает очень сложные проблемы которые вручную тоже трудно решить. Поэтому если его изучение и применение будут сложными - это ожидаемо.


Hibernate решает сложные проблемы, которые сам себе в начале создал.
Из-за отображения ООМ на РМД.
Простые вещи он усложняет до невозможности.
Вместо, того, чтобы делать нормальный DTO ручками.
Приходиться скрещивать ужа с ежом, чтобы получить пони.
<:o)
22 апр 21, 06:43    [22312220]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
mad_nazgul
Hibernate решает сложные проблемы, которые сам себе в начале создал.

Сложные проблемы которые он решает и которые сам себе не создавал - это ленивая загрузка и поддержка больших графов объектов, dirty check'и, каскады, поддержание PersistenceContext'a и т.п.
mad_nazgul
Простые вещи он усложняет до невозможности.
Вместо, того, чтобы делать нормальный DTO ручками.
Приходиться скрещивать ужа с ежом, чтобы получить пони.

Простые штуки вроде вернуть DTO можно сделать как с Hibernate'ом:
- с помощью select new
- создание более удобных сущностей под задачу, которые мапятся на те же таблицы, но по-другому
- маппинг на вьюшки

Так можно решать их и без него, никто не мешает миксовать Hibernate и JDBC - это вполне себе подход. Простым проблемам - простой инструмент.

Сообщение было отредактировано: 22 апр 21, 10:11
22 апр 21, 10:16    [22312303]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
OFF
Не мойму против кого тут. Против ОРМ, реализации в хибере или против загибания DTO))….....?
22 апр 21, 10:35    [22312323]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
Stanislav Bashkyrtsev
mad_nazgul
Hibernate решает сложные проблемы, которые сам себе в начале создал.

Сложные проблемы которые он решает и которые сам себе не создавал - это ленивая загрузка и поддержка больших графов объектов, dirty check'и, каскады, поддержание PersistenceContext'a и т.п.


Вот!
Нафиг они нужны не в рамках контекста Hibernate?!
Все эти проблемы притащил с собой Hibernate.
22 апр 21, 14:50    [22312572]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul,
Странный ты.
Говори конкретнее! Хибер притащил ленивость?
Но без ОРМ ленивость ты делал руками писав JOIN поляневсеакоторыенужны
22 апр 21, 15:10    [22312596]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
mad_nazgul,
Странный ты.
Говори конкретнее! Хибер притащил ленивость?
Но без ОРМ ленивость ты делал руками писав JOIN поляневсеакоторыенужны


Да хибер притащил понятие ленивость.
Что значит ленивость?
Это когда вместо реального объекта посдтавляется прокси, при обращении к которому, делается запрос и подтягиваются данные.

Без ОРМ никакой "ленивой" загрузки не надо.
Запросом вытаскиваешь данные и раскладываешь по объектам.
22 апр 21, 15:26    [22312615]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul,
>Запросом вытаскиваешь данные и раскладываешь по объектам.
= хорош трындеть. ПОКАЖИ.
22 апр 21, 16:05    [22312655]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
22 апр 21, 16:56    [22312696]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
Создал отдельную тему для этого обсуждения: Нужен ли нам ORM?
22 апр 21, 18:05    [22312728]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер
22 апр 21, 18:08    [22312729]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Stanislav Bashkyrtsev,

Баян. Уже даже порванный
22 апр 21, 18:09    [22312730]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер


Ну если использовать для хранения данных БД.
Но можно использовать, какиой-нибудь Mongo или Redis.
<:o)
23 апр 21, 06:50    [22312896]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
Stanislav Bashkyrtsev,

Баян. Уже даже порванный


Ну ПТ закрыли.
А так с 2013 года ничего не поменялось :-)
23 апр 21, 06:52    [22312899]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
PetroNotC Sharp
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер

Ахаха! А нужен ли бут микросервисам?
23 апр 21, 07:18    [22312903]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mayton,
И микросервисы тут никто не видел)
23 апр 21, 08:25    [22312926]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul
PetroNotC Sharp
пропущено...
угу.
Спринг бут тянет jpa, а он хибер


Ну если использовать для хранения данных БД.
Но можно использовать, какиой-нибудь Mongo или Redis.
<:o)

Лечение головной боли гильотиной.
Разумеется ОРМ не нужен если второй буквы из трех нет.
23 апр 21, 08:27    [22312927]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
mad_nazgul
пропущено...


Ну если использовать для хранения данных БД.
Но можно использовать, какиой-нибудь Mongo или Redis.
<:o)

Лечение головной боли гильотиной.
Разумеется ОРМ не нужен если второй буквы из трех нет.


Дык РМД, это просто одна из моделей хранения данных.
Если её не использовать, то она и не нужны. ;-)
<:o)
23 апр 21, 09:14    [22312948]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)


Э-э-э ИМХО все таки лучше говорить за себя. :-)
23 апр 21, 09:16    [22312949]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)


Э-э-э ИМХО все таки лучше говорить за себя. :-)
тогда и разговора не выйдет.
23 апр 21, 09:48    [22312966]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul,
Тогда вопрос зачем ОРМ без рсубд не имеет смысла. Ты его выше задал.
23 апр 21, 09:49    [22312967]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)

Я не виноват. Топик живет своей жизнью.
23 апр 21, 10:05    [22312977]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mayton,
Я тоже.
В инете уже их обозвали словом buzzword
23 апр 21, 10:10    [22312987]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
am_sasa
Member

Откуда:
Сообщений: 718
PetroNotC Sharp

В инете уже их обозвали словом buzzword
а что тогда в каждой второй вакансии требуется опыт микросервисов?
23 апр 21, 10:19    [22312999]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
am_sasa
PetroNotC Sharp

В инете уже их обозвали словом buzzword
а что тогда в каждой второй вакансии требуется опыт микросервисов?
обычный хайп.
Им нужны обычные веб сервисы. Так раньше их называли.
23 апр 21, 10:22    [22313002]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
am_sasa,
RestFull чем отличается от REST?))
23 апр 21, 10:24    [22313003]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
am_sasa
Member

Откуда:
Сообщений: 718
PetroNotC Sharp,

состояния нет
23 апр 21, 10:49    [22313018]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
am_sasa
PetroNotC Sharp,

состояния нет
нет.
У рест там 6 или 8 принципов.
К которым стремятся..
Но так как все принципы это идеал который не то что недостижим, а вреден. Придумали термин Полный рест или не полный.
Вот, в вакансиях и пишут, что максимальное требование по рест в архитектуре.
Например, кроме GET/POST Используются полный набор идентификаторов операций.

Сообщение было отредактировано: 23 апр 21, 10:52
23 апр 21, 11:00    [22313024]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
am_sasa,
Думаю что состояния надо убирать в обоих рест.
23 апр 21, 11:02    [22313027]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
К слову. Пару дней назад посмотрел лекцию. Вот этот господин описал некоторые недостатки REST
с точки зрения их продуктовых usecases.



Мне понравилась идея упрощения. Я тоже когда-то об этом думал когда технология REST появилась
(или просто стала базз-вордом). Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.
23 апр 21, 13:21    [22313156]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
mayton
Мне понравилась идея упрощения. Я тоже когда-то об этом думал когда технология REST появилась
(или просто стала базз-вордом). Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.


Так REST в чистом виде, это вываливание всех кишек наружу.
Очень грубо говоря вы даете полный доступ к своим данным без каких либо ограничений.
Максимум можете разрешения/доступ дать к отдельным типам сущностей.
Это как дать доступ к БД напрямую, ограничив только пользователем БД.

И это не вебсервисы, это гораздо "тупее"
23 апр 21, 13:31    [22313163]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
мне понравилась тема с некими конвертами в виде джейсона )) типа понятно и действие и результат и всё остальное. опять же схемы опенапи и т.п. конверты да.. а хотя... постойте это же... блин!
23 апр 21, 15:10    [22313235]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Мы приходим к некому SOAP-over-http.
23 апр 21, 15:53    [22313275]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
mad_nazgul
mayton
Мне понравилась идея упрощения. Я тоже когда-то об этом думал когда технология REST появилась
(или просто стала базз-вордом). Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.


Так REST в чистом виде, это вываливание всех кишек наружу.
Очень грубо говоря вы даете полный доступ к своим данным без каких либо ограничений.
Максимум можете разрешения/доступ дать к отдельным типам сущностей.
Это как дать доступ к БД напрямую, ограничив только пользователем БД.

И это не вебсервисы, это гораздо "тупее"

любой бэк в дата центричном приложении - это вшивая прослойка между бд и клиентом
23 апр 21, 17:24    [22313324]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
mad_nazgul
Так REST в чистом виде, это вываливание всех кишек наружу.
Очень грубо говоря вы даете полный доступ к своим данным без каких либо ограничений.
Эт к RESTy не имеет никакого отношения. Через любой API если ты просто гоняешь DTO которые вытягивают данные из таблицы и наоборот - их туда складывают, то да - ты просто написал API к БД. На самом деле в RESTe ты какие ресурсы хочешь - такие и создаешь, они могут никак не соотносится со структурой БД. Как и в SOAP, или Protobuf, или JSON-RPC или любом другом протоколе.
mayton
Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.
Ну это Layer 7 модели OSI. Он создан как раз для того чтоб его понимали приложения. Если же мы его используем исключительно для туннелирования, ну тогда получаем еще один уровень протокола. Что обычно значит потерю в производительности и интероперабельности. Например, чел в видео полностью отбросил кеширование перейдя на POST.

Если не нравится HTTP, то можно реализовать свой Layer 7 прокол. Но конечно если речь про UI-BE, то тут уж мы ограничены тем что поддерживает браузер.

Сообщение было отредактировано: 23 апр 21, 17:23
23 апр 21, 17:30    [22313329]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
andreykaT,
Бэк сам включает бд. Поэтому не может быть прослойкой
23 апр 21, 17:39    [22313340]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Stanislav Bashkyrtsev
Ну это Layer 7 модели OSI. Он создан как раз для того чтоб его понимали приложения. Если же мы его используем исключительно для туннелирования, ну тогда получаем еще один уровень протокола. Что обычно значит потерю в производительности и интероперабельности. Например, чел в видео полностью отбросил кеширование перейдя на POST.

Кеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.
23 апр 21, 18:06    [22313359]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
mayton
Кеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.
Тема эта может и сложная, но не всегда. И не всегда с бизнесом нужно обсуждать. Часто это просто вопросы архитектуры. К примеру использование immutable записей. Т.е. загружается основной JSON у которого есть ссылки на какие-то большие объекты. Если эти объекты immutable, то ставим пожизненный кеш. Если они обновятся, то обновится и ID в основном JSON'e, а значит и адрес ресурса. Все работает быстро и удобно. Когда же мы переходим на POST, то тут с бизнесом обсуждай-не обсуждай, а все, приехали.

Сообщение было отредактировано: 23 апр 21, 18:57
23 апр 21, 19:04    [22313389]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
Stanislav Bashkyrtsev
Эт к RESTy не имеет никакого отношения. Через любой API если ты просто гоняешь DTO которые вытягивают данные из таблицы и наоборот - их туда складывают, то да - ты просто написал API к БД. На самом деле в RESTe ты какие ресурсы хочешь - такие и создаешь, они могут никак не соотносится со структурой БД. Как и в SOAP, или Protobuf, или JSON-RPC или любом другом протоколе.


Ресурсы == данные?! Не?
А откуда они из БД, или откуда-то ещё - не важно.
Данные доступны "как есть", без логики.
Из-за statless, то что мы положили, то мы и должны получить.

Т.к. Данный концепт очень ограничен, и применим не всегда и не везде, то стали придумывать "дополнения и расширения".

И сейчас пришли к тому, от чего уходили. :-)
26 апр 21, 09:08    [22314233]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul
Stanislav Bashkyrtsev
Эт к RESTy не имеет никакого отношения. Через любой API если ты просто гоняешь DTO которые вытягивают данные из таблицы и наоборот - их туда складывают, то да - ты просто написал API к БД. На самом деле в RESTe ты какие ресурсы хочешь - такие и создаешь, они могут никак не соотносится со структурой БД. Как и в SOAP, или Protobuf, или JSON-RPC или любом другом протоколе.


Ресурсы == данные?! Не?
А откуда они из БД, или откуда-то ещё - не важно.
Данные доступны "как есть", без логики.
Из-за statless, то что мы положили, то мы и должны получить.

Т.к. Данный концепт очень ограничен, и применим не всегда и не везде, то стали придумывать "дополнения и расширения".

И сейчас пришли к тому, от чего уходили. :-)
Я тебя не понял.
Как это без логики? Кто сказал?
БЛ есть внутри. Наружу получили данные.
Вместо
getДолжники()
Будет
http//app/должники
26 апр 21, 09:31    [22314245]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Stanislav Bashkyrtsev
mayton
Кеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.
Тема эта может и сложная, но не всегда. И не всегда с бизнесом нужно обсуждать. Часто это просто вопросы архитектуры. К примеру использование immutable записей. Т.е. загружается основной JSON у которого есть ссылки на какие-то большие объекты. Если эти объекты immutable, то ставим пожизненный кеш. Если они обновятся, то обновится и ID в основном JSON'e, а значит и адрес ресурса. Все работает быстро и удобно. Когда же мы переходим на POST, то тут с бизнесом обсуждай-не обсуждай, а все, приехали.

Пожизненный - тоже плохо. Обновишь версию формата - потом кеш отравлен. Надо придумывать как попросить клиентов их инвалидировать.
Вобщем Rest всяко хорошо когда у тебя браузер. А для двух разговаривающих друг с другом back-систем rest будет
ненужным волюнтаризмом.
26 апр 21, 13:46    [22314430]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
mad_nazgul
Ресурсы == данные?! Не?
Нет. REST - это не доступ к БД. RPC в этом плане никак не отличается от REST'a.
mad_nazgul
Из-за statless, то что мы положили, то мы и должны получить.
Нет, stateless совсем о другом - о том что если бы у нас было две ноды, то запросы могли бы идти на каждую из них в любом порядке. Что у ноды нет никакого состояния относительно другой ноды (те же кеши к примеру), которое могло бы привести к разным результатам если идти к разным нодам.

Опять же - это приятное свойство и в случае RPC тоже.
mayton
Обновишь версию формата - потом кеш отравлен.
Есть хорошее решение, которое ты наверняка знаешь потому как оно используется повсеместно. Но из-за того что нужно обязательно плохое что-то сказать про REST - не хочешь чутка подумать.

Сообщение было отредактировано: 26 апр 21, 13:42
26 апр 21, 13:47    [22314432]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Есть разные решения. Но есть также рекомендация не использовать "вечное хранение" в кешах.
26 апр 21, 14:18    [22314455]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mayton,

Кеш это такая мелочь... Всего лишь оптимизация.
26 апр 21, 15:00    [22314496]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Да как посмотреть. Фейсбук и ВК под это дело создали ни много ни мало а фреймворки и свои стеки технологий.
26 апр 21, 16:16    [22314564]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
Stanislav Bashkyrtsev
mad_nazgul
Ресурсы == данные?! Не?
Нет. REST - это не доступ к БД. RPC в этом плане никак не отличается от REST'a.


Где я говорил о БД? Я говорю только о данных.

Stanislav Bashkyrtsev

mad_nazgul
Из-за statless, то что мы положили, то мы и должны получить.
Нет, stateless совсем о другом - о том что если бы у нас было две ноды, то запросы могли бы идти на каждую из них в любом порядке. Что у ноды нет никакого состояния относительно другой ноды (те же кеши к примеру), которое могло бы привести к разным результатам если идти к разным нодам.


Statless не про ноды, это про состояние.
Возможность горизонтального масштабирования это дополнительный плюс.
Главное, что результат не зависит от внутреннего состояния объекта/функции/сервиса.
И по идее не может быть так, что положив в коробку платочек, мы оттуда получаем кролика.
Если это не так, то мы имеем statefull.

Тот же пример с кешем, это пример statefull сервиса, т.к. состояние сервиса зависит от состояния внутреннего кеша.
27 апр 21, 09:28    [22314894]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul,
У него и у меня претензия только к твоей фразе "кишки наружу"
27 апр 21, 09:45    [22314905]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
PetroNotC Sharp
mad_nazgul,
У него и у меня претензия только к твоей фразе "кишки наружу"


Ну ок.

Просто для меня REST это доступ к данным, без какой-либо явной логики.
Ну типа выставили наружу MongoDB, можете данные читать/изменять/добавлять/удалять. (GET/POST/PUT/DELETE)

Как бы все.

А вот для API REST не подходит от слова совсем.

<:o)
28 апр 21, 12:43    [22315565]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
mad_nazgul,
Монго бд тут 1 процент народа. Че о ней говорить.
28 апр 21, 12:53    [22315574]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
mayton
Попробую смигрировать один проект с Guice на Dagger2.

У задачи нет сроков. Она - игрушечная поэтому могу играться с ней бесконечно. Без лимитов по времени.

Хм. Не вижу у Dagger2 поддержки метода init().
11 май 21, 11:55    [22320346]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
Все форумы / Java Ответить