Обновить
225.26

Java *

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

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

Что я знаю про онлайн редактирование

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

Привет! Меня зовут Сергей и я техлид. Причем уже долгое время. За время своей работы я успел поработать с разными решениями, надо разными проектами и столкнуться с разными задачами. Проекты я всегда старался выбирать свежие. Когда надо построить большую и сложную систему с нуля.

Идея этой статьи пришла ко мне год назад. При посещении Highload я был у стенда одной большой компании, которая очень любит алгоритмы. На нем предлагалась решить архитектурную задачу за мерч. Когда дошла очередь до меня, мне выпала задача — построить онлайн редактор с нуля. Это отличный вариант! Как раз такое мне уже приходилось проектировать. В процессе решения, автор задачи сказал, что я усложняю и вообще онлайн редктор — это гораздо проще. После разбора нескольких корнер кейсов, он согласился, что это всего лишь первый взгляд. Далее уже достаточно долго мы обсуждали а как вообще можно построить онлайн редактор. В тот момент и появилась идея поделиться своим опытом публично, но вот только сейчас дошли руки. Итак, приступим.

Читать далее

Разрабатываем spring-boot Starter адаптера EGTS протокола для передачи телеметрии курьеров в РНИС

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

Привет! Меня зовут Игнат. В этой статье я расскажу про разработку адаптера для работы с EGTS-протоколом (Era Glonass Telematics Standard), который можно использовать для передачии телеметрии курьеров из курьерских служб в РНИС (РНИС - государственная информационная система «Единая региональная навигационно-информационная система города Москвы»). Код написан на Kotlin и подходит для использования в Java и Kotlin приложениях. Простота подключения модуля привела к идее вынести проект в опенсорс, чтобы его могли использовать курьерские службы с бэкендом на jvm. Поехали!

Читать далее

Jakarta Data. Что это означает для Java-сообщества

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

Большинство enterprise-приложений работают с БД в том или ином виде. Чаще всего в качестве БД выступает реляционная DBMS, например, PostgreSQL или Oracle. Относительно часто для доступа к данным используют Hibernate. Ранее он предлагал только одну спецификацию — JPA (Java Persistence API), она же Jakarta. Но теперь Hibernate реализует ещё и Jakarta Data.

Jakarta Data — это новая спецификация под зонтиком проекта Jakarta EE (как и JPA), которая упрощает интеграцию данных в корпоративных Java-приложениях. Обе эти спецификации разрабатывает Eclipse Foundation, и в частности Gavin King, создатель Hibernate.

Большинство разработчиков привыкли работать с Hibernate именно через Spring Data JPA. Изначально, когда только обсуждали спецификацию Jakarta Data, Spring Data (не обязательно JPA) была одним из тех проектов, который, в перспективе, мог бы реализовать спецификацию Jakarta Data. Но этого не произошло, и, несмотря на то, что изначально команда Spring Data была вовлечена в процесс создания спецификации, они отказались от идеи реализовывать Jakarta Data, и та стала развиваться самостоятельно. Сегодня Jakarta Data применяют в Hibernate, Open Liberty и ряде более мелких решений. Как же так вышло?

Меня зовут Михаил Поливаха, я практикующий инженер и активный коммитер Spring Data. В этой статье я расскажу об особенностях Jakarta Data, как она появилась и чем отличается от конкурентных решений. Я также расскажу, что помешало команде Spring Data реализовать Jakarta Data, и что же нас ждёт дальше.

Читать далее

Как мы сделали AI-агента и пользуемся им на практике

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

Привет, Хабр! В последнем обновлении Explyt мы добавили AI-агента для написания кода. В этой статье расскажем, что он умеет и как мы сами его используем.

