Обновить
170.57

Java *

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

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

Задолженности в Mireapay

Время на прочтение12 мин
Количество просмотров941

Деньги - кровь экономики, а кредиты - уровень сахара. Ни одна современная платёжная система не может считаться полноценной, если отсутствует возможность кредитования производства - то, без чего современное производство не может существовать в принципе. Если вам интересно, как Mireapay работает с задолженностями и сможет ли наконец автор получить твердо и четко сервис с производительностью 100 рпс, то добро пожаловать под кат!

Продолжить наступление

Судоку: моя попытка в новый алгоритм решения. Часть 2. Заполнение латинского квадрата

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

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

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

Читать далее

Эволюция экосистемы Java под интеграцию ИИ

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

Новый перевод от команды Spring АйО расскажет вам, как новые библиотеки и фреймворки расширяют экосистему Java, делая возможной интеграцию ИИ-решений в приложения, написанные на Java.

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

Читать далее

Hot reload секретов под нагрузкой в Java-сервисах на Spring

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

Привет, Хабр! На связи Андрей Чернов, Java‑архитектор в СберТехе. В прошлой своей статье я рассказал про особенности работы с секретами в Java‑сервисах на Spring Boot — где их брать и как применять к вашему сервису, на примере того, как мы делаем это в Platform V Sessions Data.

Работа с секретами в современных реалиях, где ни с чем не интегрированных сервисов почти не осталось, очень важна. Она помогает снизить риски утечек и атак, а значит, сохранить деньги, время и репутацию компании. Секретами могу быть, например, сертификаты и учётные данные (имя пользователя, пароль и т. п.).

Как я уже говорил, файлы с секретами по разным причинам меняются, поэтому сервису нужно вовремя реагировать на это и применять новые секреты. В своём сервисе Platform V Sessions Data мы решили применять обновления секретов прямо «на горячую», не останавливая, не перезапуская сервисы, и даже не снимая с них нагрузку. Мы называем это hot reload.

Читать далее

Как запустить защищенные сервисы в Entaxy ION

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

Представьте ситуацию, когда у вас есть файл с описанием сервиса – это может быть json или yaml, описанный по спецификации OpenAPI или xml с WSDL описанием SOAP сервиса. Вам требуется оперативно запустить сервис по этому описанию, чтобы системы-источники могли начать отправлять данные. А ещё этот сервис надо как-то обезопасить. А ещё… Но обо всё по порядку – расскажем и научим в этой статье.

Читать далее

Как за 15 минут превратить таблицы БД в JPA-сущности (и не облажаться)

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

Новый гайд от команды Amplicode придётся по душе тем, кто предпочитает разрабатывать схему базы данных перед реализацией JPA-модели или создаёт приложение на основе уже существующей БД.

За 15 минут вы узнаете, как можно легко преобразовать таблицы базы данных в JPA-сущности, учитывая ограничения, индексы, свойства столбцов, а также ассоциативные связи (1:1, 1:M, M:1, M:M).

Читать далее

Реальный кейс: 22 вопроса на техническом интервью на вакансию Java Lead в JP Morgan в 2025 году

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

Аудитории Хабра наверняка интересно, какие вопросы задают на техинтервью в мультинациональных корпорациях. Ведь ИТ-индустрия была и остается глобальной, несмотря на геополитику и разные другие сложности. Как минимум, такая информация об интервью «из первых рук» — это ориентир по уровню сложности собеседования на позицию Java Lead в любых других компаниях, включая крупные российские банковские и промышленные структуры. Именно поэтому эта статья в нашем блоге SSP SOFT.

Читать далее

Практика использования классов Socket и ServerSocket в Java

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

В этой статье будет показан пример создания небольшого многопользовательского чата с помощью сокетов. Для его реализации вам понадобиться Java и Maven.

Читать далее

Мой Maven plugin для IDEA часть 2. Easy Maven — Перезагрузка или импорт проектов в IDEA без ошибок

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

Всем привет. Более года назад я публиковал на Хабр статью, где рассказывал о проблемах IDEA Maven плагина, о том что с этим можно сделать и представил свою версию плагина. Основная проблема которую он решает - это импорт проектов в IDEA. На тот момент это был прототип решения. За это время у меня появилось ~300 активных пользователей, добавлена поддержка MVND и WSL. И спустя год, хотел бы рассказать о изменениях которые произошли в моем плагине более подробно, а ближе к концу статьи о свежих примерах ошибок импорта проектов в IDEA, которые смог решить мой плагин.

Читать далее

