В новой статье из цикла "Как жить без IntelliJ IDEA" команда Spring АйО изучила альтернативы DB-клиенту от JetBrains, входящему в состав Ultimate и полюбившемуся многим разработчикам.
Мы также постарались выяснить, насколько альтернативные инструменты удобны и эффективны на практике.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/866500/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23⚡6🔥5👎3😁2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁50👍7🔥4
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Расширение Spring Data репозиториев стало ещё проще!
– Закладки в Spring Initializr: создавайте проекты быстрее!
– Горькая правда о программировании с использованием ИИ
– Как жить без IntelliJ IDEA? Часть №4. Database Client
– Компания Axiom JDK оптимизировала Java для архитектуры RISC-V
– Joker опубликовал доклад "Владимир Плизга — Путеводитель по анализу памяти JVM-приложений"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7⚡4🔥3
Компания Haulmont совместно с Группой Астра и Axiom JDK анонсировала некоммерческое партнерство для развития открытой российской среды разработки – OpenIDE.
Почему это хорошая новость для российских разработчиков? Чем OpenIDE отличается от IntelliJ IDEA CE или уже существующей российской GigaIDE? Какие языки будут поддерживаться? Что со Spring? Когда релиз?
#breaking_news #openide
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37❤18🤯11👍7👎3😁2🤔2⚡1
Какие брокеры сообщений используете в продакшене?
Anonymous Poll
78%
Apache Kafka
35%
RabbitMQ
11%
ActiveMQ
3%
Amazon SQS (и подобные)
1%
Google Cloud Pub
1%
Apache Pulsar
4%
Redis Streams
6%
IBM MQ
9%
Пользуемся СУБД как брокером сообщений
3%
Свой вариант напишу в комментарии
👍7❤4🔥4⚡1
@Subselect
: преимущества, недостатки и альтернативы в HibernateВ современных приложениях иногда возникает необходимость получать данные из сложных запросов и аннотация
@Subselect
в Hibernate может стать отличным решением. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете как использовать
@Subselect
, какие существуют альтернативы и в чём заключаются их преимущества и недостатки.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤6👍6
Forwarded from Amplicode
В новом видео вы узнаете:
▪︎ Почему мы решили разработать собственный HTTP-клиент
▫︎ Чем он выделяется на фоне альтернативных решений
▪︎ Какие возможности открывает для Spring-разработчиков и не только
▫︎ Как писать запросы разного уровня сложности
▪︎ И в каком направлении мы будем развивать наше решение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍12⚡5👎1
Работаете с Gradle? Dependency Analysis Gradle Plugin помогает не только находить лишние зависимости, но и автоматически исправлять проблемы с ними.
Механизм
fixDependencies
переписывает скрипты сборки, чтобы они соответствовали реальной структуре проекта. Последние обновления сделали процесс анализа ещё точнее, а работу с Kotlin DSL — проще и надёжнее. Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤6🔥5👌3
В начале декабря эксперты сообщества Spring АйО приняли участие в Java Rock Stars Meetup.
Для тех, кто не смог присутствовать на мероприятии, прикрепляем ссылки на записи докладов.
🧢 Михаил Поливаха — "Spring Data JPA: всё сложнее, чем кажется"
🎾 Павел Кислов — "Spring Security: как дела?"
P.S. А те, кто были оффлайн, - ищите себя в фотоальбоме 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍14❤5
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Опрос: Какие брокеры сообщений используете в продакшене?
– Вся правда о @Subselect: преимущества, недостатки и альтернативы в Hibernate
– Gradle: Исправление зависимостей в один клик
– Записи докладов с Java Rock Stars Meetup
– Компания Haulmont совместно с Группой Астра и Axiom JDK анонсировала некоммерческое партнерство для развития открытой российской среды разработки – OpenIDE
– Новый HTTP-клиент от Amplicode на Kotlin Script для Spring-приложений и не только
– Axiom JDK: Как мы делаем Java: 30 лет истории российской разработки
– Joker опубликовал доклад "Владимир Ситников — Обратная совместимость в Java-мире"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥5❤3
🧠 AI-ассистент с помощью Spring AI
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
📚 Читайте на Хабре: https://habr.com/ru/companies/spring_aio/articles/869080/
Команда Spring АйО перевела туториал, в котором рассматриваются возможности Spring AI для интеграции с LLM.
Вы узнаете, как использовать API Function Calling для выполнения задач на естественном языке, генерировать ответы в JSON-формате и сохранять контекст диалога.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥10❤4
🏁 Как жить без IntelliJ IDEA? Часть 5. Заключение
В предыдущей статье "Как жить без IntelliJ IDEA" мы рассмотрели, есть ли альтернативы полюбившейся многим возможностям Ultimate общаться с базой данных через удобный UI прямо в среде разработки.
Наступил конец года и вместе с ним завершается наш цикл статей. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/869354/
В предыдущей статье "Как жить без IntelliJ IDEA" мы рассмотрели, есть ли альтернативы полюбившейся многим возможностям Ultimate общаться с базой данных через удобный UI прямо в среде разработки.
Наступил конец года и вместе с ним завершается наш цикл статей. Давайте коротко перечислим итоги каждой части, посмотрим, что мы пропустили, а также попробуем представить, как бы выглядело идеальное решение.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/869354/
👍18🔥6❤5👎1
С выходом JDK 24 Stream API станет еще мощнее благодаря новому инструменту — Stream Gatherers. Этот подход позволит разработчикам создавать собственные промежуточные операции в потоках, повышая гибкость и выразительность программного кода.
Почему это важно?
До сих пор Stream API предлагал фиксированный набор операций, таких как map, filter, distinct, и другие. Однако некоторые задачи не могли быть легко решены встроенными методами. Например, если вы хотите выделить уникальные строки на основе их длины, это требовало сложных обходных путей:
record DistinctByLength(String str) {
@Override public boolean equals(Object obj) {
return obj instanceof DistinctByLength other && str.length() == other.str.length();
}
@Override public int hashCode() {
return str.length();
}
}
var result = Stream.of("foo", "bar", "baz", "quux")
.map(DistinctByLength::new)
.distinct()
.map(DistinctByLength::str)
.toList();
// result ==> [foo, quux]
С выходом фичи задача будет решаться гораздо проще:
var result = Stream.of("foo", "bar", "baz", "quux")
.gather(Gatherers.distinctBy(String::length))
.toList();
// result ==> [foo, quux]
Как работает Gatherer?
Gatherer — это интерфейс, задающий логику преобразования элементов потока. Его работа строится на четырех функциях:
1. initializer — создает объект для хранения состояния.
2. integrator — обрабатывает элементы потока, при необходимости записывая данные в состояние.
3. combiner — объединяет результаты для параллельных потоков.
4. finisher — выполняет финальные действия, такие как добавление оставшихся данных.
Например, gatherer windowFixed группирует элементы в списки фиксированного размера:
Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9)
.gather(Gatherers.windowFixed(3))
.toList();
// result ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Что это дает разработчику?
1. Гибкость: Возможность определять операции любой сложности.
2. Параллельность: Поддержка многопоточности при использовании combiner.
3. Снижение сложности: Простое выражение сложных операций без использования обходных решений.
4. Поддержка Stateful Stream Processing подхода
Заключение
JEP 485 — это достойный вклад в развитие Stream API, предоставляющий разработчикам инструменты для создания более выразительных и производительных потоков.
🔗 С полным описанием JEP можно ознакомиться по ссылке: https://openjdk.org/jeps/485
#Java #JEP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍21❤7🤔6⚡2👎1
Forwarded from Amplicode (Aleksandr)
Каждый год мы проводим анализ использования технологий, связанных с экосистемой Spring.
Краткие результаты 2024 года в сравнении с прошлым годом:
1) Десять наиболее популярных технологий 2023 года остались в топе и в 2024 году.
2) Количество проектов на Spring Boot выросло в 2 раза. С бóльшей долей вероятности это связано с растущей популярностью Spring Boot.
3) Облачные технологии всё также продолжают набирать обороты в своей популярности.
4) Наблюдается явный рост использования микросервисных архитектур.
5) Рост Spring Data JDBC. Объяснить это можно несколькими причинами, но основная - стремление к упрощению небольших проектов в связи с высоким порогом входа в Hibernate, а также высокой ценой поддержки таких проектов.
6) Заметное развитие AI-технологий наподобие Spring AI. Точные цифры приведём уже в следующем году, ввиду новизны данных технологий.
Все данные были получены путем анализа зависимостей, используемых в проектах на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍13❤6