Обновить
128K+

Java *

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

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

Заговор разработчиков против корпораций

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

Речь пойдет о тайной, сугубо анонимной организации, следы которой начал замечать еще в 2018-ом, работая в Яндексе. О целях и мотивах организации можно только догадываться: некоторые считают это кибер-луддизмом, другие — техно-анархизмом. Ясно одно: организация существует, ее члены уничтожают кодовые базы десятилетиями, и говорить об этом не принято.

Читать далее на свой страх и риск

Event-driven микросервисы с использованием Spring Boot и Kafka

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

Event-driven архитектура - один из видов архитектур, который подходит для обеспечения независимости, масштабируемости и устойчивости микросервисов. 

В новом переводе от команды Spring АйО вы в легкодоступной форме узнаете, как построить такую архитектуру, используя Apache Kafka и Spring Boot, а также ознакомитесь с пошаговой настройкой продюсеров, консумеров, решеним задач надежности и управлением схемами.

Читать далее

Не используйте JPA и Hibernate FetchType EAGER

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

Разные fetching strategies (стратегии извлечения), могут оказывать сильное влияние на скорость работы приложения, делать его быстрым или наоборот замедлять.

Hibernate определяет четыре стратегии выборки ассоциаций:

Читать далее

Explyt Spring Plugin — наша версия HTTP-клиента для IntelliJ IDEA

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

Всем привет! Как следует из названия статьи, речь пойдет о HTTP-клиентах для IntelliJ IDEA, да, опять). В последнее время было несколько публикаций на эту тему, и мы бы хотели подробно рассказать о нашем взгляде на эту проблему и нашей реализации. А также поговорить о плюсах и минусах текущих решений для IDEA. Ранее мы уже рассказывали о нашем плагине для Spring - о том как у нас реализована поддержка Dependency Injection в частности, теперь настала очередь HTTP client'а.

Читать далее

Властелин финансов. Битва за банкоматы

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

Проводить платежи без транзакций да ещё и без ограничения по количеству запросов? Разве это возможно? Если желаешь узнать как, то добро пожаловать под кат!

Снять корону

Руководство для начинающих по стратегиям Hibernate fetching (извлечение данных)

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

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

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

До того, как Hibernate и JPA стали популярны, на разработку каждого запроса тратилось много усилий, потому что вам приходилось явно джойнить (join), таблицы и столбцы, которые вас интересовали. И когда этого было недостаточно, администратор базы данных оптимизировал медленно выполняющиеся запросы.

Во времена JPA запросы JPQL или HQL извлекают сущности вместе с некоторыми связанными с ними отношениями. Это упрощает разработку, поскольку освобождает нас от необходимости вручную выбирать все интересующие нас поля таблицы, кроме того, джойны или другие дополнительные запросы могут генерироваться автоматически. Однако это палка о двух концах. С одной стороны, вы можете реализовывать функционал быстрее, с другой, если ваши автоматически генерируемые SQL-запросы будут неэффективными, общая производительность вашего приложения может значительно снизиться.

Читать далее

SOLID на котиках: коротко и по делу

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

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

В этой статье рассмотрим, как внедрять эти принципы с умом, и да, будет немного котиков — куда без них.

Читать далее

Смотрим «под капот» бэкенда изображений в ОК

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

Ни одна современная соцсеть не обходится без картинок и фото. ОК — не исключение. Но чтобы пользователи соцсети могли загружать свои фото, ставить аватарки и иначе использовать свои изображения, нужны отлаженные механизмы и целый стек обработки на стороне бэкенда.

Меня зовут Руслан Измайлов. Я ведущий Java‑разработчик в ОК. В этой статье я хочу показать на конкретном юзкейсе весь путь изображения в соцсети ОК: от его загрузки на портал до скачивания с узлов CDN.

Читать далее

Стала доступна первая EAP-версия IntelliJ IDEA 2025.1

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

Команда Spring АйО рада поделиться с вами свежей новостью от JetBrains: стала доступна первая EAP-версия IntelliJ IDEA 2025.1. 

Среди нововведений поддержка Java 24, улучшения отладчика и инструментов сборки.

Читать далее

Как я пишу open source игру на Java

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

Около 10 лет назад у меня возникла идея написать игру именно на Java, поскольку я использую этот язык в работе. Это был своего рода челлендж. Хотел попробовать себя, посмотреть, возможно ли это. И спойлер – возможно. Но проект дал мне больше, чем я мог рассчитывать.

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

