Как стать автором
Поиск
Написать публикацию
Обновить
171.74

Java *

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

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

Maven: verify или clean install?

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

Если вы автоматически пишете mvn clean install при сборке проекта, то вы такой точно не один — эта команда прочно укоренилась в привычке Java-разработчиков. Но действительно ли она всегда необходима? Что, если вместо неё использовать verify?

В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования clean и install. А главное — попробуем понять, когда можно (и нужно) обойтись без install и clean, чтобы ускорить сборку и сократить расходы памяти.

Читать далее

Новости

Баги носят данные. Проверка Apache NiFi

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров550

Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache NiFi.

Читать далее

UUIDv7 в PostgreSQL 18

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

Совсем скоро (в конце сентября) выйдет PostgreSQL 18. Релиз готовит важные обновления — от асинхронного I/O до EXPLAIN с показателями CPU и WAL. 

Довольно громкая новинка — нативная поддержка UUIDv7, нового стандарта уникальных идентификаторов, идеально подходящих для B-tree индексов. 

В новом переводе от команды Spring АйО рассказывается, почему это важно, как работает UUIDv7 и чем он лучше UUIDv4 для современных распределённых систем.

Читать далее

Pro Деньги. JSR-354

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров841

Достаточно часто в реализации сервисов есть необходимость оперировать денежными единицами, хранить их в БД, обмениваться по API и выполнять конвертацию

Читать далее

Как мы создали курс по разработке мобильных игр, в котором Java оживает, а наставник становится другом

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

В этом году мы запустили новую образовательную программу «Разработка мобильных игр» для школьников 8–9 классов — и она получилась по-настоящему особенной. Это не просто очередной курс по программированию или геймдеву: мы объединили код, персонажей, физику и истории в одно целое, сделав обучение настоящим приключением. Вместо сухих лекций, ребята начинают стажировку в виртуальной гейм-студии, где их сопровождает наставник Максим. Он не просто рассказывает про программирование, а делится эмоциями, личными историями и шутками про баги. Объясняет сложные вещи «на пальцах», вместе с учениками разбирает задачки и отвечает на вопросы в формате встреч (лонгридов) с примерами кода и иллюстрациями. Такая история «по ту сторону экрана» сильно вовлекает учеников: сторителлинг помогает им лучше усваивать материал и понимать, зачем всё это нужно.

Читать далее

Пять производительных паттернов кэширования, которые ускорят ваш микросервис

Время на прочтение6 мин
Количество просмотров4.1K

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

Читать далее

Нововведения Java 25

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

Java не стоит на месте и продолжает активно развиваться. Скоро выйдет уже 25-я версия языка. В этом релизе изменили работу с boilerplate-кодом и конструкторами, а также отказались от поддержки устаревших систем. Обо всех этих и других нововведениях расскажем в статье.

Читать далее

Итоги лета: Фидонет, Java, моя жизнь

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров593

Привет, это oldzoomer, он же Егор Гаврилов. И сегодня подведу итоги лета - какие были достижения на почве Фидонета, Java, и прочего.

Читать далее

Что нового в Maven 4?

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

В новом переводе от команды Spring АйО рассматриваются основные изменения, которые ждут нас в новой версии Maven. Изменения затронули performance, POM, новый тип упаковки, улучшения для подпроектов и много другое. 

Читать далее

Testcontainers: путь к надежным интеграционным тестам в Spring Boot

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров2K

Мы знаем, что разработка надежных приложений требует тщательного тестирования. Многие программисты и даже целые компании склонны полагаться исключительно на юнит-тесты, считая, что этого достаточно для обеспечения качества их приложений. Однако такой подход часто демонстрирует свои минусы на этапе вывода функционала в тестовый контур, а далее уже в продакшн. Где-то не заполнилось поле, которое должно быть Not Null, где-то не создался Kafka-consumer из-за опечатки в конфиге. Сколько раз такие проблемы возникали в вашей практике и приводили к тому, что нужно срочно делать Pull Request с исправлением очевидной ошибки, испытывая стыд перед коллегами за то, что совершили такую элементарную оплошность? Сколько раз компоненты, прекрасно работающие по отдельности, выбрасывали пачки исключений при совместной работе?

Избежать таких сценариев помогут интеграционные тесты. И сегодня мы поговорим об одном из инструментов интеграционного тестирования – TestContainers.

Читать далее

Java Digest #28

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

Всем привет! 👋👋👋👋👋

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

Соскучились по AoT-компиляции? Даже если нет, упоминаний о ней не избежать. Java 25, Spring 7, Spring Boot 4, Gradle 9.0.0, Intellij IDEA 2025.2, Amplicode 2025.2, что-то релизнулось, что-то только собирается, но обо всем уже нашли статьи и собрали для вас. 

