Обновить
194.69

Java *

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

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

Кратко о сетях

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

Этот материал продолжает серию статей, посвящённых семинарам внутреннего обучения, которые проводятся в IT-компании NAUKA и служат для развития кругозора её сотрудников. Надеемся, что сведения, представленные в ней, могут быть полезными для школьников старших классов, студентов младших курсов ВУЗов, сотрудников IT-компаний, не связанных в своей работе с IT-инфраструктурой.

Читать далее

Как жить без IntelliJ IDEA? Часть №1. Собери сам

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

На российском рынке сложилась сложная ситуация с IDE для Java-разработчиков. Новости, связанные с ограничением скачивания IntelliJ IDEA Ultimate, недоступностью JetBrains маркетплейса и блокировкой лицензий, которые использовались на территории РФ порождают огромное количество вопросов, на которые не у всех есть ответы.

Команда Spring АйО подготовила цикл статей, в которых постарается ответить на все вопросы, связанные с уходом IntelliJ IDEA из России.

Читать далее

Кластеры и мир: хроника высокодоступного Pub/Sub в Redis

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

В статье рассматриваются основные принципы и особенности использования Redis в режиме Pub/Sub для масштабируемых и высоконагруженных приложений. Описаны два подхода к обеспечению высокой доступности — Redis Sentinel и Redis Cluster, их преимущества, ограничения и примеры настройки. Приведены примеры использования Pub/Sub в реальных системах, а также практические конфигурации и код для настройки отказоустойчивого кластера Redis. Статья предназначена для разработчиков, которые ищут решения для создания надежных систем обмена сообщениями с высокой производительностью и отказоустойчивостью.

Читать далее

Kafka как хранилище справочников

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

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

Читать далее

Пишем свой Http Kafka Sink Connector

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

В данной статье приведу реализацию своего kafka http sink connector. Он не претендует на универсальность, но возможно поможет разобраться как разработать свой connector.

Читать далее

Про auto.offset.reset в Spring Kafka

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

Так исторически сложилось, что Apache Kafka использует для своих сообщений смещения (или же offset). В зависимости от нужд для настроек консьюмера можно выставить в параметр auto.offset.reset три значения: earliest, latest, none. По умолчанию, если данный параметр не задан, используется значение latest.

Читать далее

Полнотекстовый поиск в java приложениях с помощью Elasticsearch

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

Рассмотрим, как использовать Elasticsearch в качестве поискового движка в приложениях на Spring Boot. Поговорим о стратегии реализации полнотекстового поиска, эффективной индексации сущностей JPA и их связей. Уделим внимание использованию аннотаций полей, настройке релевантности с помощью весовых коэффициентов и реализации нечёткого поиска для обработки вариаций запросов. Также обсудим методы настройки синонимических связей, многоуровневых фильтров и ранжирования результатов по релевантности для повышения качества поиска.

Читать далее

Безопасный Docker в продакшене

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

В новом переводе от команды Spring АйО вы узнаете, как минимизировать риски и обеспечить безопасность Docker-контейнеров с помощью CIS Benchmark рекомендаций и автоматизированных инструментов вроде Docker Bench for Security.

Читать далее

10 миллиардов целых чисел входят в массив

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

Неожиданные результаты эксперимента с хранением большого количества числе в массиве в 64-битным Pharo Smalltalk, которые меня удивили.

Читать далее

Скажем нет «Превращению», или анализ Kafka

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

Бывало ли вам интересно, какие баги может таить исходный код проектов, которыми пользуются большие компании по всему миру? Не упустите шанс познакомиться с интересными ошибками, которые нашёл статический анализатор PVS-Studio в исходном коде Open Source проекта Apache Kafka.

Читать далее

Как спроектировать библиотеку для Spring Boot

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


Принцип DRY (Не повторяйся) – это важная составляющая цикла разработки программного обеспечения. Его цель – избежать ненужной повторяемости в коде. В частности, имеется множество приложений, которые могут находиться в составе одной и той же микросервисной архитектуры и использовать один и тот же компонент. В результате код становится неудобно поддерживать, поскольку всякий раз, когда требуется внести изменение в этот компонент, с каждым из этих приложений приходится разбираться отдельно.
В этой статье давайте рассмотрим, как можно вынести такие компоненты из приложений в отдельный модуль. Тем самым мы одновременно стремимся упростить поддержку кода и сократить в нём количество повторов.
Читать дальше →

