Обновить
512K+

Java *

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

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

Микросервисы: плюсы, минусы, когда и зачем внедрять

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

Чем быстрее идея воплотится в новый проект, тем больше шансов занять нишу, завоевать лояльность пользователей и, как следствие, стать успешнее конкурентов. Ускорить разработку и сделать её более гибкой и управляемой помогает микросервисная архитектура. Вместе с Дмитрием Горчаковым, руководителем отдела разработки РЕД-СОФТ, мы разобрали плюсы и минусы микросервисов, а ещё рассмотрели сценарии, как компании приходят к их внедрению.  

Читать далее

Астрологи объявили сезон Java на Хабре

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

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

С 1 июля по 15 августа мы объявляем сезон Java (количество джавистов в комментариях увеличилось вдвое). Сезон — это конкурс технических статей, который Хабр проводит вместе с разными компаниями, на этот раз — со Сбером. Там, кстати, работает немало джавистов и открыты вакансии для Java-разработчиков.

Победителя сезона ждут призы, а всех участников — повышенные охваты постов. Судьба Java-хардкора в ваших руках: исход соревнования решат читатели.

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

Узнать про сезоны

Server side Form. Управление веб-формами на стороне сервера

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

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

 Как человек, побывавший по ту (фронт) и по эту (бэк) стороны разработки, я хочу рассказать о Server Side Form - «Управлении веб-формой на стороне сервера».

Что это такое и зачем это нужно - читайте под катом!

Читать далее

Re2j вместо стандартного regEx в Java: в каких случаях и как использовать

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

Всем привет! Я Даниил, java разработчик в Just AI, и в этой статье я расскажу, как мы столкнулись с проблемой backtracking’а в регулярных выражениях и как ее решили с помощью библиотеки re2j.

Читать далее

Статический анализатор, который изменит вашу архитектуру

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

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

Читать далее

История одного OOM

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

В далекой-далекой галактике были времена стабильности и процветания. Сервис с шестнадцатью инстансами работал на благо человечества. Через Hibernate он ходил в PostgreSQL-базу, доставал необходимые данные и отдавал другим по REST-интерфейсу. Однако спокойные времена прошли. Внезапно один из инстансов упал с OutOfMemoryError. Лучшие программисты hh.ru пустились в погоню за heapdump-ом в поисках ценнейшей информации. 

Привет, меня зовут Артем, я — бэкенд-разработчик в hh.ru. В этой статье расскажу о том, как мы чинили одну из ошибок OutOfMemoryError, которая возникла при работе сервиса с базой данных. Сегодня говорим только на бэкендерском! 

Читать далее

JPoint 2022: что было, что будет и какие доклады уже открыты для всех

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

В этом году Java-конференция получилась двухсоставной: онлайн-часть уже прошла, а вот офлайн-день ещё предстоит 24 июня в Санкт-Петербурге (и ещё не поздно решить в нём поучаствовать).

Причём несколько видеозаписей уже доступны всем желающим. Поэтому хотим этим текстом поймать трёх зайцев сразу:

— Порадовать Хабр этими Java-докладами без регистрации и смс 
— Написать, что ещё было в онлайновой части
— И рассказать, что будет в офлайне

Читать далее

Нормализация адресов, ГАР ФИАС и Адрессарий

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

Как известно, один и тот же адрес можно написать различными текстовыми способами, используя сокращения, перестановку, вариации наименований и т.п. Встаёт вопрос: существует ли процедура нормализации, отождествляющая реально одинаковые и по-разному записанные адреса?

Ответ положительный, чему и посвящена данная статья.

Какие средства в принципе есть для решения задачи? Их сейчас два: выделение именованных сущностей (NER) и объекты ГАР ФИАС. NER даёт разбиение на адресные элементы и их нормализацию, ГАР ФИАС может дать уникальные идентификаторы. Задача решается, если в качестве нормализации взять множество строк из возможных нормализаций наименований элементов, добавив к ним GUID-идентификаторы ГАР, если получится. Два адреса эквивалентны, если хотя бы одна строка из множеств таких их строк совпадает.

А одними объектами ГАР ФИАС можно обойтись, используя только их идентификаторы? Конечно, нет. Во-первых, это не полный классификатор, особенно в части помещений и строений, хотя и постоянно пополняемый. Во-вторых, в адресах бывают специфические элементы, которые в ГАР отсутствуют (например, Московская область, Можайский район, примерно в 0,1 км по направлению на юг от ориентира середина д.Бараново, или пересечение улиц).

Итак, утверждается, что невозможно обойтись для адреса только одной нормализованной строкой для отождествления в общем случае. Но если таких строк будет несколько, причём сформированных определённым образом, то отождествление будет с очень высокой вероятностью.

Читать далее

«Го, я создал». Учим Java и Kotlin в команде

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

Привет, дорогой читатель. Меня зовут Омар.

