This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16😎7👍6😁3🤬1
Media is too big
VIEW IN TELEGRAM
Павел Кислов и Вячеслав Чернышов:
––––– Таймкоды –––––
00:00:00 – Хайлайты
00:00:39 – Вступление. О чём сегодня поговорим?
00:03:52 – Демо. Знакомимся с проектом, настраиваем окружение, изменяем модельку, пишем миграционные скрипты
00:16:13 – Демо. Пишем REST'ы! Много DTO, мапперов и бизнес-логики
00:56:42 – Демо. Тестируем написанное руками через HTTP-клиент
01:09:15 – Демо. Дебажим. Что-то поломали 🙁
01:15:45 – Демо. Проверяем исправления.
01:16:30 – Демо. Пишем интеграционные и unit тесты
01:28:03 – Закругляемся. Всем спасибо 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥8❤4
Forwarded from OpenIDE
This media is not supported in your browser
VIEW IN TELEGRAM
С программой мероприятия можно ознакомиться тут:
🗯 Чат трансляции: @openide_chat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤4👍3😁1
Media is too big
VIEW IN TELEGRAM
При работе с микросервисами часто возникает вопрос: как управлять конфигурациями для десятка разных сервисов? Один из популярных паттернов — вынести все проперти в отдельный Git-репозиторий и подключать их через Spring Cloud Config.
Например, в spring-petclinic-microservices-config хранятся настройки сразу для нескольких микросервисов Petclinic: discovery, visits-service, customers-service и других.
Это удобно:
spring.profiles.active
Но есть один нюанс, который выводит из себя Spring-разработчиков. IDE не понимает, что в этом репозитории лежат настройки для Spring-приложений. И никак не помогает во время редактирования. IDE думает, что это просто набор YAML-ов, как будто они вообще к проекту не относятся.
Мы это пофиксили! В Amplicode есть действие Mark Directory as Spring Application Properties Root
Вы просто указываете каталог с конфигурациями — и начинается магия 😉. Работает автокомплишн, подсветка и автодополнение значений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥9❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Циклические зависимости трудно обнаружить — особенно когда приложение всё-таки запускается благодаря использованию
@Lazy
.Мы давно показываем циклические зависимости между бинами, которые мешают запуску приложения, а начиная со следующего релиза будем подсвечивать и те, что были разрешены с помощью
@Lazy
.Please open Telegram to view this post
VIEW IN TELEGRAM
1👍14🔥6❤3
🧩 Агрегаты в Spring Data JDBC: как понять, что вы вообще построили? #coming_soon
Когда вы строите приложение следуя DDD, одна из ключевых задач — чётко понимать границы агрегатов:
🟣 Кто чей root?
🟣 Какие связи действительно важны, а какие просто случайные зависимости?
Особенно это актуально для Spring Data JDBC, где парадигмы DDD зашиты в ДНК фреймворка, а вместо привычных многим аннотаций
Разобраться в структуре проекта с такими вводными – нетривиальная задача.
Даже если вы придерживаетесь всех рекомендаций DDD — всё равно в какой-то момент ловите себя на мысли: «А где, собственно, начинается и заканчивается мой Order агрегат? Почему он вдруг знает про Payment, а тот — про Discount?»
Мы поняли, что с этим сталкиваются многие, кто разрабатывает приложения с использованием Spring Data JDBC, и решили помочь.
Начиная со следующего релиза, Amplicode Explorer будет показывать структуру вашей доменной модели именно с точки зрения агрегатов. Не просто дерево сущностей, а агрегаты как концепции DDD. Что является AggregateRoot, какие есть вложенные коллекции через
P.S. Как вам такая визуализация DDD? Может стоит и для JPA сделать подобное представление 😉?
Когда вы строите приложение следуя DDD, одна из ключевых задач — чётко понимать границы агрегатов:
Особенно это актуально для Spring Data JDBC, где парадигмы DDD зашиты в ДНК фреймворка, а вместо привычных многим аннотаций
@ManyToOne
, @ManyToMany
и т.д., используются AggregateReference
и @MappedCollection
.Разобраться в структуре проекта с такими вводными – нетривиальная задача.
Даже если вы придерживаетесь всех рекомендаций DDD — всё равно в какой-то момент ловите себя на мысли: «А где, собственно, начинается и заканчивается мой Order агрегат? Почему он вдруг знает про Payment, а тот — про Discount?»
Начиная со следующего релиза, Amplicode Explorer будет показывать структуру вашей доменной модели именно с точки зрения агрегатов. Не просто дерево сущностей, а агрегаты как концепции DDD. Что является AggregateRoot, какие есть вложенные коллекции через
@MappedCollection
, где используются AggregateReference
.P.S. Как вам такая визуализация DDD? Может стоит и для JPA сделать подобное представление 😉?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍7❤6👎1
🥳 1 000 000 просмотров
За чуть больше чем год видео Amplicode на YouTube собрали уже более миллиона просмотров.
Спасибо, что смотрите, комментируете и делитесь❤️
Ну и почти 5 000 подписчиков! Если ещё не подписаны – сейчас самое время 😉
😉 Канал Amplicode
За чуть больше чем год видео Amplicode на YouTube собрали уже более миллиона просмотров.
Спасибо, что смотрите, комментируете и делитесь
Ну и почти 5 000 подписчиков! Если ещё не подписаны – сейчас самое время 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥28🤩9 7🎉3
Начиная со следующего релиза Connekt поддерживает OAuth 2.0 прямо из коробки. Указываете client ID, secret и эндпоинты.
Connekt сам:
Работает с Google, Keycloak, Yandex и другими провайдерами. Без Postman-хака с ручной подстановкой токена. Без лишнего кода. Без рутины. Без боли.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤10👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Аудит важен в любом серьёзном приложении, но его легко реализовать неправильно.
Amplicode помогает избежать ошибок благодаря:
@CreatedBy
, @CreatedDate
, @LastModifiedBy
, @LastModifiedDate
@EnableJdbcAuditing
AuditorAware
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4🎉1
Forwarded from OpenIDE
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Друзья, у нас отличные новости — вышла новая версия OpenIDE!
Что изменилось в версии 2025.1
• Обновлена сама платформа до 2025.1
• Плагин Lombok теперь входит в базовую поставку
• В Windows-версии появилась возможность автоматической установки Git
• Исправлены неточности перевода интерфейса
• При установке плагинов, собранных в OpenIDE, больше не всплывают предупреждения
Статус плагинов:
Часть плагинов мы собираем сами, и не все успели обновить к релизу.
Уже доступны:
Пока недоступны:
😌 Незаметно присоединяйтесь ©
Что изменилось в версии 2025.1
• Обновлена сама платформа до 2025.1
• Плагин Lombok теперь входит в базовую поставку
• В Windows-версии появилась возможность автоматической установки Git
• Исправлены неточности перевода интерфейса
• При установке плагинов, собранных в OpenIDE, больше не всплывают предупреждения
Статус плагинов:
Часть плагинов мы собираем сами, и не все успели обновить к релизу.
Уже доступны:
• Scala
• Lombok
• .env files
• Python
• Protocol Buffers
• MCP Server
• Material Theme UI Lite
• Nginx Configuration
Пока недоступны:
• Terraform & HCL
• macOS Keymap
• Android
• ReSharper Keymap
• Error Prone Compiler
• Plugin DevKit
• Xcode Keymap
• Ant
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥11❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Интеграция с DBeaver в следующем релизе Amplicode станет ещё удобнее: теперь результаты выполнения SQL-запросов будут отображаются внутри IDE.
Не нужно переключаться в DBeaver, чтобы посмотреть данные — всё видно сразу, будь то обычный SQL, метод Spring Data репозитория или таблица из панели Amplicode Explorer.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39👍11❤6
Forwarded from Spring АйО
Какой IDE пользуетесь для разработки на Java/Spring?
Anonymous Poll
25%
IntelliJ IDEA Community
43%
IntelliJ IDEA Ultimate (получаю обновления, сижу на актуальной версии)
18%
IntelliJ IDEA Ultimate (сижу на старой версии с perpetual лицензией)
2%
IntelliJ IDEA EAP
12%
OpenIDE
10%
Giga IDE
5%
VS Code
3%
Другой вариант, напишу в комментариях
👍9🔥4❤3
😎 Работа с объектами в HTTP-запросах
Работать с объектами намного удобнее и безопаснее, чем со строками: IDE подсказывает поля, типы проверяются на этапе компиляции – меньше шансов ошибиться.
Connekt, построенный на Kotlin DSL, позволяет использовать все эти преимущества при работе с HTTP-запросами — результат можно сразу сохранять в объект, а затем передавать его дальше по сценарию, например, в следующий шаг авторизации или повторно использовать данные без лишнего парсинга.
😏 Больше фич для работы с HTTP
Работать с объектами намного удобнее и безопаснее, чем со строками: IDE подсказывает поля, типы проверяются на этапе компиляции – меньше шансов ошибиться.
Connekt, построенный на Kotlin DSL, позволяет использовать все эти преимущества при работе с HTTP-запросами — результат можно сразу сохранять в объект, а затем передавать его дальше по сценарию, например, в следующий шаг авторизации или повторно использовать данные без лишнего парсинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥9👍7
Реактивный стек — мощный, но отлаживать его по-прежнему сложно.
В следующем мажорном релизе Amplicode начнет помогать в отладке реактивного кода: цепочки операций визуализируются, переходы между операторами понятны, стек вызовов — читаем.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤7👍7
This media is not supported in your browser
VIEW IN TELEGRAM
@Value
станет максимально простым и удобным #coming_soon Надо получить значение из
application.yml
или .properties,
но не хочется вручную писать @Value
и путь до свойства? Начиная со следюущего релиза Amplicode, можно просто начать печатать название нужного свойства в месте, где потребуется его значение, а остальное Amplicode сделает за вас
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥18👍9❤7 4