Траст-менеджер здорового человека

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

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

Читать далее

Знакомьтесь с Jmix AI Assistant: Инновация, которую стоит попробовать

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

Ситуация на меме на самом деле не страшная, но имеет место быть. Большие языковые модели набирают популярность, и компании все чаще смотрят в сторону их использования. Haulmont не стал исключением. 

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

Читать далее

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

Скриншот-тестирование: как заставить тесты «видеть» дефекты

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

Всем привет, меня зовут Александр Матюшенко, я инженер по автотестированию в одной из платформенных команд в Альфа-Онлайн. В статье хочу рассказать, как внедрить функционал скриншот-тестирования в проект E2E автотестов с использованием библиотеки aShot от Yandex. Возможно, в этой статье я добавил излишне много кода на Java, но хочется более подробно показать, как это работает.

Читать далее

Kafka Streams ч1: Привет, мир

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

Привет, сообщество HABR! =)

Начав изучать Kafka Streams, я заметил, что для решения различных задач приходится искать информацию по разным источникам, поэтому со временем накопилось много собственных конспектов. Хочу поделиться ими в виде серии туториалов на Хабре.

Несмотря на обилие ресурсов по Kafka Streams и отличные статьи на Хабре [ноль, один, два], мне не хватало пошаговых руководств, которые детально раскрывают изъяны и преимущества этой технологии. Поэтому решил создать такой материал, чтобы помочь другим разобраться структурно и последовательно.

Читать далее

Переход со Spring Boot 2 на Spring Boot 3 в контексте Hibernate, или как не сойти с ума при миграции entity в монолите

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

Миграция на новые версии фреймворков всегда сопровождается сложностями, особенно если в них произошли значительные изменения. В этой статье мы рассмотрим, с какими проблемами я столкнулся при переходе со Spring Boot 2.x.x на Spring Boot 3.3.1 и Hibernate 6.4+, а также предложим решения, которые могут помочь другим разработчикам избежать аналогичных трудностей при обновлении своих приложений.

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

С выходом Spring Boot 3.3.1 разработчики столкнулись с необходимостью перехода на более новые версии Hibernate (6.2+). Это обновление связано с изменениями в Hibernate, обеспечивающими совместимость с новыми версиями Spring Boot и использование новых возможностей фреймворка.

Читать далее

Опыт разработки приложений java и оформления кода

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

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

Наша компания существует уже более 30-ти лет, и на сегодняшний день в ней работает более 100 разработчиков ПО на различных проектах. Одной из основных проблем в нашей компании, и, как мы полагаем, не только в нашей, является большая текучка кадров, в том числе и среди разработчиков. Чтобы упростить и ускорить процесс вхождения вновь пришедших разработчиков в проекты, для программистов, уже работающих в нашей компании, был рекомендован некоторый набор правил по разработке Java-приложений. Также был составлен перечень типовых ошибок при оформлении кода, подробно разобранный на примерах.

Программистам в IT-компаниях, подобных нашей, заказчики платят не за производимый ими код, а за успешную автоматизацию их (заказчиков) бизнес‑процессов. Поэтому материал статьи связан прежде всего с коммерческой разработкой enterprise-систем.

Мы надеемся, что данная статья может быть полезна back-end разработчикам enterprise-систем, работающим в других IT-компаниях.

Читать далее

Улучшаем процесс ревью в команде

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

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

Что же можно сделать в каждой из трех ролей, чтобы все остались довольны (и целы)?

Читать далее

ThreadLocal и проблемы с памятью: что вы должны знать

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

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

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

Читать далее

HMAC-SHA256 и Telegram Mini App

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

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

Мы с вами начнем с теории и проникая в глубь - мы закончим примером реального security фильтра который наглядно покажет, на примере аутентифицикации сообщения от Telegram - на сколько мощной может быть функция если это хеш-функция.

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

Читать далее

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