Как стать автором
Обновить
26
0.2
Максым Атыгаев @atygaev

Java Backend Developer

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

Подборка книг для менеджеров и тимлидов, которые развивают команды в России

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

Возможно, в новый год вы вступаете в роли техлида, тимлида или менеджера команды. А может, вы хотите сделать следующий шаг в профессиональном развитии в новом году? Собрали для вас несколько полезных книг, которые помогут начинающим и опытным лидерам команд (да и линейным сотрудникам) разобраться в тонкостях работы с людьми. Особенность подборки в том, что она состоит исключительно из книг российских авторов, которые учитывают особенности менталитета людей и контекст, актуальный для компаний в нашей стране. 

Вся подборка основана на рекомендациях Оксаны Нечитайловой, руководителя отдела сервисного дизайна продуктов YADRO, — в IT-сфере она уже 15 лет и имеет богатый опыт управления командами и построения процессов. Каждую книгу подборки Оксана сопроводила развернутыми комментариями, которые помогут вам понять, стоит ли вам тратить на нее время.

Читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии10

Простой сервис аутентификации и авторизации по JWT на основе фильтров SpringSecurity

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

Напишем простой сервис аутентификации с выдачей JWToken. Для реализации будем использовать Java 17, Maven, SpringBoot 3.2.0, h2 в памяти. Авторизация и аутентификация будет реализована на основе фильтров SpringSecurity.

Ссылка на проект GitLab

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

Безопасность web приложений с использованием Identity Provider

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

В современном цифровом мире, где взаимодействие с онлайн-ресурсами и web приложениями стало неотъемлемой частью нашей повседневной жизни, безопасность и управление личной идентификацией стали ключевыми аспектами. Именно в этом контексте становится крайне важным понятие “Identity Provider” или, сокращённо, IdP.

Identity Provider представляет собой централизованный сервис, который играет решающую роль в процессе аутентификации пользователей в сети. Это технологическое решение позволяет пользователям идентифицироваться и получать доступ к различным ресурсам и сервисам, используя единый набор учётных данных или методов аутентификации.

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

В этой статье мы рассмотрим более подробно, как происходит взаимодействие с Identity Provider, его преимущества и роль в обеспечении безопасности данных и доступа в цифровой эпохе.

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии0

Генерация контрактов OpenApi или прикладной API first: oneOf, anyOf, allOf

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


В продолжение истории с генерацией по спецификации OpenAPI покажу несколько примеров с использованием композиции и полиморфизма.

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

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

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

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

Читать далее
Всего голосов 159: ↑157 и ↓2+155
Комментарии49

Spring и Hibernate простыми словами: обзор для новичков

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

Spring и Hibernate — два популярных инструмента для Java, которые используются в разработке приложений. В этой статье мы исследуем их основные функции и особенности, как они работают вместе и почему так высоко ценятся в IT-индустрии. А сложные концепции разбираем на понятные кусочки, которые мягко введут в курс дела любого новичка: программиста, аналитика или менеджера по продукту.

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

Управление конфигурациями: Puppet vs. Chef vs. Ansible

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

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

В управлениях конфигурациями выделяются три крупных игрока: Puppet, Chef и Ansible. Все они предлагают мощные возможности, но каждый со своим уникальным подходом и философией.

Читать далее
Всего голосов 16: ↑10 и ↓6+4
Комментарии38

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

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

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

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

Цикл постов про Keycloak. Часть вторая: Контроль доступа на уровне приложения

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

Цикл постов про Keycloak. Часть вторая: Контроль доступа на уровне приложения.

Этот пост является продолжением данной статьи

В прошлый раз мы настроили ABAC (Attribute Based Access Control) с использованием Keycloak, теперь реализуем проверку разрешений на уровне приложения.

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

Разговоры о Курсах, годнота или нет?

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

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

Давайте рассмотрим все "за" и "против". Для этого возьмём две противоположные точки зрения на эту тему. Первая точка зрения - Невозможно за 6-12 месяцев подготовить вменяемого джуна, не говоря уже о более высоких грейдах. 

Соответственно, любые курсы не могут дать нормальной базы, а как следствие, они бесполезны и не могут стоить тех денег, которые за них просят (30 -300 тыс.). По этому мнению, это не более, чем развод на деньги, и само собой, ни о каком трудоустройстве после них говорить нельзя. 

