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

Java *

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

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

Прагматичное функциональное программирование в Java

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

Прагматичное функциональное программирование в Java при помощи монады XResult<T>, которая сочетает в себе свойства Optional<T>, Result<T> и Either<L,R>

Читать далее ...

Java для Sega Mega Drive — возможно ли это?

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

В этом проекте я хотел ответить на вопрос: возможно ли написать игру на Java для Sega Mega Drive/Genesis. Не хочу раскрывать спойлеры, но ответом будет «да».
Несколько лет назад я повстречал проект Java Grinder, который позволяет писать код для различных ретро процессоров на Java, в том числе для Sega Mega Drive. По сути, он интерпретирует байт-код из файлов .class, полученных после компиляции, в код на Ассемблере 68K. Если файлу класса нужны другие файлы классов, то они тоже считываются и обрабатываются. Все вызовы методов API записываются в выходном коде, либо как встроенный ассемблерный код, либо как вызовы предварительно написанных функций, выполняющих свою задачу.

Читать далее

Демистификация размеров объектов в Java: компактные заголовки, сжатые указатели и многое другое

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

Понимание размера объектов в Java — важный шаг для оптимизации памяти в высоконагруженных системах. 

В новом переводе от команды Spring АйО вы узнаете про использование HotSpot JVM таких механизмов, как сжатые указатели (Compressed Oops) и компактные заголовки объектов (Compact Object Headers), необходимых для минимизации объема занимаемой памяти.

Читать далее

PVS-Studio в 2024 году

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

За окном январь 2025 года, а это значит, пора подвести итоги за 2024 год! В этой статье вы узнаете, чем занималась команда PVS-Studio в прошлом году: новые плагины, интеграции, фичи и многое другое!

Читать далее

Как писать связующий код без Java-делегатов в Camunda Cloud

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

Бернд Рюкер рассказывает о о преимуществах использования паттерна external task по сравнению с JavaDelegate и уверяет, что это совсем не больно. А если вы хотите использовать standalone-движок, то в общем-то у вас нет выбора, только external task.

Читать далее

JSpinner: меньше багов, больше стрелочек

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

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

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

JSpinner — это компонент для выбора значений из заранее заданной последовательности. Цифры, строки, даты — всё, что душе угодно. И его главная фича — минимизация ошибок: пользователь выбирает значения, а не вводит их вручную.

Читать далее

BPMS мёртв в энтерпрайзе

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

Мы инженерная компания, которая занимается производством инструментов и платформ для корпоративной разработки. Недавно перевыпущенный для Jmix BPM-плагин активно набирает популярность в России и в мире. Мы получаем обратную связь от разработчиков и руководителей проектов. Многие сетуют на ограниченность BPMS. Он мёртв, окончательно и бесповоротно.

Ну просто потому, что для сколь-либо понятных и устоявшихся на рынке деловых или отраслевых процессов уже представлены специализированные платформы, а настроить что-то прорывное и кастомное на единой унифицированной BPMS платформе всё равно невозможно. Вендоры в погоне за расширением рынка превратили свои платформы в неповоротливых монстров по мере перетаскивания в коробки удачных фичей с клиентских проектов. Особенно веселят модули процессной аналитики, которые почти никто не использует. Нет области применения для этого класса систем, она сузилась до того предела, за которым содержать отдельную большую платформу в контуре предприятия становится экономически нецелесообразно. На смену идет процессная разработка на open-source стеке и с более высокой инженерной культурой внутри организации, необходимой для скорейшего восприятия и адаптации под нужды предприятия новых технологических возможностей (облака, роботы, ИИ и т. п.).

Цифровая и бизнес трансформация

Бизнес трансформация и цифровая трансформация гораздо шире, чем оптимизация организационной структуры или цепочек взаимодействия внутри предприятий. Современная передовая практика в области процессного управления предлагает начинать с цепочек создания ценности, проходя через этапы переобучения, изменений культурного кода и принципов взаимодействия внутри корпоративной среды. Чтобы выживать и процветать во все более конкурентном цифровом мире, предприятиям необходимо культивировать у себя способность к постоянной адаптации. Но адаптации не в варианте постоянных метаний “из стороны в сторону”, а с учетом стратегических целей компании и с упором на максимальную эффективность.

Читать далее

IntelliJ IDEA 2025.1 EAP 2: Поддержка Containerfile и обновления для Dockerfile

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

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

Среди нововведений — поддержка Containerfile и обновления для Dockerfile.

Читать далее

Как писать связующий код без Java-делегатов в Camunda Cloud

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

