powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Тяпничный список инжекторных движков
130 сообщений из 130, показаны все 6 страниц
Тяпничный список инжекторных движков
    #40057226
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет друзья. С пятницей всех.

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

Дополните текстом.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057231
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Привет друзья. С пятницей всех.

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

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

С переходом на скалу перестал использовать какие-либо DI в принципе, чему безмерно рад. Хотя там тоже есть один неплохой - macwire, можно юзать вместе с play, когда приложение написано в стиле better-java. Для ФП DI фактически не нужен
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057235
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник

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

А вот я со спарком страдаю. Когда куча логики и надо прокидывать конфиги, пулы к базам, хдфс-у, кафкам - так начинаешь скучать по старому-доброму @Autowired-у (
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057238
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
забыл ник

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

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

Ну это ваша личная какая-то проблема.
1) dev.conf,prod.conf,uat.conf
2) Config.load($ENV)
Когда нужны именно разные имплементации подсистем, то typeclass+ final tagless, вообще никаких проблем
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В настоящий момент будем использовать Dagger для амазонских сервисов.

О кваркусе - наслышан но ни разу не использовал. Интересно посмотреть как они обеспечивают
быстрый старт. Возможно за счет спец плагинов компилляции в натив.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057343
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже без native компиляции стартует значительно быстрее spring.
ИМХО просто потому, что в отлиции от spring, injection происходит compile time, а не runtime.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057505
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolchanov
Даже без native компиляции стартует значительно быстрее spring.
ИМХО просто потому, что в отлиции от spring, injection происходит compile time, а не runtime.


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

Код: java
1.
2.
@Autowired(required=false)
private List<Service> services;


в надежде, что в другом модуле будет реализация, а тут как?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057518
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Привет друзья. С пятницей всех.

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

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

кваркус это ж жее древнючий.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057519
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В настоящий момент будем использовать Dagger для амазонских сервисов.

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

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

у кварка просто удобные плюшки которые сразу делают модные докеримаджи (которые без бубнов один хер работают только ровно как в мануале написано. шаг влево-вправо - ищи бубен) которые там даже сразу куда то пушатся. а так тот же спринг. пока еще худенький и с детскими багами.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057520
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуис емнип в плее юзается. проголосовал за кварк и за гуис. :)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057523
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
mayton
Привет друзья. С пятницей всех.

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

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

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

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

(с) Черный Трудяга Шварценбрухер.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057741
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>а как это? я вот в спринге пишу в одном модуле что-то в духе:
>в надежде, что в другом модуле будет реализация, а тут как?

https://quarkus.io/blog/quarkus-dependency-injection/
Все тоже самое, @Inject ищет compile time имплементацию.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057801
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolchanov
https://quarkus.io/blog/quarkus-dependency-injection/
Все тоже самое, @Inject ищет compile time имплементацию.
На вопрос "как" отвечают скорее не там, а в том месте, где рассказывают про AoT и GraalVM, однако в спринге тоже якобы все есть: https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/ и не нужно пользоваться убогим наследником CDI
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно на стороне Спринга ентерпрайзное превосходство.

Но наверное кваркус возник как попытка превзойти Спринг в части минимального футпринта
на микросервис по количеству классов и по размеру артифакта.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057900
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Конечно на стороне Спринга ентерпрайзное превосходство.

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


всем известно, что футпринт изменяется в деньгах. Можете расчеты привести, чтобы можно было увидеть как ограниченность технологии со всеми вытекающими (баги, проблемы с кадрами, проблемы с поддержкой) приносило бы ощутимую экономию? А то может ну ево нах эту жаву и пора все на C писать.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057912
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу. Да и мне пока кваркус не нужен. Но возможно кто-то ковырял его для server-less архитектур.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057949
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я не могу. Да и мне пока кваркус не нужен. Но возможно кто-то ковырял его для server-less архитектур.


т.е. преимущество непонятно в чем, но оно точно есть Если посмотреть кто этот кваркус делает, то выяснится, что это те же самые бракоделы из редхата разработчики jboss, которые умеют делать так, что приложение, прекрасно работаютщее в коте и сфере в их поделку даже не деплоится.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057972
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не защищаю кваркус, если что.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057990
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
какие двигатели DI вы использовали в своих проектах и планируете использовать в будущем

Weld
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40057995
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spring boot рулит!
нахер ваши конфиги и xml портянки

разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058045
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>всем известно, что футпринт изменяется в деньгах. Можете расчеты привести, чтобы можно было увидеть как ограниченность технологии со всеми вытекающими (баги, проблемы с кадрами, проблемы с поддержкой) приносило бы ощутимую экономию? А то может ну ево нах эту жаву и пора все на C писать.

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

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

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

проблемы с кадрами - эксперимент показал, что за две недели разработчик осваивает quarkus c сохранением уровня.
мидл отается мидлом, сеньер - сеньером.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058048
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

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

Что у тебя там за жесть с докером?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058052
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, и все в таком духе)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058054
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
разрабам и так хватает жести с докером и кубернетис ,всеми этими облачными деплоями и тд

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

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


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

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

Стасу же наверняка еще в проект понапихали докеров без возможности отладки и без информации о версиях того, что там крутится.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058071
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.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058104
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolchanov,

>аннотоации занимали целый экран.
Разве они секретны? Был бы интересен пример абстрактный.
На посмотреть.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058167
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.


ну вот кварка и появился на этой теме. типа спринг жирный на те вам на микропрофайле новый будущий спринг. юзайте пока холестерином не покрылся. ))
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058171
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нда. А прошло то от поклонов спрингу и микроХХХ, пара тройка лет.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058192
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколькой фреймворков было похоронено? А кто вообще помнит JSF?

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

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

А этот костяк просто переходит на новую задачу.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058302
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058304
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После того как ты поработал с контейнером - его надо остановить.

Код: java
1.
docker container stop ...



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

Код: java
1.
..... --name .....
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058306
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А сколькой фреймворков было похоронено? А кто вообще помнит JSF?

Ну я помню.

На JSF базируется ADF, т.ч. долгая (и нудная) жизнь ADF-JSF'у гарантированна ))) Десятки компаний из Fortune-500 не могут ошибаться )))
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058307
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
После того как ты поработал с контейнером - его надо остановить.

Код: java
1.
docker container stop ...



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

Код: java
1.
..... --name .....


я все делал как там написано -создал конейнер с постгрес- создал там бд
и получаю эту ошибку
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058308
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Мастер ты из топика про СПИСОК балаган превращать.
В любую тему: "я тут картошку выращиваю....
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058310
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, не переживай так. Я же сам его спросил.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058311
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
После того как ты поработал с контейнером - его надо остановить.

Код: java
1.
docker container stop ...



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

Код: java
1.
..... --name .....


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

Так дай ему новое имя. Или имя-счетчик.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058314
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

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

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

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

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
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:
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058317
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для компоуза насколько я помню имя не надо. Указывается репозитарий и тег. Для последнего постгреса
это будет "postgres:latest". И для твоего несчастного приложения "springbootapp:latest"

И компоуз поднимается не через docker start а как-то по другому не помню щас как.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058318
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Для компоуза насколько я помню имя не надо. Указывается репозитарий и тег. Для последнего постгреса
это будет "postgres:latest". И для твоего несчастного приложения "springbootapp:latest"

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

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

вот делаю все по шагам 1 в 1
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058319
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


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

docker-compose up
но не понятно при чем тут вообще это
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058321
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компоуз поднимает сразу пачку докеров. Причем с определенной логикой зависимостей.

Но тебе наверное для учебных задач компоуз еще рано брать в руки. Разбери просто
последовательную работу с постгресом и твоим приложением в ящике.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058324
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Компоуз поднимает сразу пачку докеров. Причем с определенной логикой зависимостей.

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

не совсем так
докер композ пазволяет управлять несколькими контейнерами
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058329
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз ты все знаешь - то тогда и знаешь куда положить скрипты для создания БД.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058339
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну раз ты все знаешь - то тогда и знаешь куда положить скрипты для создания БД.

скрипты для создания таблиц - это флайвей/ликвибейс
так же можно прописать инит sql в композе
но я вот ковыряю сейчас реальный проект с боя и не вижу нигде ни слова про то как создается сама база
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058341
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В постгресе база создается командой от суперпользователя postgres:


Код: java
1.
2.
3.
4.
5.
sudo -u postgres bash
psql

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



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


Код: java
1.
CREATE DATABASE axondb OWNER axon TABLESPACE axon_space; 
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058347
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В постгресе база создается командой от суперпользователя postgres:


