Pull to refresh
4
Никитин Иван Андреевич@in86

Интересующийся

7
Subscribers
Send message

Graph Ql клиент. Быстрый старт

Level of difficultyMedium
Reading time15 min
Reach and readers4.9K

Приветствую, коллега. Не так давно столкнулись с необходимостью реализовать взаимодействие с Graph Ql сервисом. Появилась задача аутентификации, настройки подключения, получения и передачи потребителям информации. В результате нашли много материалов, в которых описано, как развернуть Graph Ql сервис, как его использовать с базой данных. Например вот, и вот. Это подробные статьи, которые помогут решить сложные задачи. Но что делать, если стоит задача поменьше и хочется получить комплексное описание решения? Хочу предложить вариант, насытив его информацией, которая принесет пользу. Заказчик получит работающий сервис, разработчик необходимые знания и способ решения, который можно дополнять и улучшать для конкретных условий использования. Для погружения в Graph Ql и детали его использования есть статьи - вотвотвот и документация. Эта статья будет сосредоточена на задаче реализации клиента к Graph Ql серверу. Если для вас стоит подобная задача, то нам по пути.

Поехали ...

Spring. Аутентификация на reactive feign

Level of difficultyMedium
Reading time17 min
Reach and readers3.1K

В этой статье проведены параллели между обработкой ошибок в feign и reactivefeign клиентах на примере реализации starter, который реализует аутентификацию по OAuth 2.0 в spring reactive подходе. В этой статье не будет описания реактивного стека. Если Вы хотите разобраться, какие есть преимущества и зачем его применять, рекомендую посмотреть эту серию статей. В этой статье не будет сравнения реактивного и нереактивного подхода. Для этого есть такая статья. В этой статье я хочу показать, что перевод компонентов на реактивность - несложная задача по рефакторингу, которая не займет много времени. Добавить монетку в копилку того, что перевод на реактивность - процесс, основные затраты в котором нужно сделать на первом шаге, когда Вы решаетесь применять этот подход, а адаптировать существующие компоненты просто.

Читать далее

Spring Reactor. Эволюция сервисов. На пути к реактивности

Level of difficultyMedium
Reading time19 min
Reach and readers8.9K

Это статья описывает опыт миграции традиционного приложения java spring на Spring reactor стек. О специфике разрабатываемой информационной системы, уже подробно рассказывал. Кратко о системе - смешанная сервисно-микросервисная архитектура. Чтобы получить бизнес результат, требуется вызвать микросервис, который вызывает сервис, который вызывает набор микросервисов для формирования ценностного набора данных. Получается цепочка вызовов. Сервисы и микросервисы разрабатывались на традиционном технологическом стеке, без использования реактивного подхода.

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

Читать далее

Keycloak Starter. Удобный способ аутентификации и авторизации

Level of difficultyMedium
Reading time21 min
Reach and readers20K

Это статья-туториал. Рассмотрим в ней, как сделать компонент, который поможет забыть о необходимости дублировать механизмы аутентификации и авторизации. Цель статьи - реализовать starter, который можно будет легко и удобно подключить к Spring Boot проекту. Предлагаемая цель актуальна?

Читать

Настраиваем TLS контекст. КриптоПро в помощь

Level of difficultyEasy
Reading time17 min
Reach and readers12K

Эта публикация – практический кейс c кратким туториалом по реализации TLS-соединения, на основе российских стандартов шифрования, основанных на компонентах КриптоПро (CP). Статья не содержит рекламы или попытки сподвигнуть к выбору конкретных компонентов. Я столкнулся с задачей реализации шифрованного подключения к системам бюро кредитных историй (БКИ) в части оценки платежеспособности физических лиц. У меня было ограничение - необходимо было использовать КриптоПро (CP). В процессе реализации задачи открыл для себя несколько интересных моментов. Процесс их "открытия" был чарующим и загадочным. Чары мне обеспечил CP, а с загадками помогали службы поддержки БКИ и CP. Этой статьей хочу помочь сэкономить время и сделать прозрачным процесс реализации шифрованного подключения. В начале статьи дам небольшой теоретический экскурс. Если Вас интересуют детали реализации, то сразу переходите к разделу "Установка и настройка CP компонентов", код, приведенный в статье выложен тут. Приятного чтения.