Введенный в 2015 году, паттерн внешней задачи (external task pattern) становится всё более популярным. Вместо того чтобы движок процессов активно вызывал какой-либо код (push), паттерн внешней задачи добавляет работу в некую очередь и позволяет воркерам (workers) извлекать их по мере необходимости. Этот метод также известен как публикация/подписка (publish/subscribe). Движок процессов публикует задачи, а воркеры подписываются на их выполнение.

Читать далее

Маппинг даты и времени в Hibernate и JPA

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

Сегодня любой Java разработчик сходу сможет правильно ответить на вопрос "Как смапить дату и время из колонки таблицы БД на поле в Java классе?". Или нет? 

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

В новом переводе от команды Spring АйО рассказывается про подробности работы с современным API java.time, правильный маппинг данных с учётом часовых поясов, устаревших типов java.util.Date, Calendar и многое другое.

Читать далее

Стратегии извлечения FetchType и N+1

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

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

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

Читать далее

Красивая обработка ответов в WebClient

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

Преимущества асинхронного взаимодействия ясны многим, однако работа с библиотекой WebFlux часто вызывает затруднения у Java-разработчиков

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

Читать далее

Канареечные релизы на Camunda и Togglz

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

Привет, Хабр! На связи Егор, бэкенд-разработчик из команды Портфолио в Т-Банке. Мы занимаемся актуализацией данных компаний и периодически внедряем новые подходы в наши процессы разработки.

В последнее время мы часто выпускаем новую функциональность, используя метод канареечных релизов. Хочу рассказать о том, как мы это делаем. У себя на проекте мы используем Camunda, поэтому в статье разберем, как более безопасно выпускать новые версии bpmn-схемы на прод, минимизируя влияние багов на пользователей.

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

Читать далее

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

Добавляем скомпилированный фронт внутрь jar-файла при его сборке

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

Упаковка и развёртывание фронта внутри бэка.

Иллюстрация возможности развернуть фронт на основе встроенного в spring web-сервера.

Читать далее

Разработка плагина для интеграции Яндекс-Календаря с IntelliJ IDEA

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

Последние 10 лет я занимаюсь java разработкой и на протяжении всего этого времени Intellij Idea является неотъемлемой частью моей(да и многих других джавистов) работы. К сожалению некоторых вещей, которые были бы удобны лично мне, в ней нет, но к счастью есть возможность расширять IDE с помощью плагинов. На моём ноутбуке установлен linux и нет какой-то удобной нотификации событий из корпоративного календаря, а IDE практически всегда открыта на главном мониторе. По этой причине(а ещё из-за внезапно появившегося окна свободного времени и простого интереса) я решил, почему бы не интегрировать календарь прямо в IDE, чтобы получать нотификации и точно не пропустить ничего важного?
Об этом и пойдёт речь в статье.

Читать далее

«Дебаггинг» резюме или как покорить сердце рекрутера

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

Поговорили с Денисом Хахалкиным, QA Lead — Wallarm, ex. Ozon — о том, как подготовить резюме для прохождения первичного отбора ресёрчерами и HR‑специалистами на российском рынке труда. Обсудили, как правильно выбрать опыт для включения в резюме, чтобы он был актуален для желаемой должности, почему не стоит врать в резюме и как и когда стоит упоминать о пройденных курсах и полученных сертификатах, чтобы не отпугнуть потенциальных работодателей.

Читать далее

Нужна ли асинхронщина на проектах: пара наблюдений про Spring и неблокирующее API для самых маленьких

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

Всем привет! Я работаю на собственном проекте Максилекта. Это высоконагруженная AdTech платформа, включающая Ad Exchange сервер и сопутствующие компоненты. Но в этой статье речь пойдет не совсем о проекте. Я бы хотел поговорить об асинхронщине в задачах подобного масштаба. Просто на примеры из проекта мне будет удобно ссылаться. 

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

Читать далее

Как построить интеграцию

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

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

Читать далее

HashMap под микроскопом

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

Эта статья будет полезна новичкам в разработке или тем, кому нужно освежить знания перед собеседованиями. Как ни странно, но вопросы о том, как устроен HashMap, всё ещё встречаются среди интервьюеров.

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

Читать далее

RabbitMQ + Java Spring Часть 2

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

Предыдущая часть: RabbitMQ + Java Spring

P. S.: Гит разбит на ветки по частям (part-1, part-2...)

Я продолжаю серию, посвящённую использованию RabbitMQ в связке с Spring.В предыдущей части был реализован простой обмен двух микросервисов посредством очереди в MQ.В этот раз рассмотрим крутые фичи, которые предоставляет RabbitMQ

Читать далее

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