RU

async‑profiler в production: CPU, аллокации, lock contention и чтение flame graph

Профилирование Java‑приложений в production часто упирается не в отсутствие инструментов, а в их ограничения: CPU горит в&nbs…

async-profilerJavaJVMпрофилированиеflame graphпроизводительностьаллокациимногопоточностьlock contentionlatency
Habr
RU

Пишем Java-скрипт, который собирает проект в один файл для контекста в чат DeepSeek или другие LLM

У нейросетей есть ограничение на количество символов в чате или на число запросов. И бывает так, что лимит уже закончился, а разработка проекта — нет.…

DeepSeekLLMJavaконтекстdeveloper toolsавтоматизацияChatGPT
Habr
RU

C# мне нравится больше Java. Но в банковском enterprise мне всё равно понадобилась Java

C# я до сих пор считаю одним из самых удобных языков для backend разработки. В нём много вещей к которым быстро привыкаешь: свойства, LINQ, async/awai…

C#JavabackendenterpriseбанкиSpring Boot.NETмикросервисыимпортозамещениекарьера
Habr
RU

Java 21 в стиле «клятый энтерпрайз» на одноплатном компьютере возрастом 13 лет

Можно ли успешно эксплуатировать Java-приложение на Raspberry Pi Model B? А если Java — 21‑я, а Spring Boot, на котором основано приложение — версии 4…

JavaRaspberryDIY с элементами советской эстетикиЭксперимент
Habr
RU

Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а…

JavaProject LoomVirtual ThreadsScoped ValuesStructured ConcurrencyJDK 27конкурентностьмногопоточностьThreadLocalOpenJDK
Habr
RU

Сможете ли вы спроектировать Maven‑монорепозиторий для 5 микросервисов?

В этой статье мы разберём реальную задачу на проектирование Maven Multi‑Module: от циклических зависимостей и неправильного использован…

MavenмонорепозиториймикросервисыSpring Bootmulti-moduledependencyManagementMaven Wrapperархитектура сборкиJava
Habr
RU

Сравнение моделей конкурентности JVM языков: Нужен ли еще ThreadPool после coroutines, ZIO и Virtual Threads?

В последней части про модели конкурентности JVM языков мы сравним разные подходы друг с другом. И ответим на вопрос “А зачем теперь тред пулы, если ес…

JavaJVMKotlinClojureZIOcoroutinesvirtual threadsthread poolsProject Loomconcurrency
Habr
RU

Полный гайд по каналам обмена сообщениями: от теории к реальным кейсам

Первая статья из цикла о каналах обмена сообщениями. Разбираем архитектурные дилеммы, конкурирующих потребителей, message storm, гарантирова…

архитектура ПОинтеграцияобмен сообщениямиканалы сообщенийJavaKafkaмикросервисы
Habr
RU

Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/Z…

JavaJVMмногопоточностьThreadThread PoolExecutorServiceVirtual ThreadsProject LoomStructured ConcurrencyBlocking IO
Habr
RU

Веселимся со Spring: pet-проект по распознаванию речи

Не писал на Spring уже лет 8 и решил по фану написать мини пет проект с api и распознаванием речи. Звучит круто, лет 8-10 назад это заняло бы … вечнос…

JavaSpring FrameworkVoskspeech recognitionраспознавание речиREST APIWAVJava Sound APIpet projectвеселье
Habr
RU

Как мы перестали размножать BIRT‑шаблоны и собрали блочную платформу self‑service генерации страховых полисов в PDF

Когда документов и партнёров стало много, модель «один кейс — один шаблон» начала мешать даже простым правкам. Рассказываю, как мы вынесли композицию,…

BIRTPDFгенерация документовшаблоныJavaSpring Bootверсионированиеконфигурированиеself-serviceстрахование
Habr
RU

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реали…

APIJavaScriptJavaAndroidStack OverflowGitБезопасностьОпросIDESQLiOSРаботаTorGitHubБазы данныхHRReactDockerMITАлисаRedisQAМессенджер5gПриложениеВзломdevСервер1CPostgreSQLGrafanaСтатьи
Tproger