Вторая точка зрения - курсы дают все то, что нужно для трудоустройства. Если ты будешь усерден, то обязательно прокачаешься хоть до синьера и трудоустроишься. Если почувствуешь, что это всё-таки не твоё, тебе обязательно вернут деньги.

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

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

Читать далее
Всего голосов 28: ↑12 и ↓16-4
Комментарии60

Разбираемся в «базовых» алгоритмах для проекта

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

Меня зовут Александр Певненко, я Java developer в СберТехе. Вместе с командой развиваю Platform V DataSpace — BaaS-продукт, обеспечивающий базовые сервисы для работы с данными.

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

Если скорость и производительность критичны для системы, то оптимизация кода перестает быть пустой тратой времени. А использование сторонних библиотек без понимания их устройства становится риском, так как может обернуться падением производительности.

Поэтому здесь я приведу несколько «базовых» алгоритмов, знание которых помогает мне работать с прицелом на эффективность кода, и дополню примерами на Python и Java.

Читать далее
Всего голосов 32: ↑18 и ↓14+4
Комментарии17

Стейты, БД и логи — разбираем шаблон диалогового Телеграм бота

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

В предыдущих статьях я рассказала, как быстро создать инфраструктуру для диалогового бота на основе Yandex Serverless Functions и базы данных YDB, а также показала, как реализовать новые команды, добавив код в шаблон. В качестве примера использовался примитивный бот, реализованный в моём репозитории ydb_serverless_telegram_bot.

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

/start
Всего голосов 6: ↑4 и ↓2+2
Комментарии1

HTTP/3: развёртывание HTTP/3 на практике. Часть 3

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

Фото Wolfgang Rottmann, Unsplash.com

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

Это третья и последняя часть серии о новых протоколах HTTP/3 и QUIC. Если, прочитав предыдущие две части об истории и основных концепциях и функциях производительности HTTP/3, вы решили, что новые протоколы срочно нужно внедрять (будем надеяться, что так вы и решили), здесь мы расскажем, как это сделать.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии12

HTTP/3: улучшения производительности. Часть 2

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

Фото Jack Hunter, Unsplash.com

После почти пятилетней разработки протокол HTTP/3 наконец приближается к окончательному выпуску. Здесь мы узнаем, как в HTTP/3 улучшилась производительность, включая контроль перегрузок, блокировки HoL и установку соединения 0-RTT.

Это вторая часть серии о новом протоколе HTTP/3. В первой мы говорили о том, зачем нам вообще нужен HTTP/3, о протоколе QUIC и новых возможностях.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии5

HTTP/3 от А до Я: основные концепции. Часть 1

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

image
Фото Florencia Viadana, Unsplash.com


После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?

Читать дальше →
Всего голосов 97: ↑96 и ↓1+95
Комментарии48

HTTP 1, 2 и 3 — просто

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

Просто о том, чем отличаются HTTP1, HTTP2 и HTTP3, а также почему HTTP3 ещё и QUIC. Статья для junior'ов, интересующихся и готовящихся к собеседованиям.

Я http-любознательный
Всего голосов 22: ↑19 и ↓3+16
Комментарии19

Как не нужно фиксить concurrency проблемы

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

Согласитесь, сoncurrency — одна из непростых тем программирования. В начале своей карьеры программиста кто‑то всячески пытается избежать погружения в эту тему, но рано или поздно приходится столкнуться с concurrency проблемами. Это может случиться, потому что нужно написать потокобезопасный код или прилетел баг на уже имеющийся код.

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

Статья не про серебряную пулю, как исправить concurrency проблемы, а про костыльные подходы веселых и находчивых, которые не решают суть проблемы.

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

Введение в GitHub Actions. Делаем пайплайн для деплоя Spring Boot проекта на VPS с помощью Docker

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

В этой статье я расскажу как построить простой пайплайн для деплоя Spring Boot проекта на сервере используя GitHub Actions и Docker.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии4

Kotlin Coding Conventions

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

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

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

Алгоритмы балансировки нагрузок

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

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

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Всего голосов 107: ↑106 и ↓1+105
Комментарии16

Информация

В рейтинге
2 216-й
Откуда
Бердск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность

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

Backend Developer
Lead
Java
PostgreSQL
Docker
Spring Boot