Discover
javaswag
98 Episodes
Reverse
В 96-м выпуске подкаста Javaswag поговорили с Егором Пишим, Java-разработчиком из команды PVS-Studio.
Обсудили, как войти в Java через моды и серверы Minecraft, почему мир кубов живет на Netty и Gradle, как грамотно организовать мультимодульные проекты с помощью build-logic и type-safe accessor’ов, а также заглянули под капот разработки статических анализаторов кода (от поиска багов и Taint-анализа до соответствия ГОСТам).
Гость
Егор Пиший — Java-разработчик в PVS-Studio.
Темы выпуска (Таймкоды)
00:00 — Интро
00:48 — Как войти в Java через свой Minecraft-сервер
02:06 — Архитектура Minecraft под капотом: деобфускация байт-кода, Bukkit/Paper API и миксины
07:09 — Производительность и многопоточность в Minecraft: 50 мс на тик, Netty и проект Folia
14:07 — Почему экосистема Minecraft выбирает сборку через Gradle
16:15 — Maven против Gradle
18:56 — Проект Shop и вебинары по Gradle
21:30 — Эволюция плагинов в проекте
25:19 — Type-safe accessors и Version Catalogs
32:30 — Плагины application и java-library: в чем разница между api и implementation
41:09 — Новый статический анализатор в PVS-Studio
45:30 — Как работает анализатор кода
51:38 — Интеграция в SourceCraft и ГОСТы безопасности
54:57 — Непопулярное мнение
56:22 — Пет-проект гостя: java-file-api (альтернатива JavaPoet)
Ссылки
Курс «Современный Gradle для Java-разработчика»
java-file-api — пет-проект Егора, альтернатива JavaPoet
В 95 выпуске подкаста Javaswag поговорили с Максимом Сенокосовым о фреймворке Quarkus, переходе на него со Scala, оркестрации с помощью Quarkus Flow, Project Leyden, оптимизациях Jackson и о том, существует ли настоящий Developer Joy в энтерпрайз-мире.
00:00 Начало
00:25 Как Макс познакомился с Quarkus: миграция со Scala
02:08 Spring vs Quarkus в Cloud Native
04:52 Developer Joy: почему в эпоху Java EE о радости разработчика никто не думал
05:44 Интерес выходцев из Java EE
07:35 Kubernetes-native
09:22 Quarkus — платформа для «скучного» среднего стека
11:20 Hibernate, аугментация байт-кода в build-time и Quarkus Panache
14:05 Декларативные HTTP-клиенты на интерфейсах
15:31 Боль с нестандартными протоколами
17:09 Онбординг новых разработчиков
19:19 Quarkus Flow:
26:48 Project Leyden
32:43 Контейнеризация c Google Jib
35:08 Драма вокруг Jackson
45:32 Помогает ли AI писать на Quarkus так же хорошо, как на Spring?
48:50 Непопулярное мнение: корень всех бед с Hibernate — бизнес-логика в JPA-сущностях
Гость:
Максим Сенокосов — техлид и разработчик
Упомянутые ссылки и материалы:
Quarkus
Доклад Гийома Смета (Guillaume Smet): «Project Leyden: How Leyden brought a new perspective»
Спецификация CNCF Serverless Workflow
LangChain4j & SmallRye
Выпуск #94 с Николаем Ишипиковым про Camunda и Kotlin DSL
Ссылки на подкаст:
Сайт — https://javaswag.github.io/
Телеграм — https://t.me/javaswag
Youtube — https://www.youtube.com/@javaswag
X (Twitter) — https://x.com/javaswagpodcast
В 94-м выпуске подкаста Javaswag поговорили с Николаем Шипяковым, Java-разработчиком, который провел всю свою карьеру в финтехе и суровом энтерпрайзе. В этом эпизоде мы проследили эволюцию энтерпрайз-решений: от тяжеловесных вендорских платформ вроде IBM WebSphere и IBM BPM, где бизнес-логика «рисовалась кубиками», до современных подходов со Spring, Kotlin и Camunda.
Николай поделился историей о том, как на хакатоне зародилась идея создать собственный Kotlin DSL для описания бизнес-правил, который успешно заменил неповоротливые решения и прослужил долгие годы. Мы также разобрали архитектурные кейсы, обсудили, как подружить синхронные REST-вызовы с асинхронными процессами в Camunda при помощи Kafka и Kotlin Flow. В завершение выпуска поговорили о выборе оркестраторов (Camunda 7, 8, Temporal), внутренней кухне организации ИТ-конференций и обсудили непопулярное мнение о том, почему gRPC зачастую переоценен в энтерпрайзе.
Шоуноты
00:00:22 Приветствие
00:01:43 с .NET на Java и первый крупный проект для Альфа-Банка
00:04:43 Каким был энтерпрайз в десятых годах
00:09:04 Переход в Тинькофф (Т-Банк) в 2015 году:
00:16:53 Смена технологического стека: отказ от решений IBM в пользу оркестратора Camunda в связке со Spring и Kotlin
00:23:33 Что такое Camunda простыми словами: почему этот инструмент удобно использовать как надежную стейт-машину для сложных распределенных транзакций
00:27:11 Идея с хакатона: создание кастомного Kotlin DSL для удобного описания бизнес-правил (вместо визуальных редакторов для бизнеса), который стал успешным внутренним продуктом
00:33:01 Преимущества подхода “Contract/Code First”: тестирование, контроль версий в Git и трейсинг процессов, написанных на Kotlin DSL
00:47:40 Внутренняя мобильность в Т-Банке: почему разработчику полезно менять проекты и как найти команду сильных сеньоров внутри одной компании
00:53:42 Разбор архитектурного кейса: как объединить асинхронный процесс Camunda и синхронный REST-контроллер с использованием топиков Kafka и Kotlin Flow
01:01:17 Очереди в энтерпрайзе: в каких случаях стоит использовать Kafka, а когда для обработки задач подойдет PostgreSQL
01:05:46 О важности observability (наблюдаемости): история инцидента со 100% загрузкой CPU в базе данных из-за отвалившейся репликации PostgreSQL
01:09:02 Переход в стартап и проблема выбора: почему старушка Camunda 7 до сих пор актуальнее, чем Temporal или платная Camunda 8 с закрытой архитектурой
01:20:18 Организация собственной технической Java-конференции от компании: сбор программы, уникальные доклады и почему платные билеты улучшают отношение аудитории
01:32:18 Непопулярные мнения от гостя: почему группа Ария без Кипелова звучит отлично, и почему технология gRPC часто применяется в энтерпрайзе не по делу
01:39:23 О важности софт-скиллов
📚 Упоминания в выпуске
Гость https://ru.linkedin.com/in/nikolay-shipyakov-692a48b1
В этом выпуске к нам пришел Паша Финкенштейн — Developer Advocate в BellSoft, человек с нестандартным бэкграундом и огромной энергией. Мы поговорили о том, как политолог и психолог стал экспертом по Java, обсудили менеджерские и архитектурные фейлы, вспомнили забытое искусство правильного дебага и прошлись с критикой по Ktor, Kotlin Multiplatform и современному вектору развития JetBrains.
00:00:41 Знакомство с гостем. Паша Финкенштейн: Developer Advocate, фанат настолок и 3D-печати.
00:02:19 Шок-контент: политология, «Майн кампф» и диплом по психологии в бизнесе. Как Паша жил без профильного ИТ-образования.
00:06:34 Старт в ИТ через боль и техподдержку. Первые строчки кода и необычные курсы по Java без заумной теории.
00:09:01 Вторичный мониторинг АЭС в Сибири, хардкорный Eclipse RCP и мертвые технологии: GWT, Wicked, TeaVM.
00:18:12 Внезапное тимлидство и классические менеджерские ошибки (олимпиадные задачки на собесах — не надо так!).
00:25:00 Утерянное искусство дебага. Почему ставить 20 обычных брейкпоинтов — это плохо, и как правильно использовать логпоинты и условные остановки.
00:30:42 ДомКлик и продукт без багов в проде (почти). Разбираем эпичную архитектурную ошибку с parallelStream, HikariCP и Kubernetes health-чеками.
00:40:41 Опыт перехода в новую компанию сразу всей командой: вин-вин для всех или скрытые риски?
00:46:47 Суровый менеджерский взгляд на переписывание кода, рефакторинг и внедрение новых языков (например, Zig) ради перформанса.
00:51:12 Почему Паша ненавидит овертаймы, ночные онколы и как жестко разделять работу и личные pet-проекты.
00:58:15 Как управлять 40+ людьми на позиции CTO в Home Credit Bank и почему этот опыт заставил вернуться поближе к коду.
01:03:03 Lamoda. Data Engineering, старт DevRel-карьеры и легендарный “Speaker’s Club” Жени Голевой (формат 5-минутных докладов без слайдов).
01:07:17 Секреты успешных докладов на примере турне “Kotlin: 2 года в продакшене, ни единого разрыва”.
01:14:42 Три главные книги разработчика от Паши (спойлер: Java Concurrency in Practice нужно перечитывать каждый год).
01:17:10 Попадание в Big Data Tools от JetBrains через вопросы к спикеру после доклада.
01:22:49 Как сломать языковой барьер, начать думать и шутить на английском (экстремальный метод из Египта).
01:31:30 Непопулярное мнение №1: Ktor — не для Enterprise (нет DI, типизации рутов), а тулинг Kotlin Multiplatform (KMP) — это главный заградительный барьер технологии.
01:39:56 Непопулярное мнение №2: Пессимистичный прогноз будущего JetBrains. Отставание в AI (Claude обходит AI Assistant), медленный Fleet, закрытие Space и параллели с Borland. IDE Zed как альтернатива.
01:47:32 Философия подписок: почему IntelliJ IDEA Community и Ultimate — это правильный подход к монетизации.
01:50:22 Текущие задачи в BellSoft: переписывание документации с помощью ИИ и помощь в создании контента.
01:53:10 Почему Claude не заменит программистов. Код-ревью и архитектура — то, в чем LLM всё ещё сильно ошибаются (разбираем проблему N+1 в jOOQ, написанную ИИ).
📚 Упоминания в выпуске
Предыдущие выпуски: Выпуск #55 про GWT и J2CL, Выпуск #57 с Алексеем Андреевым про TeaVM, Выпуск с Дмитрием Чуйко.
Книги:
Java Concurrency in Practice (Brian Goetz)
Designing Data-Intensive Applications (Martin Kleppmann)
Enterprise Integration Patterns (Gregor Hohpe, Bobby Woolf)
Инструменты и фреймворки: Eclipse RCP, GWT, J2CL, TeaVM, OSGi, HikariCP, jOOQ, Spring, Ktor, Kotlin Multiplatform, Flutter, Zed Editor, Claude (Opus).
Гость https://www.linkedin.com/in/asm0dey/
В этом выпуске мы погружаемся в мир функционального программирования вместе с Никитой Волковым, архитектором и разработчиком на Haskell и Rust. Обсуждаем, почему «чистота» функций — это не ограничение, а суперсила, как монады помогают нам в повседневной Java-разработке и почему будущее за строгими контрактами и DSL.
Во второй части выпуска Никита рассказывает о своем проекте pGenie — инструменте для работы с PostgreSQL, который предлагает альтернативный взгляд на интеграцию с базами данных, делая SQL «источником истины».
00:00:00 Начало
00:02:01 Эволюция мышления: путь от PHP и Scala к Haskell и Rust.
00:07:37 Java 8 vs Haskell. Истинная чистота и детерминизм
00:15:03 Функциональщина, монады, функторы и концепция Optional
00:27:59 Property-based testing
00:36:51 Как FlatMap и монада STM управляют недетерминированным внешним миром
01:01:34 Проект pGenie. Почему Рич Хикки критиковал ORM и в чем боль синхронизации контрактов
01:13:29 Философия OpenAPI для баз данных. Взгляд на БД как на изолированный микросервис со статической структурой запросов
01:38:06 Workflow разработки с pGenie: генерация типизированного Java-кода и защита схемы от даунтайма через файловые сигнатуры
01:50:56 Тренды Open Source в эпоху ИИ: драма вокруг генерации кода, ИИ-слоп и борьба с агентами через «пасхалки» в коммитах
01:59:51 Совет стартаперам и Рубрика «Непопулярное мнение»: почему ИИ убьет динамические языки программирования
Гость: Никита Волков https://github.com/nikita-volkov
Проект: pGenie на GitHub
Книга: «Learn You a Haskell for Great Good! https://learnyouahaskell.github.io/chapters.html
“Консалтинг Никиты” https://codemine.io