Данная инициатива - не реклама, пиар, прикол или что-либо, имеющее под собой плохой помысел. Это именно инициатива, цель которой собрать под одной "крышей" таких же маслят в Java, как я.

Читать далее

Параллельные тесты JUnitPlatform. Как победить в гонке?

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

Начиная с версии 5.3 JUnit Platform предоставило возможность параллельного запуска тестов, что может существенно увеличить скорость прохождения тестовых сценариев. Но в то же время, если сценарии используют какие-либо разделяемые ресурсы, общие для всех тестов, без использования механизмов синхронизации можно обнаружить неустойчивое выполнение тестов из-за возможного переключения потоков выполнения во время исполнения тестируемого кода ("состояние гонки"). В этой статье мы рассмотрим как настроить параллельное тестирование и как обнаружить (и преодолеть) потенциальные проблемы доступа к общим ресурсам.

Читать далее

Создание клона IMDB с Java бэкендом на SparkJava и Neo4j

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

Приложение представляет собой клон IMDB, основанный на наборе данных рекомендации MovieLens, дополненном данными о фильмах и ролях с themoviedb.org.

Внешний интерфейс написан на vue.js и выглядит довольно приятно.

Он вызывает несколько конечных точек REST API для вызова различных представлений и функций.

Читать далее

Подробный разбор цепочки эксплойтов Playstation 4 и 5

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

В статье представлена цепочка из пяти уязвимостей, позволяющая нападающему получить возможности JIT и исполнять произвольные полезные нагрузки. Передаваемая полезная нагрузка вызывает переполнение буфера, приводящее к kernel panic.
Читать дальше →

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

Баг с псионическими сигнатурами в Java

Время на прочтение6 мин
Охват и читатели5.6K
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из специальной «психобумаги», заставляющей смотрящего на неё человека видеть то, что удобно для Доктора: пропуск, ордер или что-то ещё.


Оказывается, некоторые новые релизы Java тоже были подвержены подобному трюку в реализации широко используемых сигнатур ECDSA. Если запустить одну из уязвимых версий, то нападающий легко сможет подделать некоторые типы сертификатов SSL и handshake (что позволяет вмешиваться в обмен данными и модифицировать их), подписанные JWT, декларации SAML или id-токены OIDC и даже сообщения аутентификации WebAuthn. И для всего этого достаточно цифрового аналога чистого листа бумаги.
Читать дальше →

Сравнение объектов в Java

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

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

Читать далее

Как следить за здоровьем морских свинок с помощью Machine Learning и мобильного приложения

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

Всем привет! Меня зовут Андрей Нестеров, я занимаюсь компьютерным зрением в  применении к мобильным приложениям (ML на конечных устройствах) в компании Friflex и работаю продуктами по оцифровке спорта. Я стал замечать, что в обычной жизни не хватает технологий компьютерного зрения. Например, мне бы хотелось замерять, сколько времени я провожу за компьютером или трачу на сон. Но отслеживать эти действия можно и самостоятельно. С тех пор я начал думать о том, что действительно будет полезным, какую проблему можно было бы успешно решить с помощью технологий. Такая проблема вскоре нашлась.

Читать далее

Java. Решение практических задач

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

Книга Анджела Леонарда позиционируется как каталог типовых решений для Java разработчиков младшего и среднего уровней. Заявляется, что представленные решения производительны, корректны и поддерживаемы.

В книге все разбито на "задачи". Они тут нескольких типов:

Читать далее

Как обновить необновляемое: кастомная замена для @RabbitListener

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

Динамически обновляем конфигурацию клиента Spring Cloud Config Server и параметры слушателя RabbitMQ

Читать далее

Apache Kafka для магазинов

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

Всем привет! Меня зовут Игорь, я работаю системным архитектором в CSI. Хочу поделиться историей появления в нашем стеке технологий надежного и универсального брокера сообщений. Расскажу, как и для чего мы его используем, поделюсь полезными нюансами и примером с сетью Fix Price. Статей про Apache Kafka уже более, чем достаточно, но наш кейс немного отличается от стандартного использования. Надеюсь, опыт пригодится кому-то ещё.

Читать далее

О чём расскажут на JPoint: от профайлеров до контейнеров

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

Конференция JPoint в этот раз особенная. Во-первых, помимо онлайн-части, впервые за два года будет возможность увидеться в офлайне. А во-вторых, этот офлайн-день пройдёт в Санкт-Петербурге (вместо привычной для JPoint Москвы). Но если до Петербурга добраться не можете, то и этот день можно увидеть хотя бы в виде онлайн-трансляции.

А вот с точки зрения программы таких разительных изменений нет. Нас по-прежнему интересуют доклады про инструменты, JVM, Spring, архитектуру, JVM-языки вроде Kotlin — в общем, про всё, что интересует опытных Java-разработчиков. Представляем Хабру описания докладов (и из онлайновой части, и из офлайновой).

Читать далее