Пару месяцев назад в нашем плагине не было AI‑агента, а был только ассистент для генерации тестов. И пока агент не появился, в работе мы использовали другие известные плагины. Лично мне очень нравился Copilot, из‑за своего минималистичного интерфейса и контроля за контекстом. Однако фичи копайлота в первую очередь доезжали до VSCode, а пользователю IntelliJ IDEA приходилось дожидаться их месяцами. Поэтому для прототипирования и скаффолдинга, написания бойлерплейтного кода с помощью AI‑агентов мне приходилось переключаться между любимой средой разработки и IntelliJ, что было несколько неудобно.

С появлением своего AI‑агента пошло легче: можно было нажаловаться тимлиду Серёже, который затем осознанно и вдумчиво хакал очередной юзкейс. Со временем отладили настолько, что использовать внешние инструменты не приходится, свой стал работать достаточно хорошо. Дальше покажем, что он может, расскажем о приятных фишках, которые мы сделали для себя, чуть‑чуть о реальном опыте работы с ассистентом.

Читать далее

Гайд по использованию Spring GraphQL. Часть 2

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

Привет, Хабр!

Меня зовут Дмитрий, я бэкенд-разработчик в SENSE и последние 10 лет пишу серверную часть на Java. Эта статья — продолжение первой части гайда по Spring GraphQL, где мы с нуля подняли проект и подключили GraphQL к Spring Boot.

Теперь углубимся в разработку полноценного API: создадим более сложную схему с вложенными типами и связями между ними, реализуем запросы с фильтрацией, добавим мутации для изменения данных и затронем важные аспекты производительности.

Поехали!

Читать далее

Безопасность приложений: инструменты и практики для Java-разработчиков

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

Тема безопасной разработки программного обеспечения интересует всё большее количество разработчиков и руководителей. Дополнительным стимулом стал вышедший в конце 2024 года обновлённый ГОСТ Р 56939, в котором описано 25 процессов (мер) для построения безопасной разработки. Это хороший список, но что он означает на практике, например, для Java-разработчиков? Поговорим о сути некоторых процессов и инструментарии.

Статья является переработкой совместного вебинара компаний ООО "ПВС" и АО "АКСИОМ". Текстовый вариант содержит дополнительные ссылки, а некоторые моменты рассмотрены более подробно. Полную запись вебинара доступна здесь: "Безопасность приложений: инструменты и практики для Java-разработчиков".

Статья построена так же, как и вебинар: первую часть подготовил Андрей Карпов, затем слово передаётся Алексею Захарову (@AlexZ0).

Читать далее

Maven Central ограничивает пропускную способность: что важно знать в 2025 году

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

Команда Spring АйО подготовила статью про Rate Limit в Maven Central — один из тех инфраструктурных проектов, без которых современная JVM-экосистема уже немыслима. Здесь живёт подавляющее большинство библиотек и инструментов для Java, Kotlin, Scala и Android. После закрытия JCenter в 2021 году он окончательно стал де-факто центральным публичным репозиторием, куда в итоге попадает практически каждая новая библиотека.

Читать далее

Binary Heap на примере PriorityQueue в JAVA

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

Двоичная куча (binary heap) — это структура данных, которая представляет собой бинарное дерево, удовлетворяющее определённым условиям:

Читать далее

Android обновление API SDK до 35 версии в сжатые сроки, в большом легаси-проекте

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

Все мы (разработчики Android-приложений), не так давно получили письмо вида:
Редко подобные письма становятся проблемой, однако при определенных условиях - это может существенно потрепать вам нервы.

Костыль-решение

Как мы монолит пилили

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

Кто‑то говорит, что изолированные сервисы — обязанность любой команды и любой проект, даже стартап, должен быть написан только так, другие говорят, что это только модное направление, куда все побежали, плохо разобравшись и вообще, performance — наше все. Как всегда, правда где‑то посередине. В этой статье я хотел бы осветить проблемы перехода от монолита к микросервисам, рассказать про свой опыт и трудности, которые команде пришлось преодолевать.

Читать далее

Пользовательские аннотации PVS-Studio теперь и в Java

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