Код: java
1.
2.
3.
4.
5.
sudo -u postgres bash
psql

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



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


Код: java
1.
CREATE DATABASE axondb OWNER axon TABLESPACE axon_space; 


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

вот эти скрипты на создание юзера и самой бд - куда и когда их прописать?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две стратегии куда складывать твою базу. В файловую систему докера. Или во внешнюю ФС.

Куда ты хочешь?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058350
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть две стратегии куда складывать твою базу. В файловую систему докера. Или во внешнюю ФС.

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

в докер конечно
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вот эту инструкцию.

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

Но докер-файловая система не очень быстрая. Могут быть performance issues.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058355
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Попробуй вот эту инструкцию.

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

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

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

сама ошибка
Код: java
1.
2.
3.
4.
5.
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
Код: java
1.
2.
3.
4.
admin@testdev:~/test$ cat init.sql
CREATE USER postgres WITH PASSWORD 'postgres';
CREATE DATABASE testdb;
GRANT ALL PRIVILEGES ON DATABASE testdb TO postgres;



а это кусок докер -композа
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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"
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058357
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

Код: java
1.
2.
3.
    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql



А это зачем ты так сделал?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058375
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolchanov

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


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

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

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

Единственное Hibernate всё портит.
Но отказаться от Spring-Data-Jpa очень трудно. :-)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058405
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79

Код: java
1.
2.
3.
    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql



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

помоему это для того что бы там дата хранилась,в примере из ссылки такое есть и на бою
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058423
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,самое интересное что я сейчас защел в консоль контейнера с пострегрес и посмотрел - может там нет базы ,которая создается в init.sql ,но база есть.
получается приложение не может его увидеть потому что смотрит не туда- вопрос где что я не так прописал - может в application.yml фиг его знает
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058444
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058461
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.

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

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058463
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058466
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.

мне просто нужно сделать пример как тут
https://medium.com/@isurunuwanthilaka/docker-zero-to-hero-with-springboot-postgres-e0b8c3a4dcc
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058496
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде разобрался с докер копомз
теперь непонятно другое - я дропаю базу контейнер - потом создаю заново но у меня там уже есть данные в базе и база новая не создается- это какой то прикол докера или в чем проблема?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058531
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058579
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй убери вообще эту желтую строчку что я выделил маркером.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058614
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.

ну в принципе это нормально- вопрос в том как очистить это все - я не вижу таких директорий у себя
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058619
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если ты напишешь так

Код: java
1.
- /home/stas/database-data:/var/lib/postgresql/data/



То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058620
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все таки ты не прав майтон
нет на диске такой директории- нет у меня постгреса локально и директорий таких тоже нет
все облазил сейчас
а вот как раз в докер контейнере с постгрес такая директория присуствует
откуда берется БД и как сохраняются значения после удаления контейнера - большой вопрос - похоже это что то типо кеша докеровского или же что то типо гита - других мыслей у меня нет

пс.если эту строчку убрать ты не сможешь бд созадть - эта команда прописывает путь где сторить бд у тебя в контейнере
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058626
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну если ты напишешь так

Код: java
1.
- /home/stas/database-data:/var/lib/postgresql/data/



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

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058627
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
Ну если ты напишешь так

Код: java
1.
- /home/stas/database-data:/var/lib/postgresql/data/



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

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

Windows?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058629
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

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

Windows?

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


и будет счастье
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058633
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058636
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?

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

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

где физически лежит волум - в нашем случае постгрес дата - судя по всему в докере ,но вне контейнеров( но это не точно- тут нужно мнение профессионалов- я таких директорий на своем серваке не нашел - причем понятно что смотрел все и скрытые)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058641
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по волумам вот такой ответ

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
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058643
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

Код: java
1.
2.
docket tag ...
docker push ... 


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

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

Ну а виртуальный приватный хост будет уже чисто для твоего приложения.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40058655
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

Код: java
1.
2.
docket tag ...
docker push ... 


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

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

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

в моем случае яндекс .облако - обычная виртуалка ,которую я использую в качестве сервака
для докера в мое конкретном случае там нет ничего -так как это триал версия - взял погонять чтобы вкусить весь путь от пуша до развертывания на кубернетис - чо то меня прям это все увлекло ,да так что в отпуске залипаю на 12 часов у компа)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40061341
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую смигрировать один проект с Guice на Dagger2.