Читать

Нагрузи меня, Gatling

Level of difficultyMedium
Reading time16 min
Reach and readers8K

Привет. Это статья-туториал про выбор технологии и реализацию проекта нагрузочных тестов для API REST микросервисов. Про себя и специфику продукта, над которым работаю, я подробно описывал тут, когда рассказывал о интеграционных тестах. Здесь этому уделять внимание не буду. Если решитесь продолжать, то Вас ждет длинное чтиво. Результатом потраченного времени и внимания будет понимание того, зачем нужно нагрузочное тестирование, с чего начать, куда двигаться дальше и шаблонный проект нагрузочных тестов, который Вы сможете адаптировать под себя. Все используемые мной технологии в этой статье несут печать Java экосистемы. Это тоже может повлиять на то, решитесь ли Вы продолжать. Поехали ...

Читать

Простой, полезный проект интеграционных тестов

Level of difficultyMedium
Reading time21 min
Reach and readers9.2K

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

По отзывам моих ревьюеров, эта статья ‑ «Инструкция по входу в автоматизированное тестирование и настройка фрейма».

В статье приведена информация о специфике, мотивации создания интеграционных тестов, обосновании выбранных технологий. Как бонус, в конце будет ссылка на обезличенный проект, который с минимальной адаптацией, запускается в работу в краткие сроки. Но «подпилить» его придется.

Читать далее

Аналитика. Обзор, рекомендации, акценты применения

Level of difficultyEasy
Reading time13 min
Reach and readers6.8K

Всем, привет.  Для самых жаждущих и нетерпеливых эта в этой статье будет про:

Типы анализа, используемые для/около информационных технологий;

Систему координат типов анализа и для чего использовать каждый из них;

Специальные артефакты для каждого типа анализа;

То, как понять, что в компании/процессе/проекте нужно использовать конкретный тип анализа;

Акценты и навыки, нужные при использовании каждого типа анализа;

Для тех, кому интересно и хочется сложить причинно-следственные связи, проследить нить рассуждений, то давайте это сделаем. Я Иван. Люблю сферу информационных технологий и стремлюсь развиваться в дисциплинах, задействованных для создания информационных продуктов – анализе, проектировании, разработке. Эти дисциплины влияют друг на друга и на конечный результат - создаваемую информационную систему.

Рассуждая, что такое анализ, какой он бывает, какой тип, в каких условиях использовать и какие навыки нужны для того, чтобы его выполнять, я предположил, что будет полезным систематизировать имеющийся опыт и результаты обсуждения с коллегами, слушателями профессиональных программ развития НИУ ВШЭ, МИСИС, интернет университетов. Так появился следующий обзор. Надеюсь, он принесет вам пользу. Рассчитываю на обсуждение. Присоединяйтесь :-)

Читать

5 «Почему» для понимания архитектурных концептов при создании информационных продуктов

Reading time16 min
Reach and readers7.5K

По традиции, для самых жаждущих и нетерпеливых, эта статья будет о:

С чего начинается построение любой архитектуры?

За счет чего реализуются потенциальные бизнес возможности?

Кто нужен для реализации намеченных возможностей?

Как создать цифровые продукты, которые будут удовлетворять требованиям заказчиков, вписываться в намеченные сроки и бюджеты?

Из чего должна складываться структура продукта и как он должен реализовывать функциональные требования?

Если нет интереса к предисловию, то переходите к первому "почему". Для тех, кто хочет сложить причинно-следственные связи - добро пожаловать.

К эссе

Retry or No?

Reading time17 min
Reach and readers13K

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

Читать

Information

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

Specialization

Бэкенд разработчик
Старший
From 450,000 ₽
ООП
Java
Java Spring Framework
Junit
PostgreSQL
Git
Docker
Kubernetes
Golang
Python