Все потоки
Поиск
Написать публикацию
Обновить
190.26

Java *

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

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

Фидбэк vs токсичность: как давать обратную связь коллегам и начальству

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

Фидбэк vs токсичность: как давать обратную связь коллегам и начальству

«Давай честно: это не твой уровень» — такая обратная связь скорее вызывает желание обновить резюме, чем помогает расти. В этой статье разберём на примерах, как давать фидбэк без токсичности даже своему руководителю и почему привычная модель «Бутерброд» с похвалой в начале и в конце не работает (и почему «спасибо, но…» — не лучший способ).

Читать далее

Valhalla — эпичный рефакторинг Java. Часть 3: наши первые результаты

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

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

В первой части серии было рассказано об истории и причинах появления проекта Valhalla.

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

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

Читать далее

Правильный API конфигурации библиотеки на примере TrueSql || причина бросить Spring Data

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

Сегодня немного поговорим о здравом смысле. Правильном и неправильном API конфигурации java-библиотеки. В качестве примера будем использовать TrueSql.

Читать далее

Explyt Spring plugin. Поддержка *.http файлов в IntelliJ IDEA Community

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

Всем привет. В предыдущей статье мы рассказывали о нашей версии HTTP клиента, которая основана на генерации OpenAPI файлов по Spring-контроллерам и Swagger UI в качестве готового интерфейса пользователя для работы с запросами. В комментариях к ней писали, что поддержка http файлов весьма актуальна, так как они используются во многих существующих проектах. Мы решили изучить этот вопрос подробнее и вот что из этого вышло…

Читать далее

B-Tree — сбалансированный куст поиска

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

В реляционных СУБД есть дефолтный тип индекса — B‑Tree: Tree в названии однозначно указывает на дерево, ну а В это, наверно, Binary? Или Balanced? Или Balanced Binary? Почему‑то долгое время я полагал, что это Balanced Binary, и эта версия даже «работала». На деле всё куда интереснее, предлагаю проследовать под кат, чтобы посмотреть на этот на самом деле скорее низкорослый куст и сравнить его с Red‑Black Tree на Java.

Точно куст?

Передаём данные с мобильных устройств в сервисы через каналы радиосвязи

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

Привет, Хабр! На связи Рафис Гатауллин, ведущий эксперт отдела фронт-энд, и Рамис Закиев, ведущий эксперт отдела аналитики в «Татнефть Цифровые Технологии». В этой статье по мотивам нашего доклада на Industrial++ расскажем, об опыте внедрения мобильного решения, которое позволило оптимизировать процессы в цехах нефтедобычи, где нет условий для работы обычных сетей связи.

Поговорим о том, как мы реализовали передачу данных с мобильных устройств к сервисам по каналу радиосвязи стандарта TETRA. Об опыте подключения и взаимодействия с SDK, написанном на Java, в мобильном приложении на Xamarin. И о подходах, которые использовали для оптимизации трафика при передаче данных приложения и данных геопозиционирования.

Читать далее

Spring Reactor. Эволюция сервисов. На пути к реактивности

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

Это статья описывает опыт миграции традиционного приложения java spring на Spring reactor стек. О специфике разрабатываемой информационной системы, уже подробно рассказывал. Кратко о системе - смешанная сервисно-микросервисная архитектура. Чтобы получить бизнес результат, требуется вызвать микросервис, который вызывает сервис, который вызывает набор микросервисов для формирования ценностного набора данных. Получается цепочка вызовов. Сервисы и микросервисы разрабатывались на традиционном технологическом стеке, без использования реактивного подхода.

Мое знакомство с реактивным подходом произошло в 2022 году. Плюсы и минусы я осознавал, как мог. В рамках разрабатываемой системы мне было сложно найти ему точку применения. Тогда сложилось понимание, что в существующих рамках реактивный подход не даст возможности эволюционных изменений. Если его применять, то применять ко всему и сразу, как постулирует реактивный манифест.  Даешь революцию! Это было заблуждение. Его я не смог разрушить, даже изучая документацию и статьи. Чего-то релевантного моей ситуации в открытых источниках я найти не мог. Этой статьей постараюсь предложить путь и убедить сомневающихся, что долго раздумывать не стоит. Делайте смелый шаг на пути к реактивному стеку.

Читать далее

Кофе и крабы. Вызов Rust-кода из Java

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

Java — один из наиболее часто используемых языков программирования, который мы еще не обсуждали в нашем Rust Interop Guide. В этой статье мы рассмотрим три различных метода вызова кода Rust из Java: JNI, JNR-FFI и Project Panama. Мы покажем различия между этими методами и проведем базовый бенчмаркинг для сравнения их производительности. Эти методы работают не только для Java, но и для других языков JVM, таких как Kotlin. Здесь мы в основном сосредоточимся на Java, но примеры Kotlin доступны в ветке Kotlin нашего репозитория GitHub.

Эта статья является частью нашего Rust Interop Guide.

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

В этой статье будет показан пример создания небольшого многопользовательского чата с помощью сокетов. Для его реализации вам понадобиться 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.1K

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

Читать далее

JPackage в gradle для Java17

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

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

Читать далее

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