В мире Java-разработки, где технологии эволюционируют с головокружительной скоростью, особую ценность приобретают специалисты, готовые делиться своими знаниями и опытом. Сегодня мы беседуем c экспертом Никитой Летовым, чьи выступления на профессиональных конференциях, а также авторские статьи привлекают внимание тысяч разработчиков.
От тонкостей работы с транзакциями в Spring до внедрения передовых технологий в крупнейших банках страны — его путь отражает не только личный профессиональный рост, но и эволюцию всей Java-экосистемы.
Автор - Наталья Стрелкина.
Вы выступали на Java конференциях JUG.RU. Какие темы Вы освещали?
Я несколько раз выступал на конференциях jPoint и Joker в роли спикера и приглашенного эксперта, первое моё выступление на jPoint 2022 было связано с работой с транзакциями в базе данных на Java фреймворке Spring. Данный доклад стал очень популярным как на самой конференции, так и после публикации его на YouTube, где он собрал более 50 тысяч просмотров среди профессиональных разработчиков.
В 2023 году на конференциях JUG я рассказывал про разработку входной точки в приложение на базе Spring Cloud Gateway, а также, затрагивал темы реактивного подхода и использование Spring Native.
Расскажите, как Вам пришла идея поделиться своими знаниями и опытом с другими разработчиками?
Обожаю делиться, в особенности знаниями и опытом. С самого начала работы с технологиями и фреймворками мне было очень интересно как оно работает внутри, “под капотом”, так как интересовал меня не только получаемый результат.
Естественно, это занимает много времени, важно изучить ту или иную тему для получения глубокого понимания внутреннего устройства, однако, когда ты сталкиваешься с проблемой, другого пути и нет и приходится разбираться. Так вот, решение проблем, на которые нет явного ответа в Google или на StackOverflow, побудило меня выступать на конференциях с разбором технологий и решением технических проблем, предоставляя людям факты и выводы, сделанные во время изучения той или иной технологии.
Кроме таких публичных конференций во время работы в “Росбанке” мне очень часто было необходимо выступать хедлайнером на внутренних технических воркшопах, посвящённых внутреннему обучению и менторству других профессионалов.
Как Вы считаете, важно ли для профессиональной карьеры разработчика учувствовать в подобных конференциях?
Да, я считаю, что любой профессионал в своей сфере, особенно разработчик, должен посещать такие конференции и если не всегда в качестве спикера, то в качестве слушателя 100%. На таких вот встречах можно найти ответы на вопросы и решения проблем и поделиться своими знаниями.
Есть возможность услышать о новых технологиях, еще не выпущенных в свет от самих создателей, а также, пообщаться со специалистами международного уровня с огромным опытом работы. Я уже не говорю о том, что такие конференции прекрасное место для нахождения новых друзей и даже новой интересной работы.
А как на счет профессиональных сообществ?
Профессиональные сообщества играют значительную роль в карьере разработчика, ведь там собираются инженеры из аналогичной прикладной области, сталкивающиеся каждый день с похожими задачами и проблемами. Не стоит даже объяснять, что совокупный опыт членов подобных ассоциаций огромен.
В чатах таких ассоциаций можно найти ответ на любой вопрос, и он будет намного качественнее, чем полученный на случайных форумах в интернете. Я сам состою в крупных сообществах, таких как IEEE и Raptors.Dev. В последнем я принимаю активное участие в подготовке соревнований для разработчиков и являюсь действующим судьей.
Как Вы относитесь к новым технологиям и инструментам в Java? Используете ли вы их в своей работе?
В самом начале карьеры я услышал следующее утверждение: “Если разработчик сделает перерыв в обучении хотя бы на полгода, ему придется начинать все заново”.
Я полностью согласен с данных высказыванием и оно актуально как для Junior разработчиков, так и для Senior с десятками лет стажа. Языки программирования, в особенности, Java развиваются постоянно и успеть за появлением новых подходов порой довольно трудно. Однако, к появлению новых технологий в фреймворков в Java я отношусь крайне позитивно, стараюсь следить за их развитием и той пользой, которую они приносят.
Если я вижу практический смысл в той или иной разработке, я обязательно её изучу, протестирую, и, если получу результаты, которые меня удовлетворяют – я обязательно буду ее использовать и поделюсь результатами со своими коллегами.
Поделитесь своими успехами во внедрении новых технологий на проектах с которыми вы работали.
На ум приходят как минимум две истории из моей карьеры в “Росбанке” на проекте разработки бекенда для мобильного приложения ДБО.
Первая - это решение проблемы долгого запуска микросервисов с жестким лимитом оперативной памяти. Проведя изучение изменений в компиляторах C1 и C2 между Java 11 и 17, мною было решено обновлять кодовую базу до последней, в тот момент LTS версии Java, что было правильным действием и решило проблему.
Вторым успешным решением стало внедрение Spring Native, технологии, серьёзно оптимизирующей сборку, компиляцию и запуск Java кода. С ее внедрением на части сервисов, удалось оптимизировать работу кластера OpenShift, сократив количество потребляемой сервисами памяти вдвое, а время запуска с 10-12 секунд до 0.1, то есть до десятых долей секунды, что серьезно увеличило стабильность системы и время простоя во время обновлений.
Напоследок, расскажите какие по Вашему мнению тенденции в области Java являются наиболее перспективными?
В области разработки коммерческого ПО я вижу, все больше и больше интереса к реактивным, асинхронным подходам. Почти каждый современный интерфейс уже не заставляет вас по долгу ждать после нажатия на какой-либо элемент, делая ваш опыт работы максимально плавным и отзывчивым.
Реализация такого поведения порой требует серьезных изменений на серверной части и перевода приложения на реактивный стек. В Spring фреймворк реализующий реактивные методы называется Webflux и первая его версия была выпущена еще в 2017, однако, серьезный интерес к нему со стороны разработки появился только в последние годы. Я и сам активно изучаю этот проект и освещал его в своих докладах, а также в последней публикации для журнала Universum – Технические науки.
Я уверен, что будущее разработки на Java и Spring стоит именно за реактивными подходами.