Обновить
161.75

Java *

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

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

Интеграционное тестирование в Spring Boot: SourceCraft + Amplicode + Docker Compose Starter в деле

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

Когда одних юнит-тестов уже недостаточно, на сцену выходят интеграционные. В этой статье от команды Amplicode мы покажем, как протестировать REST API в Spring Boot с использованием современного стека: генерация тестов через Amplicode, автоматический запуск окружения с помощью Docker Compose Starter и поддержки со стороны LLM-инструментов от Яндекса.

Читать далее

Управление транзакциями в Spring: подробно о @Transactional

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

Команда Spring АйО перевела статью об использовании аннотации @Transactional для управления транзакциями в Spring и в различных фреймворках экосистемы Spring, а также о ее интеграции с Hibernate. После прочтения данной статьи вы будете гораздо лучше понимать основы работы с этой аннотацией, а также механизмы, которые работают под капотом при ее использовании.

Читать далее

Spring. Аутентификация на reactive feign

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

В этой статье проведены параллели между обработкой ошибок в feign и reactivefeign клиентах на примере реализации starter, который реализует аутентификацию по OAuth 2.0 в spring reactive подходе. В этой статье не будет описания реактивного стека. Если Вы хотите разобраться, какие есть преимущества и зачем его применять, рекомендую посмотреть эту серию статей. В этой статье не будет сравнения реактивного и нереактивного подхода. Для этого есть такая статья. В этой статье я хочу показать, что перевод компонентов на реактивность - несложная задача по рефакторингу, которая не займет много времени. Добавить монетку в копилку того, что перевод на реактивность - процесс, основные затраты в котором нужно сделать на первом шаге, когда Вы решаетесь применять этот подход, а адаптировать существующие компоненты просто.

Читать далее

Что нового в Amplicode 2025.1

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

С радостью сообщаем, что успешно состоялся первый мажорный релиз Amplicode в 2025 году. Этот релиз включает множество улучшений, исправлений и новых фич. Вот основные из них:

* Поиск по эндпоинтам 

* Улучшенный HTTP Client 

* Editor Inlay  

* Улучшенная генерация Docker-файлов 

* Интеграция с DBeaver  

* Spring Boot Initializer 

Читать далее

Что нового в Hibernate 7.0

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

Команда Spring АйО перевела статью про новые функции и возможности, добавленные в Hibernate ORM версии 7.0 : новая лицензия Apache 2.0, переход на Jakarta Persistence 3.2 и Java 17, замена HCANN на Hibernate Models, а также множество улучшений для работы с JSON, XML, enum, soft-delete и запросами.

Добавлено экспериментальное API для batch-операций, Set-returning functions и удобный доступ к кэшу первого уровня.

Читать далее

Хотите писать без ошибок? Узнайте, как Java обрабатывает кодировки

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

Многие наверняка сталкивались с ситуацией, когда при открытии файла в текстовом редакторе (например, Word) вместо ожидаемого текста появляется хаотичный набор символов: или «кракозябры». Такое происходит, когда программа неправильно определяет кодировку файла — набор правил, по которым символы преобразуются в двоичный код.

Каждый формат файла (TXT, DOCX, PDF и другие) имеет свою структуру и использует определённую кодировку для хранения данных. Если приложение неверно интерпретирует эти правила, текст становится нечитаемым.

Читать далее

Подборка авторских Telegram-каналов про разработку

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

Подборка авторских Telegram-каналов про разработку

Приветствую, Хабр. На связи агент того самого анализатора, и сегодня я предлагаю вам изучить Telegram-каналы крутых айтишников, которые познали себя не только в коде, но и блогинге. Переворошила Telegram, чтобы вам не пришлось. Надеюсь, они помогут вам преисполниться в своём познании....

Поехали!

Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы

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

В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным.

В ходе анализа решений Spring стало очевидно, что оба фреймворка используют радикально разные подходы в работе с данными. Казалось бы, контроль над запросами очень важен для приложений, особенно высоконагруженных. Но Spring Data JPA такого контроля не даёт. Лёгкость и простота изменения кода является залогом его чистоты и работоспособности, однако с этим есть сложности уже у Spring JDBC.

Всего-то нужен фреймворк, предоставляющий полный контроль над запросами со стороны разработчика и не создающий трудностей при развитии, изменении и рефакторинге кода. В этой статье мы разберём две альтернативы, которые, на мой взгляд, в меньшей степени подвержены проблемам Spring Data JPA и Spring JDBC.

Это будут jOOQ и Exposed.

Читать далее

Очистите свою память: от Finalize к Cleaner

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

Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов.

Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям.

Java  Cleaner API, представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны.

Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

Читать далее

Как провести бенчмарк кластера Camunda 8

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

«Могу ли я выполнять 10, 100 или 1000 экземпляров процессов в секунду на этом кластере Camunda 8?»

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

Читать далее

Что нового в IntelliJ IDEA 2025.1

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

