Как стать автором
Обновить
377
-1
Олег Чирухин @olegchir

Продакт Sber Giga IDE, продюсер в Failover Bar

Отправить сообщение

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

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

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

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

Читать далее
Всего голосов 74: ↑73 и ↓1+72
Комментарии35

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

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

Стек: OpenAPI, Spring Boot, Gradle

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

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

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

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

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

Generate it
Всего голосов 6: ↑5 и ↓1+4
Комментарии9

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

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

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

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

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

• Новости OpenJDK

• Spring, Jakarta, Web

• IDE, Gradle, тулинг

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

Волшебно! Читать далее
Всего голосов 23: ↑21 и ↓2+19
Комментарии8

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

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

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

Интересно. Читать далее
Всего голосов 28: ↑26 и ↓2+24
Комментарии8

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

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

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

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

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии7

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

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

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

• Spring, Jakarta, Web

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

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

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

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

Волшебно. Читать далее
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

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

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

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

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

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

Читать далее
Всего голосов 14: ↑5 и ↓9-4
Комментарии25

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

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

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

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

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

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

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

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

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

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

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии23

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

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

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

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

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

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии14

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

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

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

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии0

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии9

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

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

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

Читать далее
Всего голосов 47: ↑13 и ↓34-21
Комментарии116

Потерянное искусство: художники золотого века игровых обложек

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

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

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

Подробно рассказываем о феномене и вспоминаем значимых художников, которые подарили свои рисунки хорошим играм.
Читать дальше →
Всего голосов 61: ↑60 и ↓1+59
Комментарии12

IntelliJ IDEA 2023.2. Language Server Protocol, AI Assistant, IntelliJ Profiler в редакторе, GitLab merge requests, ftw

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

Только что вышла IntelliJ IDEA 2023.2. В этом релизе в IDE появилась куча интересных фичей и важных улучшений.

Вы можете скачать последнюю сборку с официального сайта, или из бесплатного приложения Toolbox, или из snap-пакетов для Ubuntu.

Этот релиз IntelliJ IDEA 2023.2 представляет вам AI-ассистента, вооруженного набором инструментов машинного обучения. IntelliJ Profiler показывает подсказки в редакторе, делая профилирование более интуитивным и иформативным. Еще, в этом релизе появилась интеграция с GitLab.

В том посте мы пробежимся по всем основным фичам IntelliJ IDEA 2023.2. В отличие от официального анонса, вся европейская политкорректность выкинута на свалку, автор перевода не видит никакой ценности в соблюдении повесточки.

Кроме того, в этот четверг в Питере будет встреча Javawatch, посвященная Java 21. Я прочитаю мини-доклад минут на 30 о новых фичах, и потом мы сможем все вместе собраться и за кружкой пива это обсудить. Анонс события в телеге, обсуждение в чате. Я бывший PMM в JetBrains Big Data и тимлид в Remote Development/Projector, а сейчас работаю над российским дистрибутивом Java - Axiom JDK.

Волшебно. Читать далее.
Всего голосов 40: ↑35 и ↓5+30
Комментарии40

Прожарка java.lang.String

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

Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.

Вкуснотища. Читать далее.
Всего голосов 30: ↑28 и ↓2+26
Комментарии14

Простыми словами об InlineKeyboard в Телеграмм ботах на java

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

За 4 месяца самостоятельной жизни моего первого бота стало понятно, что пользователям не хочется что‑либо вводить в поле сообщения. Что значительно удобней было бы просто нажимать на очередную кнопку при выборе формы документа. Иными словами, в целях упрощения взаимодействия с ботом необходимо минимизировать возможность использовать обычную клавиатуру смартфона или ПК.

И такая возможность есть, если применить InlineKeyboard — вариант кнопок (за которыми скрыт необходимый функционал), прикрепленных непосредственно к сообщению от бота.

Применить такую клавиатуру я решила при разработке другого бота. Однако столкнулась с тем, что ни в документации Telegram bot Api, ни в статьях / разборах, размещенных в Интернет, нет прозрачного пошагового пояснения всей цепочки процессов. Разобравшись для себя с взаимосвязями вызовов в InlineKeyboard я решила этим поделиться с другими разработчиками.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии12

Автоматически ищем техдолг с помощью RefactorFirst

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

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

Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.

Коротко опишу, что это такое, и как этим пользоваться.

Интересно. Читать далее.
Всего голосов 8: ↑7 и ↓1+6
Комментарии3

Новые фичи в IDEA 2023.2 EAP 7

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

Быстро приближается релиз IntelliJ IDEA 2023.2, а значит, текущему EAP-у осталось жить недолго. Вы все еще можете успеть попробовать новые фичи, и попросить исправить их до релиза, когда исправлять будет уже поздно.

JetBrains ушел из России, но его IDE всё ещё является основным средством разработки на Java. Как у бывшего product marketing manager в JetBrains, у меня есть некоторый опыт в написании и переводе таких статей. Изначально, принести эту новость сподвигло то, что в ней есть важное обновление плагина Big Data Tools, над которым когда-то работала моя команда. Кроме того, JB разродились официальной поддержкой LSP, что наверняка, стоило им титанических моральных усилий. PMM-ов бывших не бывает, им просто перестают за это платить.

Я попробую описывать самые значимые новости, касающиеся JetBrains IDE. Чтобы получать больше таких новостей - подписывайтесь на Хабре на наш блог, а ещё вы можете пройти в мою личную телегу @Javawatch.

Под катом - обзор перечисленных фичей, со скриншотами. Поехали.

Читать далее
Всего голосов 23: ↑21 и ↓2+19
Комментарии39

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

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