У задачи нет сроков. Она - игрушечная поэтому могу играться с ней бесконечно. Без лимитов по времени.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064259
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему в опросе нет трушного CDI ?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064481
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Eliseev
Почему в опросе нет трушного CDI ?


Потому что поциент скорее мертв, чем жив?!
<:o)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064531
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вроде писал что извиняюсь если я кого-то забыл.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064543
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну что там с кваркусом то? решили где гэ а где не гэ?
имхо. для себя сделал вывод, где аннотации - там гэ.
где аннотации размером с жирафа (в экран не влезают) - это гэ в факториале.

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

все эти спринги кварки хибернейты отличные штуки если дают возможность без переделок и закапываний в потроха решить конкретно твою задачу. если надо лезть в потроха - уже появляются вариации.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064546
andreykaTвсе эти спринги кварки хибернейты отличные штуки если дают возможность без переделок и закапываний в потроха решить конкретно твою задачу. если надо лезть в потроха - уже появляются вариации.Ну Spring DI и Hibernate решают задачи очень разной сложности. Spring DI решает очень простую задачу, которую и вручную не то чтоб сложно решить. Поэтому и на его изучение/применение в идеале не должно уходить усилий (чему всякое гэ типа Spring Boot'а не способствует). Hibernate же решает очень сложные проблемы которые вручную тоже трудно решить. Поэтому если его изучение и применение будут сложными - это ожидаемо.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064547
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сказанное выше это в разрезе того что мы говорим о фреймворках в целом. и спринг и хибер - это в первую очередь фреймворки.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064551
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064555
Dmitry EliseevРазве может стандарт JEE умереть ?А вот и умер (ну в смысле поменял хозяев и переименовался), теперь это Jakarta EE :)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064604
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Hibernate же решает очень сложные проблемы которые вручную тоже трудно решить. Поэтому если его изучение и применение будут сложными - это ожидаемо.


Hibernate решает сложные проблемы, которые сам себе в начале создал.
Из-за отображения ООМ на РМД.
Простые вещи он усложняет до невозможности.
Вместо, того, чтобы делать нормальный DTO ручками.
Приходиться скрещивать ужа с ежом, чтобы получить пони.
<:o)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064651
mad_nazgulHibernate решает сложные проблемы, которые сам себе в начале создал.
Сложные проблемы которые он решает и которые сам себе не создавал - это ленивая загрузка и поддержка больших графов объектов, dirty check'и, каскады, поддержание PersistenceContext'a и т.п.
mad_nazgulПростые вещи он усложняет до невозможности.
Вместо, того, чтобы делать нормальный DTO ручками.
Приходиться скрещивать ужа с ежом, чтобы получить пони.
Простые штуки вроде вернуть DTO можно сделать как с Hibernate'ом:
- с помощью select new
- создание более удобных сущностей под задачу, которые мапятся на те же таблицы, но по-другому
- маппинг на вьюшки

Так можно решать их и без него, никто не мешает миксовать Hibernate и JDBC - это вполне себе подход. Простым проблемам - простой инструмент.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064660
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
Не мойму против кого тут. Против ОРМ, реализации в хибере или против загибания DTO))….....?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064761
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
mad_nazgulHibernate решает сложные проблемы, которые сам себе в начале создал.

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


Вот!
Нафиг они нужны не в рамках контекста Hibernate?!
Все эти проблемы притащил с собой Hibernate.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064770
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Странный ты.
Говори конкретнее! Хибер притащил ленивость?
Но без ОРМ ленивость ты делал руками писав JOIN поляневсеакоторыенужны
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064776
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
Странный ты.
Говори конкретнее! Хибер притащил ленивость?
Но без ОРМ ленивость ты делал руками писав JOIN поляневсеакоторыенужны


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

Без ОРМ никакой "ленивой" загрузки не надо.
Запросом вытаскиваешь данные и раскладываешь по объектам.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064802
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
>Запросом вытаскиваешь данные и раскладываешь по объектам.
= хорош трындеть. ПОКАЖИ.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064830
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064860
Создал отдельную тему для этого обсуждения: Нужен ли нам ORM?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064861
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40064862
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,

Баян. Уже даже порванный
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065000
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер


Ну если использовать для хранения данных БД.
Но можно использовать, какиой-нибудь Mongo или Redis.
<:o)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065003
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Stanislav Bashkyrtsev,

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


