Pull to refresh
0
0
Владислав Кузнецов @banger

Java [Middle] Developer

Send message

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

Level of difficultyHard
Reading time20 min
Views5.9K

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

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments1

Spring MVC REST API: автономная конфигурация при написании модульных тестов

Reading time8 min
Views1.8K

Создание и настройка необходимых компонентов без дублирования кода

Отправка HTTP-запросов в тестируемую систему без дублирования кода

Настройка Spring MVC Test framework, при написании модульных тестов для Spring MVC REST API с помощью JUnit 5.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments1

Проект «часов Уизли» с демонстрацией местоположения членов семьи

Reading time6 min
Views28K


Я хотел удивить жену на Рождество. Она – рыжая, фанат «Гарри Поттера», а ещё и мать; всё это вдохновило меня на создание «часов Уизли». Идею я придумал в феврале, поэтому у меня было 10 месяцев на разработку и создание проекта.

Для людей, незнакомых с Гарри Поттером и семейством Уизли, поясню, что у семьи магов Уизли есть волшебные часы, которые показывают не время, а местоположение членов семьи, для каждого из которых есть своя стрелка. Вот отрывок из книги «Гарри Поттер и Кубок огня» (Дж. Роулинг, 2000):
Миссис Уизли взглянула на напольные часы, стоявшие в углу. Гарри они понравились. Если вы хотели узнать, который час, они бы вам совсем не пригодились – однако оказывались весьма полезными для кое-чего другого. У них было девять золотых стрелок, на каждой из которых было выгравировано имя одного из членов семейства Уизли. На циферблате были не цифры, а описания мест, где мог находиться каждый из членов семьи. Там были «дом», «школа», «работа», а также «в пути», «потерялся», «больница», «тюрьма»; в том месте, где у обычных часов должна была быть цифра «12», значилось «смертельная угроза». Восемь стрелок указывали на «дом», а стрелка мистера Уизли, самая длинная, всё ещё показывала на «работу».

«О, а вот и ваш отец едет!» – внезапно сказала она, вновь посмотрев на часы. Стрелка мистера Уизли вдруг начала крутиться, переходя от «работы» к «в пути», а через секунду вздрогнула и остановилась на отметке «дом» вместе со всеми остальными, и все услышали, как он зовёт их с кухни.
Читать дальше →
Total votes 127: ↑125 and ↓2+123
Comments32

Kotlin Coding Conventions

Level of difficultyEasy
Reading time17 min
Views7.7K

От автора поста: ниже представлен Kotlin Code Style на 2 мая 2023 года. Конвенция постоянно меняется, но основные принципы уже заложены и неизменны. Перевод предоставлен без комментариев, как есть.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments6

«Скачал плагин и опингвинился». Полезные инструменты для работы с IDE

Reading time4 min
Views12K

Эффективность разработки зависит не только от скиллов программиста, но и от рабочего окружения. Так, чтобы оптимизировать процесс, можно использовать специальные плагины или расширения IDE. В тексте собрали самые полезные, по мнению специалистов Selectel, инструменты. Сохраняйте подборку в закладки и делитесь своими вариантами в комментариях.
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments6

Леньхаки. Так лень, что не лень

Reading time6 min
Views33K

Миша – удивительный чувак. Поразительный и заразительный. Лучший руководитель в региональной IT-компании. Ещё и офигенный программист.

Мы разговаривали всего полчаса, а он успел меня заразить. Вот вы сейчас о чём подумали? Ну, явно не о насморке… Наверное, что он увлечённо рассказывает о повышении эффективности? Новых технологиях? Цифровизации? И я прям такой наслушался и кинулся статью писать?

Нет. Миша – самый ленивый руководитель на свете. Всё, что он любит – программировать. Остальное ему лень. Настолько лень, что он готов на всё, лишь бы побыстрее вернуться к программированию. Похоже, потому и эффективный, без кавычек.

И его лень заразительна. Так заразительна, что мне лень писать много букв. В кои-то веки буду краток.

Читать далее
Total votes 108: ↑90 and ↓18+72
Comments30

Стратегии тестирования микросервисов

Reading time11 min
Views32K

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

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments4

Как Яндекс перепридумал поиск для разработчиков

Reading time9 min
Views37K

У вас бывало, что открываешь поиск, ищешь что-то по программированию и не находишь ответ? Тогда эта история для вас. 

Меня зовут Алексей Степанов, я руковожу службой исследований машинного обучения поиска Яндекса. Сегодня я расскажу непростую историю. Она про проблему, до решения которой у нас слишком долго не доходили руки. Из поста вы узнаете, почему стандартная метрика качества поиска не учитывала интересы разработчиков и как мы её улучшили. Расскажу про новую нейросеть CS YATI, обученную понимать таких же айтишников, как и мы. Ну и про грабли на нашем пути тоже расскажу, куда без них.

Этот пост основан на моём докладе с Data Fest 2022, но не во всём (мой коллега Максим Хурсанов @Maxim2207 существенно расширил историю).

Читать далее
Total votes 89: ↑87 and ↓2+85
Comments68

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time37 min
Views83K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 88: ↑87 and ↓1+86
Comments27

Айтишники Кремниевой долины сошли с ума: как набирает популярность процедура удлинения ног

Reading time6 min
Views40K


Думали, что NFT и «умные» соковыжималки — это самое странное, что можно вообразить? Ну, крепко держитесь за стул! Потому что у гиков есть новое развлечение. Они платят кучу денег, чтобы хирургически удлинить себе ноги. Это не шутка: GQ пишет, что мужчины из Google, Amazon и других корпораций массово решаются на болезненную операцию, чтобы увеличить свой рост.


Такие операции стоят от $75 000 до $125 000, их делают популярные клиники в Лас-Вегасе и Сакраменто. Человеку ломают ноги и вставляют специальные стальные механизмы, которые со временем удлиняют кости до 15 см. Всё это время желательно поменьше двигаться, так что удалёнка пришлась очень кстати.


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

Читать дальше →
Total votes 53: ↑41 and ↓12+29
Comments364

Зри в корень: java.lang.Object

Reading time8 min
Views85K
В Java в вершине иерархии классов лежит класс java.lang.Object. Лежит и лежит, долгое время я им совсем не интересовался.

На собеседованиях часто спрашивают, какие в нем есть методы, поэтому они как-то сами собой выучились. Пришло время посмотреть на этот класс более внимательно. Первый вопрос, который у меня возник, есть ли вообще в исходниках Java класс java.lang.Object. Он же ведь необычный, он вполне может быть жестко зашит в реализацию, как самый верхний.

Однако, такой класс есть и я приведу тут исходники java/lang/Object.java, опустив javadoc, и попытаюсь пролить свет на некоторые моменты связанные с реализацией jvm:
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments16

Information

Rating
Does not participate
Location
Киров (Кировская обл.), Кировская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
From 300,000 ₽
Git
Java
Apache Maven
Spring Boot
Docker
MongoDB
OOP
Hibernate
Apache Kafka
PostgreSQL