Обновить
181.94

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Переписывая историю: от инструментов версионирования БД к практике

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели3.8K

Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.

В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.

Читать далее

Умножение Монтгомери

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели15K

Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.

Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.

Про него я и хотел бы поговорить.

Читать далее

Как мы OpenAPI в приложениях используем (Spring Boot, Typescript)

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели3.3K

Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.

Контракты OpenAPI — спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.

Вдаваться в историю появления спецификации и ее развития не буду. Если кратко — эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml‑синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент‑серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI — 3.1.0 — является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.

Читать далее

Работа с информерами Java kubernetes client

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели2.9K

Привет, меня зовут Сергей, старший разработчик 80 уровня компании DataBlend (группа компаний GlowByte). Наша команда занимается разработкой продукта ClusterManager, который управляет поведением и мониторит состояния таких продуктов, как GreenPlum, ClickHouse, DWH, Nova и т. д.

Около полутора лет назад у нас появилась необходимость собирать и отображать в удобном виде и разрезах метрики и данные об объектах кластеров Kubernetes, в которых развернут продукт Nova.

Для этих целей был выбран официальный kubernetes‑client для Java.

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

Лучше всего для этой цели подходит механизм информеров kubernetes‑client.

И сейчас мы посмотрим, с какой стороны их лучше начинать есть.

Читать далее

Устойчивость микросервисных Spring приложений: роль аннотации @Transactional в предотвращении утечки соединений

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.7K

В новом переводе от команды Spring АйО вы узнаете, как аннотация @Transactional помогла решить проблему с утечкой соединений и обеспечила стабильность системы.

Читать далее

Мониторинг бизнес-процессов в Camunda 8. Настраиваем дашборды и визуализируем данные

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели4.7K

Привет, Хабр. Я Вероника, java-разработчик, который юзает Camunda без слез. Здесь моя первая статья, в которой мы переложили BPMN диаграмму на java код и реализовали небольшой процесс. 

На этот раз пишу о мониторинге бизнес-процессов. Давайте представим: мы зарелизились в прод. Всё работает прекрасно. Но тут приходит бизнес, которому нужны графики, диаграммы и отчеты. Что делать?

Читать далее

Java Digest #14

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.1K

Всем привет! 👋 👋 👋 👋 Мы — Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске — самые свежие новости из мира Java и сопутствующих технологий. JDK 23 изменяет политику обработки аннотаций, требуя дополнительной опции командной строки. Вышла новая версия Spring Framework 6.2.0-M4 с улучшениями в ядре, тестировании и поддержке Protobuf 4.x. Maven Central вводит ограничения на загрузку для крупных проектов. Новые сборки раннего доступа JDK 24 и Leyden, а также еще много всего интересного. Приятного чтения!

Читать выпуск 14

Liquibase + Spring Boot: настройка и написание миграций баз данных

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели12K

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Liquibase в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы БД, а также дополнить уже существующие changelog файлы новыми скриптами миграции вместе с Amplicode!

Читать далее

Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели11K

Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.

Читать далее

Почему похудеть возможно только с помощью программирования?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

В этой статье будет две части: техническая, про приложение на Java, написанное для AWS, и демагогически разглагольствующая про похудение, мотивацию и как это связанно с программированием. Если вам интересна только техническая часть, то можете прыгнуть к парраграфу "Техническая часть", а если нет, то приглашаю к части рассужденческой:

Читать далее

Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.5K

В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье Михаил рассмотрел компилятор K2, а здесь сфокусировался только на процедуре миграции.

Читать далее

Смена профессии в 33: стать разработчиком за 2 года

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели15K

Привет! Хочу поделиться своим опытом становления Java разработчиком.

Немного об авторе: на момент написания статьи мне 36 лет, в ИТ-сфере — с 2009 года и начинал я с системного администрирования продуктов Microsoft(сервера, БД, приложения) в компании АО «Национальный центр вертолётостроения им.М.Л.Миля и Н.И.Камова».

Программирования в моей работе не было, из отдалённо схожего могу отметить владение разве что скриптовыми языками типа PowerShell, Bat, vbs, которые активно использовал при работе с системой управления ИТ-инфраструктурой MS System Center Configuration manager (теперь Endpoint).

Работал я довольно эффективно и за 11 лет успел побывать и руководителем отдела, и заместителем начальника службы ИТ.