Ну ПТ закрыли.
А так с 2013 года ничего не поменялось :-)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065007
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Нужен-ли хибер микросервисам? Вот еще интересный вопрос. Я думаю - нет.
угу.
Спринг бут тянет jpa, а он хибер

Ахаха! А нужен ли бут микросервисам?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065024
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
И микросервисы тут никто не видел)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065025
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
PetroNotC Sharp
пропущено...
угу.
Спринг бут тянет jpa, а он хибер


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

Лечение головной боли гильотиной.
Разумеется ОРМ не нужен если второй буквы из трех нет.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065042
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul
пропущено...


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

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


Дык РМД, это просто одна из моделей хранения данных.
Если её не использовать, то она и не нужны. ;-)
<:o)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065043
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)


Э-э-э ИМХО все таки лучше говорить за себя. :-)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065054
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)


Э-э-э ИМХО все таки лучше говорить за себя. :-)
тогда и разговора не выйдет.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065055
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Тогда вопрос зачем ОРМ без рсубд не имеет смысла. Ты его выше задал.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065064
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
И микросервисы тут никто не видел)

Я не виноват. Топик живет своей жизнью.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065072
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я тоже.
В инете уже их обозвали словом buzzword
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065082
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp

В инете уже их обозвали словом buzzword
а что тогда в каждой второй вакансии требуется опыт микросервисов?
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065084
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa
PetroNotC Sharp

В инете уже их обозвали словом buzzword
а что тогда в каждой второй вакансии требуется опыт микросервисов?
обычный хайп.
Им нужны обычные веб сервисы. Так раньше их называли.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065085
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,
RestFull чем отличается от REST?))
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065096
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

состояния нет
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065101
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa
PetroNotC Sharp,

состояния нет
нет.
У рест там 6 или 8 принципов.
К которым стремятся..
Но так как все принципы это идеал который не то что недостижим, а вреден. Придумали термин Полный рест или не полный.
Вот, в вакансиях и пишут, что максимальное требование по рест в архитектуре.
Например, кроме GET/POST Используются полный набор идентификаторов операций.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065103
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,
Думаю что состояния надо убирать в обоих рест.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065184
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову. Пару дней назад посмотрел лекцию. Вот этот господин описал некоторые недостатки REST
с точки зрения их продуктовых usecases.

YouTube Video
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065189
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне понравилась идея упрощения. Я тоже когда-то об этом думал когда технология REST появилась
(или просто стала базз-вордом). Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.


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

И это не вебсервисы, это гораздо "тупее"
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065230
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне понравилась тема с некими конвертами в виде джейсона )) типа понятно и действие и результат и всё остальное. опять же схемы опенапи и т.п. конверты да.. а хотя... постойте это же... блин!
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065258
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы приходим к некому SOAP-over-http.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065294
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
mayton
Мне понравилась идея упрощения. Я тоже когда-то об этом думал когда технология REST появилась
(или просто стала базз-вордом). Само по себе натяжка http-команд и статусов и кодов ошибок
на некий софистический прикладной API мне тогда казалась странной.


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

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

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

Если не нравится HTTP, то можно реализовать свой Layer 7 прокол. Но конечно если речь про UI-BE, то тут уж мы ограничены тем что поддерживает браузер.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065306
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Бэк сам включает бд. Поэтому не может быть прослойкой
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065319
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav BashkyrtsevНу это Layer 7 модели OSI. Он создан как раз для того чтоб его понимали приложения. Если же мы его используем исключительно для туннелирования, ну тогда получаем еще один уровень протокола. Что обычно значит потерю в производительности и интероперабельности. Например, чел в видео полностью отбросил кеширование перейдя на POST.

Кеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065339
maytonКеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.Тема эта может и сложная, но не всегда. И не всегда с бизнесом нужно обсуждать. Часто это просто вопросы архитектуры. К примеру использование immutable записей. Т.е. загружается основной JSON у которого есть ссылки на какие-то большие объекты. Если эти объекты immutable, то ставим пожизненный кеш. Если они обновятся, то обновится и ID в основном JSON'e, а значит и адрес ресурса. Все работает быстро и удобно. Когда же мы переходим на POST, то тут с бизнесом обсуждай-не обсуждай, а все, приехали.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065800
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Эт к RESTy не имеет никакого отношения. Через любой API если ты просто гоняешь DTO которые вытягивают данные из таблицы и наоборот - их туда складывают, то да - ты просто написал API к БД. На самом деле в RESTe ты какие ресурсы хочешь - такие и создаешь, они могут никак не соотносится со структурой БД. Как и в SOAP, или Protobuf, или JSON-RPC или любом другом протоколе.


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

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

