Search
Write a publication
Pull to refresh
387
3.2
Олег Чирухин @olegchir

Продакт GigaIDE Cloud, фаундер Anarchic

Send message

Микросервисы на основе событий с Kafka Streams и Spring Boot

Level of difficultyMedium
Reading time32 min
Views20K

Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике.

Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.

Читать далее

Релиз Unity 2023.2 Tech Stream

Level of difficultyEasy
Reading time8 min
Views5.3K

В свежей версии 2023.2 TS появилось несколько кроссплатформенных улучшений. Поработали над производительностью (в особенности — над тормозами освещения на мобилках). Нарисовали более красивые атмосферные эффекты для HDRP. Продумали использование VFX Graph. Проапгрейдили UI Toolit, починили баги для VR. Вернулись к понятной схеме названия версий: Не Unity 1234.5 XYZ, а просто Unity 6.

Всё вместе, это позволит поднять реализм и удобство на новый уровень, и заставит разработчиков рвать на себе рубашку за Unity в патриотическом экстазе... или такова легенда. Давайте разберемся.

Волшебно. Читать далее

Почему у компаний не получаются тексты и как исправить эту ситуацию – 11 антипримеров и модель брифа на контент

Level of difficultyEasy
Reading time13 min
Views1.5K

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

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

Читать далее

Эта неделя в мире Java (21 ноября)

Level of difficultyEasy
Reading time10 min
Views4.8K

Все сенсации, интриги, расследования, которые вам нужны 21 ноября.

Брайан Гёц — гриб (видео под катом, интервью с @boomburum)

jHipster требует Java 21 и не согласен на меньшее

Живой мастер-класс по JUnit от JUnit-джедая

Депо поездов имени В.В. Спринга

Тонна фиксов CVE уязвимостей

Первые попытки поддержать CRaC

Новая поделка: Penna для логов в JSON

Обновы в Quarkus, Micronaut, Payara, OpenLiberty, Mojarra, Grails, Tomcat...

Ничоси. Читать далее

Java-инспекции в IDEA 2023.2

Level of difficultyEasy
Reading time2 min
Views4K

Это ретроспективный пост про Java-инспекции IntelliJ IDEA 2023.2, в преддверии 2023.3 (которая сейчас в состоянии Beta 2). Несмотря на то, что эта версия вышла еще в июле, не все в точности помнят, что же там произошло, и какую версию они вообще используют.

А между тем, там не всё хорошо. Например, баги с тэгом @snippet до сих пор не поправили.

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

Залетайте под кат и погнали!

Читать далее

IntelliJ IDEA 2023.2. Долгожданный LSP, встроенный AI-чат, апгрейд до Windows 10 и -Xmx2G

Level of difficultyEasy
Reading time6 min
Views15K

Это ретроспективный пост фичей IntelliJ IDEA 2023.2, в преддверии 2023.3 (которая сейчас в состоянии Beta 2). Несмотря на то, что эта версия вышла еще в июле, не все в точности помнят, что же там произошло, и какую версию они вообще используют.

Идея раздулась до 2 гигабайт хипа, появилась поддержка LSP-серверов, и теперь вам нужно проапгрейдиться с Windows 7 минимум до Windows 10.

Из мелочей: появился чата с нейронкой "AI Assistant". Профилировщик научился отображать подсказки прямо в редакторе, а интеграция с GitLab позволяет меньше переключаться между браузером и IDE.

Хотите узнать подробней?

Восхитительно! Читать далее

Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking

Level of difficultyHard
Reading time18 min
Views16K

Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно - разработки игрового websocket-tcp сервера на Netty.
Разберем технические особенности реализации такого сервера, способы улучшения производительности, игровую логику и т.д.

Читать далее

Зачем писать на Хабр, если каждый раз потеют ладони?

Level of difficultyEasy
Reading time9 min
Views8.1K

Сегодня стартует VI конкурс технических статей на Хабре «Технотекст». Команда комьюнити проводит его во второй раз, участвует в четвёртый. Так получилось, что трое из нас — активные авторы Хабра, которые писали для компаний, писали для себя и пишут для блога Хабра. И каждый раз, нажимая «Опубликовать», мы вздрагиваем, а ледяные ладони покрываются мелкими капельками пота. Поэтому мы стараемся делать конкурс с двойным дном: уютным для авторов-участников и познавательным для тех, кто только собирается присоединиться к VII или VIII конкурсу. Сам по себе «Технотекст» — это скорее ярмарка тщеславия точка сбора крутых авторов, способ получить немного признания и лучиков славы. Эти авторы все — победители, потому что написать статью (любую, не только на Хабр), опубликовать её и отвечать за свой текст — это уже подвиг. Потому что не так-то всё просто. 

Читать далее

Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении

Level of difficultyMedium
Reading time7 min
Views19K

Стек: OpenAPI, Spring Boot, Gradle

Небольшой гайд по генерации серверной и клиентской части в Spring Boot приложении.

Краткое содержание:

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

В сервисе-сервере сгенерируйте сервер по спецификации. Настройте созданные контроллеры/имплементируйте интерфейсы.

В сервисе-клиенте сгенерируйте клиентскую часть по спецификации. Подключите сгенерированного feign клиента.

Generate it

Эта неделя в мире Java (13 ноября)

Level of difficultyEasy
Reading time7 min
Views7.2K

Если вам лень читать три тысячи тредов в рассылке OpenJDK и ленты с новостями сотен обновлений фреймворков, то этот дайджест - для вас.

Java-дайджест за последнюю неделю (3 ноября):

• Обзор статей на Хабре

• Новости OpenJDK

• Spring, Jakarta, Web

• IDE, Gradle, тулинг

• Странные фреймворки