Профильное образование «Прикладная информатика» я получил только в 2017 году, зато во время работы в АО «НЦВ им.М.Л.Миля и Н.И.Камова» успел пройти более 20 курсов по вышеуказанным продуктам и не только.

Мысли стать программистом начали посещать году в 2018, но постоянное повышение по карьерной лестнице, вместе с увеличивающейся на глазах зарплатой делали своё дело и оставляли меня в зоне комфорта — так мне тогда казалось.

Довольно быстро пришло осознание, что моя основная работа — это бесконечные совещания и тонна документооборота, при этом по настоящему я испытывал удовольствие только производя программный продукт, приносящий пользу.

В конце 2020 года такое положение дел меня перестало устраивать и я нашёл себе самый «жирный», как мне показалось на тот момент, курс по разработке на языке Java.

Что я нашёл?

Почему String Templates не будет в Java 23?

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.8K

Неожиданный поворот в поддержке StringTemplates в JDK 23. Команда Java решила отказаться от функциональности, которая есть в большинстве современных языках программирования. Почему так произошло? Кажется, из-за слишком большой гибкости, которую заложили на ранних этапах разработки, а также, нежелания просто сделать “синтаксический сахар” для строковой интерполяции. А чего же хотели разработчики на самом деле? Нам кажется, что все-таки - последнего. Сообщество Spring АйО представляет перевод почтовой переписки Гэвина Бирмана и Брайана Гоеца, в которой решается судьба Spring Templates. 

Читать далее

Ближайшие события

Присматриваемся к Kafka tiered storage — 2

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели1.1K

Добрый день, уважаемые ИТ-ники. На связи Михаил Голованов. Продолжаем увлекательные эксперименты с tiered storage в Apache Kafka. В этот раз починим то, что не смогли починить ранее (сборка реализации AivenOpen) и поэкспериментируем с реализаций для Minio S3 в качестве бекэнда. Как и в прошлый раз, теория будет перемежаться практикой.

Поехали

Запуск встроенного LDAP на базе OpenDJ в Spring Boot приложении

Время на прочтение4 мин
Охват и читатели1.6K

В этой статье мы настроим Spring Boot приложение со встроенным LDAP на базе LDAP сервера с открытым исходным кодом OpenDJ. Это может понадобиться как для тестов, так и для продуктивного использования. Например, для аутентификации через LDAP.

Читать далее

Как расширить JPA для работы с PostgreSQL

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.5K

Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось устранить большое количество проблем, связанных с неоптимальной интеграцией функциональности PostgresSQL в Java-приложения. В этой cтатье мы максимально подробно разберем, как можно настроить JPA для эффективной работы с PostgreSQL. Всем, кому интересна эта тема, добро пожаловать под кат)

Читать далее

Что нового в документации YDB во втором квартале 2024 года

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.4K

Документация YDB продолжает развиваться, отвечая на растущие потребности своей разнообразной аудитории. Наша цель остаётся прежней — улучшение ясности, доступности и глубины предоставляемой информации. В этом квартале мы ввели значительные обновления и новые разделы.

Читать далее

Мониторим и нагружаем приложения Jmix

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели2.1K

Инструменты мониторинга работы приложений могут быть полезны не только DevOps’ам, но и разработчикам для исследования производительности приложения в поиске, например узких мест в его работе, поэтому в данной статье мы не только настроим мониторинг для Jmix-приложения, но и подготовимся к его синтетическому нагрузочному тестированию. Особенностью платформы Jmix в силу того, что она использует фреймворк Vaadin, является тот факт, что работа UI интегрирована с бекендом, но это также значит и то, что и метрики можно использовать прозрачно, т.е. замерять ими работу интерфейсного слоя. 

Читать далее

Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut.

Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое слово volatile и паттерн immutable.

Читать далее

Spring Boot Starter: практически, принципиально и подробнее. Часть 2

Время на прочтение10 мин
Охват и читатели6.2K

Продолжаю рассказывать о Spring Boot Starter. В прошлой части мы создали принципиальное решение, которое позволит запустить стартер как подключаемую к другому Spring-Boot-приложению библиотеку.

В этой части мы разберемся с зависимостями, стандартными и кастомными аннотациями.

Читать далее

Вклад авторов