И сейчас пришли к тому, от чего уходили. :-)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065809
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Stanislav Bashkyrtsev
Эт к RESTy не имеет никакого отношения. Через любой API если ты просто гоняешь DTO которые вытягивают данные из таблицы и наоборот - их туда складывают, то да - ты просто написал API к БД. На самом деле в RESTe ты какие ресурсы хочешь - такие и создаешь, они могут никак не соотносится со структурой БД. Как и в SOAP, или Protobuf, или JSON-RPC или любом другом протоколе.


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

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

И сейчас пришли к тому, от чего уходили. :-)
Я тебя не понял.
Как это без логики? Кто сказал?
БЛ есть внутри. Наружу получили данные.
Вместо
getДолжники()
Будет
http//app/должники
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065936
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
maytonКеширование - это отдельная и сложная тема. И оно не включается по "щелчку пальцев". Его обсуждают
с бизнесом. Обсуждают возможные потери. Компромиссы. Поэтому просто так говорить "всуе" о
кешировании - это просто спекулировать на термине.
Тема эта может и сложная, но не всегда. И не всегда с бизнесом нужно обсуждать. Часто это просто вопросы архитектуры. К примеру использование immutable записей. Т.е. загружается основной JSON у которого есть ссылки на какие-то большие объекты. Если эти объекты immutable, то ставим пожизненный кеш. Если они обновятся, то обновится и ID в основном JSON'e, а значит и адрес ресурса. Все работает быстро и удобно. Когда же мы переходим на POST, то тут с бизнесом обсуждай-не обсуждай, а все, приехали.
Пожизненный - тоже плохо. Обновишь версию формата - потом кеш отравлен. Надо придумывать как попросить клиентов их инвалидировать.
Вобщем Rest всяко хорошо когда у тебя браузер. А для двух разговаривающих друг с другом back-систем rest будет
ненужным волюнтаризмом.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065938
mad_nazgulРесурсы == данные?! Не?Нет. REST - это не доступ к БД. RPC в этом плане никак не отличается от REST'a.
mad_nazgulИз-за statless, то что мы положили, то мы и должны получить.Нет, stateless совсем о другом - о том что если бы у нас было две ноды, то запросы могли бы идти на каждую из них в любом порядке. Что у ноды нет никакого состояния относительно другой ноды (те же кеши к примеру), которое могло бы привести к разным результатам если идти к разным нодам.

Опять же - это приятное свойство и в случае RPC тоже.
maytonОбновишь версию формата - потом кеш отравлен.Есть хорошее решение, которое ты наверняка знаешь потому как оно используется повсеместно. Но из-за того что нужно обязательно плохое что-то сказать про REST - не хочешь чутка подумать.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065951
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть разные решения. Но есть также рекомендация не использовать "вечное хранение" в кешах.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40065968
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Кеш это такая мелочь... Всего лишь оптимизация.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40066017
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да как посмотреть. Фейсбук и ВК под это дело создали ни много ни мало а фреймворки и свои стеки технологий.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40066216
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
mad_nazgulРесурсы == данные?! Не?
Нет. REST - это не доступ к БД. RPC в этом плане никак не отличается от REST'a.


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

Stanislav Bashkyrtsev

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


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

Тот же пример с кешем, это пример statefull сервиса, т.к. состояние сервиса зависит от состояния внутреннего кеша.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40066225
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
У него и у меня претензия только к твоей фразе "кишки наружу"
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40066664
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
У него и у меня претензия только к твоей фразе "кишки наружу"


Ну ок.

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

Как бы все.

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

<:o)
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40066673
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Монго бд тут 1 процент народа. Че о ней говорить.
...
Рейтинг: 0 / 0
Тяпничный список инжекторных движков
    #40069296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Попробую смигрировать один проект с Guice на Dagger2.

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

Хм. Не вижу у Dagger2 поддержки метода init().
...
Рейтинг: 0 / 0
130 сообщений из 130, показаны все 6 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Тяпничный список инжекторных движков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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