Начиная с версии PVS-Studio 7.38, Java анализатор вслед за двумя братьями C# и C++ поддерживает пользовательские аннотации в формате JSON. Зачем они нужны и что с ними можно делать, рассмотрим в этой статье.

Читать далее

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

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

Работа в IT может быть по-настоящему вредной. Не из-за дедлайнов, багов или багрепортов. Главная угроза — сидячий образ жизни. По 8 и более часов в день мы находимся в одном и том же положении, что негативно сказывается на осанке, кровообращении, работе мышц и даже когнитивных способностях. Чтобы ум оставался продуктивным, тело должно быть в порядке. Ведь даже самый продвинутый искусственный интеллект не будет работать без надежного железа, а человеческий интеллект работает только в здоровом теле.

Одним из лучших видов физической активности для «сидячих» профессионалов считается плавание. Почему? Давайте разбираться.

Читать далее

Конфигурация Spring Security на пальцах

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

В новом переводе от команды Spring АйО мы рассмотрим решение для регистрации и аутентификации пользователя через клиентское JavaScript-приложение с использованием инфраструктуры Spring Security, а также access и refresh токенов.

Существует множество базовых примеров работы со Spring Security, поэтому цель данной статьи — более подробно описать возможный процесс с помощью блок-схем.

Читать далее

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

Как читать тело HttpServletRequest в Spring Boot несколько раз

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

Если поискать в интернете решение задачи «How to read HttpServletRequest multiple times», то можно найти множество ответов - и на Stack Overflow, и на Baeldung. Но все ли они подходят для всех случаев?

Читать далее

Java vs Kotlin: у кого больше преимуществ в 2025 году

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

В 2018 я впервые познакомился с Kotlin, и он мне практически сразу понравился. Да и как можно не полюбить язык, названный в честь тотемного животного всех программистов? Шучу, на самом деле в честь острова.

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

Читать далее

StarRocks 3.5: Snapshot, Load Spill, партиции, MV, транзакции, безопасность

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

StarRocks 3.5 приносит точечные улучшения по надёжности, производительности и безопасности: кластерные Snapshot для DR в архитектуре shared-data (разделение хранения и вычислений), оптимизацию пакетной загрузки (Load Spill) для сокращения мелких файлов и пропуска Compaction, более гибкое управление жизненным циклом партиций (слияние по времени и автоматический TTL), многооператорные транзакции для ETL, ускорение запросов по озеру данных через автоматические глобальные словари, а также поддержку OAuth 2.0 и JWT.

Читать далее

Kotlin для бэкенд разработки: преимущества и примеры

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

Kotlin, современный язык программирования от JetBrains, уже давно зарекомендовал себя не только в Android‑разработке, но и как мощная альтернатива Java для бэкенд‑разработки. Kotlin полностью совместим с Java, работает на JVM и предлагает более лаконичный, безопасный и выразительный синтаксис.

Читать далее

Java Digest # 27

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

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

Лето в разгаре, а Java-мир не останавливается ни на день. Пока кто-то разъезжается в отпуска, инженеры Oracle и энтузиасты экосистемы выкатывают один апдейт за другим. В этом выпуске вас ждут: JEPs для JDK 25 и 26 — от стабильного JFR до удаления Applet API, милестоны Project Reactor и Spring Framework 7, обновления от Micronaut, Apache Camel и GraalVM, день рождения Kotlin и революционные новости от JetBrain, пачка интересных видео с Java One’25 и Inside Java, обзоры книг, туториалов и просто полезные статьи на каждый день. А еще 30 августа нас ждет встреча на JVM Day в Москве!

Заваривайте кофе и читайте — от инженерных мелочей до изменений, которые могут повлиять на архитектуру ваших приложений. Поехали! 🚀

Читать выпуск №27

Kafka умеет синхронно. В Spring Boot

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

Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу?

Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой ReplyingKafkaTemplate, топиками для ответа и тайм-аутами.

Читать далее

Уязвимости XXE в разрезе Java

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

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

Читать далее

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