Волшебно! Читать далее

Helidon 4 вышел, а никто и не заметил

Reading time5 min
Views8.6K

Те, кто использует Helidon в проде, наверняка точно знают, зачем им это нужно. Что делать остальным? Основная задача хомячка — объяснить детям концепцию смерти. Кажется, точно так же основная задача Helidon для широких народных масс — посмотреть на самые новые фишки Java и понять, нужно вам это или нет. Посмотрим, что же произошло в версии 4.0.0...

Интересно. Читать далее

Разработка браузерных игр с использованием Phaser3, React, Typescript

Level of difficultyMedium
Reading time15 min
Views24K

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

Разработка игр это круто и весело! В данной статье разберем пошагово разработку демо небольшой браузерной игры.

Читать далее

Эта неделя в мире Java (3 ноября)

Level of difficultyEasy
Reading time5 min
Views8.8K

Java-дайджест за последнюю неделю (3 ноября):

• Spring, Jakarta, Web

• IDE и редакторы

• Тестирование

• Статьи и подкасты

• Обзор статей на Хабре

Волшебно. Читать далее

Они поклялись любить друг друга в горе и радости, а также мыть полы по очереди

Level of difficultyEasy
Reading time6 min
Views3.1K

Работа занимает огромную часть жизни. Кроме стандартных восьми рабочих часов, увлеченный работой человек тратит свободное время на дополнительное обучение, разбирается в сложных задачах. В IT-отрасли трата личного времени считается само собой разумеющимся и одобряется. Жизнь в профессии становится интереснее и разнообразнее, когда приходят новые задачи, проекты. Хочется уделять время всему: читать про новинки отрасли, разбираться в новых проектах, хорошо делать задачи, На это уходит время. И часто, не замечая того, человек все больше и больше тратит на рабочие интересы, и все меньше – на дела семейные и бытовые.

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

Особенно часто женщины сталкиваются с тем, что близкие не принимают их профессиональные амбиции и стремления, «ревнуют» к работе. Зачастую считается, что предназначение женщины все-таки в семье и детях. Конечно, есть и другие случаи и их становится все больше. Но в этой статье мы рассмотрим - а как же все-таки не отказываться от профессиональных амбиций, но и не разрушать близкие отношения с родными. 

Читать далее

Какого специалиста искать для озвучания игры? Звуковая команда: структура и обязанности

Reading time12 min
Views1.2K

Приветствую всех, кто интересуется разработкой игр!

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

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

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

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

Читать далее

Как я использую WordPress для создания Телеграм-ботов

Level of difficultyEasy
Reading time7 min
Views13K

Не мало людей удивятся «А что так можно было?». Да – хорошие боты можно писать на PHP. Да – WordPress хорошо подходит в качестве фреймворка. Далее поделюсь своим опытом. Речь пойдет о веб-хуках из Телеграм.

Погодите хейтить за нагрузку и тяжесть.

Читать далее

Реестр российского ПО: базовая информация и требования для попадания

Level of difficultyEasy
Reading time8 min
Views17K

Реестр российского программного обеспечения, появившийся более 5 лет назад, в 2022 году приобрел небывалую популярность: за год на включение в него было подано около 20 тыс. заявлений, что превышает суммарное число заявок за предыдущие 4 года, однако в настоящее время в него включено чуть более 17 тыс. программ, а значит статистика успешности подачи заявлений проста: в реестр проходит около 40% заявителей.

В этой статье я попробую объяснить простыми словами (перевод с юридического на русский), как попасть в реестре российского ПО, а самое главное: зачем?

В свою очередь в следующих статьях я постараюсь детально разобрать все этапы подачи заявления для оказания государственной услуги по включению в реестр российского ПО. Напомню: всего их 13.

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

Читать далее

Puppeteer в Node.js: Антипаттерны, которые следует избегать

Reading time9 min
Views5.4K

Puppeteer — это мощная библиотека автоматизации работы с браузером для веб-скрейпинга и интеграционного тестирования. Однако ее асинхронный реалтайм API оставляет вам достаточно много пространства для неумышленного создания проблем и антипаттернов.

Хоть эти антипаттерны и не являются полноценными ошибками, исключение их из скриптов (или хотя бы разумное использование) значительно повысит надежность вашего Puppeteer-кода.

Давайте начнем.

Читать далее

Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Level of difficultyEasy
Reading time8 min
Views13K

Хотите узнать, как ускорить выполнение JavaScript в веб-приложениях? В этой статье я подробно расскажу о веб-воркерах, шине данных между основным потоком и веб-воркерами, и как это можно применить в Angular, React и Vue, используя мой npm пакет web-worker-bus. Вы узнаете, как вынести тяжелые вычисления в отдельные потоки, организовать обмен данными, и как это все собрать в единую архитектуру. Примеры кода, инструкции и советы внутри помогут вам сделать ваши проекты быстрее и эффективнее с помощью этого инструмента. Освоение этого подхода и использование web-worker-bus может стать значимым улучшением в ваших проектах. Загляните, если интересуетесь оптимизацией JavaScript и хотите узнать, как мой пакет может вам в этом помочь!

Читать далее

ChatGPT помогает разгрузить Middle разработчика: как за 5 минут сделать 1-2 часовую задачу

Reading time8 min
Views43K

Привет, меня зовут Артем Рыбин, и я team lead backend developer в KOTELOV. Сегодня я покажу, как решить практическую задачку с помощью нейросети и сэкономить больше часа. Будем покрывать unit тестами DTO класс в приложении на Laravel.

Читать далее

Information

Rating
2,052-nd
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Chief Executive Officer (CEO)
Lead
From 2,000,000 ₽
Product management
Project management
Marketing research
Game Development
Web development
Software development