А теперь к громким новостям. Нидерландские ученые убили SQL — именно так мог бы звучать заголовок к научной статье о том, как 2,5 млн строк кода на PL/SQL переводили на Java с помощью LLM.

Читать далее

Что скрывает ваш API Gateway

Время на прочтение7 мин
Количество просмотров2.3K

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

Хорошо спроектированный и надежный API — это ворота, через которые ваши данные и функциональность взаимодействуют с внешним миром: мобильными приложениями, веб‑сайтами, партнерскими сервисами и даже внутренними клиентами.

Читать далее

Как прокачать Java-приложения без миграции: Axiom JDK Express теперь на JVM 21

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

Мы знаем, как это бывает: проект на Java 8 живёт уже десятый год, релизить страшно, тестов мало, миграция пугает, а система критичная. И вот бизнес хочет «ускорить и не трогать».

Читать далее

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

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

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

Несмотря на высокий интерес компаний к генеративному ИИ и его потенциал для роста выручки, подавляющее большинство корпоративных проектов терпит неудачу. Новый отчёт MIT указывает, что только 5% пилотных внедрений приносят ощутимый финансовый эффект. В переводе от команды Spring АйО рассмотрим основные причины, которые кроются не в самих моделях, а в ошибочной интеграции, неправильных приоритетах и нехватке адаптации под бизнес-процессы.

Читать далее

Туториал kafka + springboot + docker

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

Я часто работаю с Apache Kafka, но внезапно поймал себя на мысли, что совсем не понимаю как она устроена. Тогда я решил поднять кафку локально и поиграться с ней, а чтобы точно понимать что я делаю - написал эту статью.

Читать далее

HistoryHelper — плагин для DBeaver, который генерирует history-таблицы и триггеры за пару кликов

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

HistoryHelper - плагин для DBeaver

Зачем и почему?

Работая с БД часто приходится вручную писать SQL для создания history-таблиц, которые хранят "историю" о каждой записи из таблицы. То есть, если запись создана/изменена/удалена, для неё создается новая запись в таблице с окончанием "_hist" или "_history".

Задача знакомая, но крайне рутинная: для каждой таблицы нужно вручную писать SQL, проверять, чтобы все колонки были учтены, тип колонок был корректным, и не было опечаток.

Поэтому, я решил сделать небольшой плагин для DBeaver, который предоставляет удобное меню выбора колонок и событий.

После нескольких выходных дней получилась минимальная реализация, которой хочу с вами поделиться.

В данный момент реализован самый простой функционал.

Читать далее

Как мы разработали простой, но эффективный инструмент для HR

Время на прочтение4 мин
Количество просмотров1.8K

Привет, Хабр! Меня зовут Сергей Филатов и я работают в R‑Style Softlab. Сегодня расскажу о разработке с помощью Jmix удобного коннектора для HR‑подразделения, который поможет менеджерам работать с наймом сотрудников.

Мы проанализировали типовой процесс найма сотрудников, который происходит в управлениях по работе с персоналом в разных компаниях и предложили свое решение для автоматизации: простой внутренний инструмент для распознавания и заполнения карточек в «1С. Зарплата и Управление персоналом» и дальнейшей работы с этими сведениями.

Модуль умеет распознавать массив скан‑документов от группы соискателей, подгружать их в 1С, автоматически заполнять карточки соискателей и предоставлять возможность проверки заполненных сведений сотруднику Службы безопасности. Звучит просто, но это помогает экономить множество часов рабочего времени сотрудников HR и сотрудников СБ, которые заняты проверкой кандидатов, убирает рутину и позволяет вести подбор кандидатов быстрее (и эффективнее!).

Еще несколько преимуществ:

Читать далее

Как мы в Java-проекте UDT для PostgreSQL поддерживали

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров2.4K

PostgreSQL позволяет создавать хранимые функции и процедуры. И если при их вызове с простыми данными проблем не возникает, то сложные иерархические структуры могут вызвать трудности.

В статье мы разберёмся, как передавать и получать вложенные объекты в процедурах и функциях PostgreSQL с помощью JDBC.

Читать далее

Бесконечные циклы. Всё, что может пойти не так — пойдёт не так

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

Конструкции типа while(true) или for(;;) довольно опасные. Когда люди их пишут, то всегда надеются на то, что сработает условие выхода из цикла. Однако, на самом деле, как бы мы ни были уверены, такие конструкции лучше избегать.

В любом программном продукте есть баги, и те инварианты, на которые идёт расчёт, могут просто не сработать. Решение? Читайте в переводе от команды Spring АйО, где автор указывает примеры того, как с этими конструкциями поступили в Jooq и как с ними работает один из департаментов University of California.

Читать далее

Как мы Best Practices в Java анализатор внедряли

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

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

Читать далее
1
23 ...

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