Читать далее

Amplicode становится платным (и остается бесплатным)

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

Практически год с момента публичного релиза в апреле все возможности Amplicode были доступны любому разработчику абсолютно бесплатно.

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

В новой статье мы рассказали, какая часть возможностей Amplicode останется бесплатной, что войдет в состав платной версии, сколько будет стоить подписка и кто может рассчитывать на скидки до 100%.

Читать далее

Постквантовая криптография в Java

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

Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам. 

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

Читать далее

Автотесты: что есть 100% покрытие API? Часть 1. Регламент

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

Ку! Меня зовут Евген, и я Автоматизатор тестирования на Python. В этой статье я расскажу как из вопроса ко мне «на сколько% у нас покрыта API автотестами?» Я выдал базу в виде регламента по автоматизации API.

Читать далее

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

Spring Security + Telegram Authentication

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

Spring Security + Telegram Auth

Добавить Telegram Auth в Spring Boot приложение оказалось сложнее, чем я ожидал — подробных руководств практически нет. После нескольких дней изучений я создал рабочее решение, которое вы легко сможете адаптировать под свои задачи. В этой статье я покажу, как настроить аутентификацию через Telegram в Spring Security и интегрировать ее с БД, а также протестировать как локально, так и на сервере...

Подробнее

Нужна ли программисту математика? Разбираем на примерах

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

Нужна ли программистам математика? Странный вопрос, учитывая, что на самом деле программисты и занимаются математикой в любом случае — даже если предпочитают не замечать этого.

Меня зовут Пётр — я разработчик и автор курса «Java-разработчик» в Яндекс Практикуме. В этом материале я покажу примеры будничного кода программиста, в которых порой математики не меньше, чем разработки, — и вопрос из заголовка отпадёт сам собой.

Читать далее

Как упростить доступ к данным с MySQL и Jakarta Data

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

Многие приложения, особенно в сегменте enterprise, сохраняют или получают доступ к данным в какой-либо форме. Реляционные базы данных по-прежнему остаются самым популярным механизмом для управления данными, несмотря на конкуренцию со стороны таких технологий, как NoSQL базы данных. В этой статье рассмотрим некоторые концепции доступа к данным и то, как новая спецификация Jakarta Data упрощает эту задачу для разработчиков приложений.

Читать далее

RabbitMQ + Java Spring

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

github

Понять статью не составит труда тем, кто знаком с Spring и Spring Web и хотя бы раз создавал простое приложение с контроллерами, сервисами и моделями (проще говоря - реализовывал паттерн Model View Controller).

Читать далее

Apache Flink: тестирование собственного сериализатора состояния

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

Привет, Хабр! На связи Александр Бобряков, техлид команды МТС Аналитика. Это мой одиннадцатый пост про Apache Flink. В предыдущей части мы рассмотрели сериализацию данных во Flink, написали сериализатор, поддерживающий эволюцию схемы для Flink-состояния в операторе на основе Jackson.

В этой части мы научимся писать тесты на эволюцию схемы состояния при использовании своего сериализатора.

Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring. В master-ветке представлен итоговый проект по всей серии. Этот материал соответствует релизной ветке с названием release/10_test_JacksonStateSerializer.

Читать далее

Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными

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

Команда Spring АйО перевела и адаптировала доклад "Jakarta Data and Jakarta Persistence by Gavin King" Гевина Кинга с последнего Devoxx.

В своем выступлении Гевин Кинг рассказал о преимуществах и нововведениях Jakarta Data и Jakarta Persistence.

Читать далее

Spring Boot Filter. Введение в фильтрацию запросов

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

Привет, меня зовут Николай Пискунов, я руководитель направления Big Data и автор медиа вАЙТИ. В этой статье поговорим о фильтрации запросов.

Примером может быть авторизация: Filter проверит, прошел ли пользователь аутентификацию до отправки запроса. Если нет, то можно отказать ему в доступе к ресурсу. Еще один пример — логирование: с помощью Filter вы можете записывать информацию о каждом запросе и ответе, что может быть полезно для отладки или мониторинга.

В предыдущей статье мы создали аспект для логирования запросов через аннотации. Сегодня рассмотрим, как осуществить то же самое с использованием Spring Boot Filter.

Читать далее