Чай, Java, покодим? Разрабатываем микросервис с нуля на Spring+Java+PostgreSQL (2 часть).

На этом стриме мы продолжим разрабатывать микросервис с нуля на стеке Spring+Java+PostgreSQL. Я постараюсь подробно объяснять свои шаги при разработке и интересующие вас вопросы, которые вы сможете задать чате.
Мы организуем наш сервис в соответствии с подходом MVC. Для этого создадим DTO представление наших сущностей базы данных, и стандартные MVC контроллеры (Spring Web framework) для возможности работы с ними. Создадим JPA репозитории для работы с БД (Spring JPA), используем Hibernate для объектно-реляционного представления нашей БД. Для компоновки наших зависимостей будем использовать сборщик Gradle.
Поддержать автора - www.donationalerts.com/r/maycode
Мой Telegramm - t.me/may_code
Мой GitHub - github.com/FriMay
Отличная группа для Java разработчика (фичи, туториалы, статьи) - javatutorial
Оставить отзыв о трансляции - forms.gle/xTeV2v3UrZRqyzwL7

Пікірлер: 44

  • @SPORTCITYRU
    @SPORTCITYRU27 күн бұрын

    пушка в качестве стартового проекта, ты молодец, я много от тебя узнал, не прекращай пж

  • @maycode0

    @maycode0

    27 күн бұрын

    Постараюсь ;)

  • @kelvin4657
    @kelvin46572 жыл бұрын

    Жду продолжения, тот канал по программированию, которого так не хватало)

  • @user-kk9dc6pd8u
    @user-kk9dc6pd8u Жыл бұрын

    Спасибо за твою работу, все круто, продолжай, пили контент почаще Удачи каналу и автору

  • @malerx
    @malerx2 жыл бұрын

    Отличный стрим!

  • @alexeymirniy
    @alexeymirniy2 жыл бұрын

    Очень круто! Давай Spring Security на это накатим=)

  • @user-th7ot5vs7f
    @user-th7ot5vs7f2 жыл бұрын

    Я требую продолжения банкета! :D

  • @aziztolearn
    @aziztolearn2 жыл бұрын

    Thank you

  • @egorp8245
    @egorp82452 жыл бұрын

    Thanks bro

  • @nikitadevaev554
    @nikitadevaev5542 жыл бұрын

    Очень надеюсь что это не конец. Понравились твои видеоролики! Это твой единственный канал?

  • @maycode0

    @maycode0

    2 жыл бұрын

    Да, единственный)

  • @alexeymirniy
    @alexeymirniy2 жыл бұрын

    Сделал по твоим следам этот микросервис, все заработало, очень круто получилось! Когда делали change task мозг чуть не закипел, но твое решение этой задачи в режиме онлайн божественно=)) Если есть возможность, то лучше на темной теме в IDE работать=)

  • @maycode0

    @maycode0

    2 жыл бұрын

    К сожалению темная тема сильно кропает изображение) Спасибо за отзыв, рад что у вас все получилось)

  • @alexeymirniy

    @alexeymirniy

    2 жыл бұрын

    @@maycode0 постараюсь найти время и дописать контроллер для Task, я так понимаю там по аналогии с TaskState все нужно сделать, если получится вернусь и выложу тут код

  • @maycode0

    @maycode0

    2 жыл бұрын

    Окей)

  • @user-yf2er5vr8q
    @user-yf2er5vr8q2 ай бұрын

    будет ли что-нибудь новое?

  • @alexandr6055
    @alexandr60559 ай бұрын

    добрый день. Объясните плиз в чем тут вообще микросервис? Это обычный монолит

  • @themistocies50
    @themistocies503 ай бұрын

    Привет, а для чего используется метод saveAndFlush в классе TaskStateController, если мы не получаем обратно сохраненное значение из бд? (Например, в методах replaceOldTaskStatePosition и changeTaskStatePosition в некоторых местах достаточно использовать save?) Еще хотел спросить по поводу подхода маппинга сущностей в DTO, в данном случае используется фабрика + билдер. Насколько я знаю, для этого широко применяется MapStruct. Можешь пару слов рассказать, почему выбран именно первый подход здесь и в чем его преимущества перед MapStruct?

  • @maycode0

    @maycode0

    3 ай бұрын

    Про MapStruct - уже отвечал. Подход ручной конвертации гибок и всегда контролируется до мелочей. Мне так привычнее. По поводу saveAndFlush так просто не скажу, давно был стрим) Видимо мне надо было в рамках транзакции пропихнуть изменения в БД раньше, чем сама транзакция закончится

  • @themistocies50

    @themistocies50

    3 ай бұрын

    Понятно. Насколько я понял, MapStruct уместно использовать при большом кол-ве полей, чтобы не писать много кода.

  • @user-fj7on8le9g
    @user-fj7on8le9g2 жыл бұрын

    А будет реально развернута микросервисная архитектура, 2 и более приложение, может подключение кафки с докером, рассказ о Спринг Клауде(типа Еврика, Зипкин, Хистрикс и т.д.) . Понять как настроить продусера и консьюмера в кафке . Как настроить множество таблиц для каждого микросервиса и как их связывать, это было бы гуд. Конечно уроки гуд, но по ним можно понять как монолит пилить, а не микросервис)) Просто охота разобраться именно в микросервисах, как их ставить, как клауд конфиг пилить и как с ним связывать остальные приложения, еще круто если сможет показать наглядно как реализовать CI/CD понятно, что это Девопс, но хотя бы как это выглядит в реале(((( Просто вообще в русских просторах нет уроков с нуля для такой темы... И не до конца понимаю как это работает на практике А пилить типа хеллоу ворд для микросервисной архитектуры смешно

  • @maycode0

    @maycode0

    2 жыл бұрын

    Честно говоря не владею ни докером особо, ни спринг клаудом в необходимой мере, чтобы это показывать, показать как связать два сервиса по реббиту- не сложно, но выносить в отдельную тему, что я уже развивал в одном из стримов не знаю насколько целесообразно) По поводу девопса - тоже не ко мне и на реальной практике CI/CD я могу только объяснит как это выглядит в нашей архитектуре, но на практике показать это невозможно, не моя область отвественности)

  • @user-fj7on8le9g

    @user-fj7on8le9g

    2 жыл бұрын

    @@maycode0 понял ))было бы круто если показали уже так скажем актуальные штуки на будующие , а то это мейнстримом стала, клауд, микросервисы, докер, а то темы сложны для понимания, а на русских просторах почти нет ничего (((

  • @maycode0

    @maycode0

    2 жыл бұрын

    Я уже объяснил, да, круто, но я этим не пользуюсь -> нет понимания, при помощи которого я мог бы это показать)

  • @ThomasRomanov
    @ThomasRomanov7 ай бұрын

    Спасибо за контент, вопрос, спустя 2 года автор так же хейтит сервисы?))

  • @maycode0

    @maycode0

    7 ай бұрын

    Нэт) Автор вкурил когда они нужны, но использует пока так же редко, пока нет острой необхожимости

  • @chupa00
    @chupa002 жыл бұрын

    Зачем реализовывать логику перемещения таск, если это задача фронта, нет? жесткая простыня и захардкоженная логика получается в контроллере)

  • @maycode0

    @maycode0

    2 жыл бұрын

    А как фронт будет перемещать таски? Ему нужен метод для этого, нет?) или он будет удалять и новую создавать?)

  • @chupa00

    @chupa00

    2 жыл бұрын

    @@maycode0 Менять id таск листа?

  • @chupa00

    @chupa00

    2 жыл бұрын

    @@maycode0 Не думай, что я докапываюсь. Контент хороший)

  • @maycode0

    @maycode0

    2 жыл бұрын

    А как это в видео реализовано?)

  • @maycode0

    @maycode0

    2 жыл бұрын

    Я просто частично не помню, давно было

  • @user-fj7on8le9g
    @user-fj7on8le9g2 жыл бұрын

    блин щас посмотрел, а ты по факту сделал монолит, где микросервис то?

  • @maycode0

    @maycode0

    2 жыл бұрын

    Я создал сервис ориентированный на выполнение конкретной задачи) Монолит это в моем понимание набор таких сервисов (авторизация, сам сервис который мы разрабатываем и тд) который помимо своей основной задачи (отслеживание задач) занимается в том числе и вопросом авторизации и так далее.

  • @maycode0

    @maycode0

    2 жыл бұрын

    Если я не прав, приведи тогда правильный пример, как этот монолит с твоей точки зрения, может стать микросервисом)

  • @user-fj7on8le9g

    @user-fj7on8le9g

    2 жыл бұрын

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

  • @maycode0

    @maycode0

    2 жыл бұрын

    Есть стрим отдельный по RabbitMQ, я там тоже сделал все в рамках одного сервиса, но это спокойно разноситься в разные кодовые базы и разбивается на модули)

  • @user-fj7on8le9g

    @user-fj7on8le9g

    2 жыл бұрын

    @@maycode0 ну это понятно, круто когда покажешь именно всю концепцию, как разбить по какой логике, как связывать, как реально это работает)) то есть показатель реальную идею, что вот представьте есть монолит делает такие то вещи, а теперь мы хтим вывести 2-3 микросервиса, вот так они взаимодействуют и т.д.)

Келесі