Valhalla — эпичный рефакторинг Java. Часть 2: проблемы проекта и их решения

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

Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца «Valhalla — эпичный рефакторинг Java», и сегодня мы публикуем вторую часть из трех. В первой части серии было рассказано об истории и причинах появления проекта Valhalla. Во второй части подробно разбирается вопрос о том, с какими фундаментальными сложности команда столкнулась на пути к решению поставленных задач.

Читать далее

PAL видеоадаптер на FPGA с буфером кадра

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

Наверное, каждый второй разработчик на ПЛИС в начале своего пути пытался визуализировать работу своих схем. Кто-то подключал TFT-дисплей, кто-то — VGA монитор. А у меня под рукой оказался только телевизор с композитным входом. Ну что ж, работаем с тем, что есть!

Читать далее

JPackage в gradle для Java17

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

В этой статье я расскажу вам, как создать исполняемое приложение на Java, используя инструмент jpackage и gradle.

Читать далее

Секреты JVM: что происходит с ошибками под капотом

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

Новый перевод от команды Spring АйО расскажет вам (с примерами кода), как JVM обрабатывает исключения на низком уровне, что такое таблица исключений и какие сценарии используются для вариантов try-catch и try-finally.

Читать далее

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

MongoDB: магия вне Хогвартса в IT

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

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

Меня зовут Алена Метенева, я работаю старшим инженером по обеспечению качества в компании SM Lab в проекте «Кассы». Я тестирую бэкенд и интеграции и там, где это возможно, автоматизирую тесты на Java. Сегодня я хочу рассказать вам о том, как MongoDB помогает мне с этим процессом.

Что такое MongoDb

Думаю, многие работали с MongoDB (Монга) и знают, что это нереляционная СУБД, которая использует для хранения данных JSON-структуру: вместо таблиц и строк, как в реляционных базах данных, в MongoDB есть коллекции (набор документов, эквивалент таблицы реляционной базы данных) и документы (внутри коллекции они могут отличаться друг от друга размером, содержанием и количеством полей), которые состоят из пар «ключ–значение».

Для чего Монга тестировщику 

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

Что я имею в виду?

Представьте, что вы тестируете интеграцию с другой системой. Если все работает стабильно, то пройти позитивные сценарии будет проще всего. А если вы хотите протестировать кейс, в котором смежная система выдает ошибку 503 (Service Unavailable) – это будет уже сложнее. Хорошо, если вы управляете обеими системами и можете просто перезагрузить одно приложение и попытаться достучаться до него через второе. А если система не ваша? В таком случае принято использовать моки. Но есть и третий вариант: если ваше приложение для подключения к другому берет ссылку из MongoDB, то эту ссылку можно просто подменить, добавив в нее лишние символы, чтобы получить ту самую ошибку 503 или 404 (Not Found), например.

Читать далее

Через тернии к рок-звездам: рассказываем, как прошел Java Rock Stars Meetup

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

Привет, Хабр! На связи Рустам, Developer Advocate в Axiom JDK.

В сфере зарубежного IT-рекрутинга существует термин “rockstar” и речь здесь не о музыкантах и безумных вечеринках. Это титул для лучших из лучших талантов в разработке.

Мы подготовили обзор первого Java Rock Stars Meetup — эксклюзивной встречи звезд индустрии с сообществом разработчиков, которая прошла в Москве. Под катом — погружение в атмосферу и записи докладов. Смотрим как это было!

Читать далее

Новый формат собеседований в Яндекс

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

Недавно Яндекс изменил процесс отбора кандидатов, теперь перед алгоритмической секцией добавилась секция Advanced Code. Секция заявлена как более близкая к практике, в статье я расскажу правила нового формата.

Читать далее

Как ускорить Maven сборку без переезда на Gradle

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

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

Мы начнем с простого, поговорим про кеши и build-сканы и затем заглянем под капот Maven, чтобы понять, как найти и устранить узкие места, а также детально сравним с Gradle. Эффект от каждого совета по отдельности может быть и не такой заметный, но в совокупности ускорение может быть в разы!

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

Погнали

Где я учился, чтобы перейти в it сферу и преуспеть

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

Данная статья является продолжением этой статьи: Инструкция: как перейти в сферу it, но с перечнем курсов, которые я закончил (это тоже часто спрашивают). Можете считать это рекламой пройденных мною курсов, а можете и не считать.

Читать далее

Junie – новый AI-агент от JetBrains. Junior разработчики больше не нужны

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

В новом переводе от команды Spring АйО мы расскажем вам о новом продукте от компании JetBrains, который называется Junie. Новый продукт работает по принципу искусственного интеллекта и способен самостоятельно выполняет задачи по написанию кода.

Читать далее

Вся правда о данных: от примитивов до озера данных в эпоху микросервисов. Гайд для Java-разработчика

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

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

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

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

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

Читать далее

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