Недавно вышла новая версия IntelliJ IDEA 2025.1, в которой появилось довольно много новых фич. Команда Amplicode подготовила обзор основных возможностей IDE.

Читать далее

Что должен уметь AI-инструмент для генерации Java тестов

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

Всем привет! Это вопрос мы задаем себе каждый раз, когда надо и не хочется писать тесты. И еще меньше хочется искать и исправлять ошибки в том, что нагенерит AI-ассистент. В этой статье обсудим, на какие инструменты стоит обратить внимание, каким должен быть хороший инструмент для генерации Java тестов и насколько далека мечта от реальности.


На кого будем смотреть?

Читать дальше →

Нужно ли системному аналитику разбираться в программировании?

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

Мне стало интересно: насколько глубоко системный аналитик уровня Senior должен разбираться в программном коде? Где проходит грань между бизнес-фокусом и технической вовлечённостью?

Чтобы ответить на этот вопрос, я провёл исследование и опросил почти 200 системных аналитиков. Мы выяснили, какие технические навыки сегодня считаются must-have, а какие по-прежнему остаются "по желанию".

В статье я делюсь результатами опроса, реальными кейсами, мнениями коллег и выводами о том, как трансформируется роль системного аналитика в современных командах. Если вы аналитик, тимлид или архитектор - будет интересно.

Читать далее

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

Что вы знаете о Яве?

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

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

Читать далее

Гайд на полиморфизм. Основные идеи

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

Полиморфизм — сколько в этом слове красивого и даже таинственного. Происходит от греческого πολύμορφος что означает — многообразный.  В программировании это понятие встречается часто и  обыденно для понимания большинством программистов. Но так ли это на самом деле? 

Читать далее

Секреты интеграции gRPC в Spring Boot

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

Сначала — REST API. Затем — gRPC. ChatGPT по силам перевести твой Rest API в gRPC и интегрировать в проект за пару минут. Но если ты всё ещё веришь в силу ручной настройки и хочешь понять, как работает gRPC в Spring Boot на базовом уровне — эта статья для тебя.

Читать далее

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

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

Константин Шибков (на Хабре sendelust)  —  эксперт Skillbox и Java-разработчик, который искренне любит собеседования. Не только проходить их сам, но и обсуждать чужие. Он расспрашивает знакомых, какие им попались задачи, а потом разбирает их вместе с участниками своего алгоритмического клуба JavaKeyFrame. Ведёт телеграм-канал «Три монитора», где делится личным опытом. Мы поговорили с Константином о том, почему техническое интервью — это не пытка, а интеллектуальное удовольствие, как проводить собесы по-человечески, зачем нужны задачки «на подумать» и почему иногда лучше не отвечать сходу, а сначала задать встречный вопрос.

— Слушай, а что тебе вообще в этом нравится? Слушать про собесы, разбирать задачи, самому ходить. В чём кайф?

— Ну, это всегда какой-то челлендж. Есть элемент соревнования: сможешь ли ты решить задачу, пройдёшь ли ты интервью. Это не про поиск работы. Мне интересно просто попробовать — а вот возьмут ли, а что там спросят. Иногда задачи попадаются нестандартные, и сам подход к ним бывает необычный. Это своего рода хобби — не то чтобы серьёзное, но точно увлекает.

— А есть примеры самых необычных заданий, которые тебе или участникам клуба попадались? Что прям запомнилось?

— Честно говоря, чего-то супернеобычного, наверное, не вспомню. Больше всего удивляет, когда... вообще ничего нет. Вот человек рассказывает: «Пришёл на собес, они такие — пойдём пообедаем. Сходили в кафешку, поболтали». И всё. Никаких задач, ничего. Вот это реально выбивает.

А вот когда дают задачи сложные или вообще непонятные, зачем они нужны — это уже другое удивление. Такое, скорее, отрицательное. Типа: «Ну и зачем это всё было? Зачем я сюда пришёл? Какой в этом смысл?» Такое чувство пустой траты времени.

Читать далее

Архитектурные принципы Spring Security. Часть первая

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

Доклад будет опубликован тремя частями. В первой части будет рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр с красивым названием “Es prohibido” (“Это запрещено” в переводе с испанского).

Читать далее

ООП для кота – моделируем кота через классы

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


Программирование — довольно сложная штука, и, поэтому, его хорошо учить на наглядных примерах.

А что может быть наглядней котофея? :-)) Поэтому, попробуем рассмотреть кота через объектно-ориентированное программирование (ООП) и его классы.

Итак, что же представляет собой кот с точки зрения ООП?
Читать дальше →

Первые шаги в Spring Security с JWT

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

Команда Spring АйО перевела статью о работе с JWT в Spring Security с примерами и объяснениями. Прочитав данную статью, вы узнаете, как сделать первые шаги в создании приложения, в котором за безопасность отвечают токены JWT и фреймворк Spring Security, работающие в гармоничном тандеме.

Читать далее

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