Системный Аналитик

channel icon
Канал для системных аналитиков:
публикуем полезные материалы для аналитиков на все случаи жизни.

Условия размещения

Цена за 48 часов в ленте 7700,00
Цена за 1 час закрепления N/A
Взаимопиар Нет
Дополнительные условия рекламы Отсутствуют
+42
8 078
подписчиков
-85
~4.1k
охват 1 публикации
0
~0
постов / день
-1,3%
50,2%
ERR % ?

Статистика

Последние публикации

Системный Аналитик
13 апреля 2024 г. 13:18
Git. Обзор и подборка материалов

В связи всё более широким распространением подхода Docs as Code самое время изучить Git.

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

Git позволяет:
💩Хранить историю изменений проекта. Git может определить, кто и в какой момент внёс изменения.
💩Параллельно работать над файлами. Все изменения затем сливаются воедино.
💩Откатиться к предыдущим версиям проекта, если что-то пойдёт не так.

Принцип работы Git

1️⃣Разработчик создаёт свою ветку от главного проекта, куда вносит свои изменения
2️⃣В своей ветке разработчик делает необходимые изменения в коде или документации, которые затем фиксируются в истории изменений.
3️⃣После того как работа в ветке завершена, разработчик сохраняет изменения, создавая коммиты. Коммиты отражают историю изменений и могут быть просмотрены в любой момент.
4️⃣Слияние изменений. Когда изменения готовы, создаётся Merge Request, чтобы влить изменения в мастер-ветку. До этого момента все изменения всё ещё находятся в отдельной ветке проекта. После слияния с мастер-веткой изменения вступают в силу для всего проекта.
5️⃣Контроль версий Git позволяет отслеживать все изменения, предоставляя возможность возвращения к любому предыдущему состоянию проекта, если это необходимо.


Курсы (бесплатные)

1. «Основы работы с Git» от Яндекс.Практикума. 16 часов обучения, свободный график, теория и тесты для самопроверки, поддержка специалистов, электронное свидетельство о прохождении курса, доступ после авторизации через Яндекс ID
2. Git для начинающих от Слёрм. Доступ придет на указанную почту после регистрации, закрытый Telegram-чат, теория и практические задания, без сертификата
3. Введение в Git от Хекслет. Видеоуроки, лекции, тренажеры с практикой, бессрочный доступ к теории, асинхронный формат обучения, без сертификата, доступ после регистрации
4. Основы Git из Степика. Много практики
5. Git. Базовый курс от GeekBrains. 13 видеоуроков, без сертификата, доступ после записи

Видосы с Ютуба
1. GIT - Полный Курс Git и GitHub Для Начинающих — одно видео на 4 часа полного погружения
2. Что такое Git для Начинающих — GitHub за 30 минут
3. Уроки по Git и GitHub от ITDoctor
4. Базовый курс по Git от Devcolibri

🕹 Интерактивные гайды на русском
1. Git How To — это интерактивный тур, который познакомит с основами Git
2. LearnGitBranching — веб-приложение по интерактивному погружению в Git

📄 Полезные статьи
1. Что такое GitHub и как он работает
2. Как начать работать с GitHub: быстрый старт
3. Про стратегии ветвления в Гите
4. 19 советов по повседневной работе с Git
5. Как настроить работу с Git в Intellij IDEA

✍️ Шпаргалка по командам Git

📖 Книга
Pro Git — основное чтиво по гиту от Скотта Чакона и Бена Штрауба

#подборка
Системный Аналитик
11 апреля 2024 г. 10:03
⚡️Компания Аванпост в поисках Системного аналитика уровня (middle+)

🚀Какие задачи предстоит решать?
- Собирать и вести реестр функциональных и нефункциональных требований заказчиков
- Анализировать требования технических и бизнес-заказчиков на предмет соответствия концепции продуктов
- Участвовать в планировании разработки продукта
- Готовить функциональные требования и постановки к реализации для разработчиков (в Confluence/Jira)
- Участвовать в подготовке документации по продуктам в кооперации с техническими писателями

👨‍💻Какие требования к кандидатам?
- Технический бэкграунд с пониманием процесса разработки программного обеспечения
- Понимание сетевых технологий и протоколов на верхнем уровне;
- Понимание технической документации (RFC и т.д.) на английском и русском языке, умение выделять ключевые аспекты, важные для решения поставленной задачи
- Навык подготовки диаграмм и схем в любом инструменте и любой нотации для донесения смысла и идей
- Навык описания требований в любом формате

🔥Что мы предлагаем:
- Конкурентную заработную плату
- Интересные задачи
- Условия работы в соответствии с ТК РФ + социальный пакет
- Формат работы — удаленно или в офисе (возможен гибридный)
- Классную команду и корпоративные мероприятия
- Гибкий рабочий график

Узнал себя?
Принимай участие в One Day Offer и становись частью крупной IT-компании!

Отправь резюме, пройди собеседование и получи предоффер в Аванпост за пару дней!
📆Даты: 19 Апреля 2024
📍Формат: Гибридный
⏳Дедлайн регистрации: 16 Апреля 2024

Подробности и регистрация: https://www.zavodit.ru/ru/vacancy/item/35

Реклама. ООО Акселератор Возможностей. ИНН: 9704005146. Erid: 2Vtzqvx6qoc
Системный Аналитик
9 апреля 2024 г. 19:18
Канал для аналитиков уже в Telegram!

Его ведет Влад Князев, аналитик из финтеха, который ярко и с юмором пишет заметки и проводит эфиры о том, как выйти на новый уровень в карьере в IT.

Начинай прокачивать насмотренность системно уже сейчас👇

Подпишись на @godnolytika
Системный Аналитик
8 апреля 2024 г. 12:13
Event Driven Architecture: краткий обзор

Event-Driven Architecture (EDA) — архитектурный подход, при котором система строится вокруг событий.

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


Компоненты EDA
💩 Событие – любое изменение состояния некой сущности или возникновение новой.
💩Производитель события – сервис, который создаёт событие.
💩Обработчик события – сервис, который получает событие и обрабатывает его, после чего порождается новое событие – результат обработки события.
💩Маршрутизатор события – промежуточный слой, который обеспечивает. доставку события от производителя до обработчика. Обычно это брокер сообщений.

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


Модели доставки событий в EDA

1⃣Pub/Sub
1. Производители генерируют события и отправляют брокеру.
2. Брокер направляет события потребителям, которые на них подписались.
3. После отправки события удаляются.
ПримерПримерRabbitMQ.

2⃣Потоковая передача
1. Производители генерируют события и отправляют брокеру.
2. Брокер сохраняет события у себя в журнале.
3. Потребители считывают события из любой части журнала в любой момент времени. События не удаляются брокером.
ПримерПримерKafka.


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

✅ Преимущества EDA

Слабая связность и гибкость: можно масштабировать, обновлять и развертывать сервисы независимо друг от друга.

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

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


⛔️ Недостатки EDA

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

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

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

💩💩Дополнительные затраты на инфраструктуру. Реализация EDA требует больше производительности вычислительных ресурсов, нужно больше хранилищ данных, растут расходы на поддержку и управление инфраструктурой.


⭐️ Подборка материалов доступна в закрытом каналезакрытом канале

#архитектура #проектирование
Системный Аналитик
6 апреля 2024 г. 13:16
Репост:
Фундаментальный подход к программной архитектуре: паттерны, свойства, проверенные методы

✍️ Авторы: Марк Ричардс и Нил Форд
🗓 Год издания: 2023
🔤 Язык: русский
📚 Объём: 448 стр.

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

В комментариях оригинал на английском.

#архитектура
Системный Аналитик
4 апреля 2024 г. 14:31
💚 Контур приглашает системных аналитиков на онлайн-митап Analyst Update

Когда: 11 апреля, в 15:00 по МСК

Говорить будем о широте взглядов на задачи, карьерном росте для аналитика, изменении процессов и работе со старыми фичами.

В программе 4 доклада:

🟢«Думать — самый ценный скилл аналитика». Расскажем, как в Контуре помогают развивать способность думать шире.

🟢«Все в твоих аналитических руках, и даже процессы». Поделимся опытом внедрения новых аналитических процессов в команду.

🟢«Какие hard-скиллы качать системному аналитику». Построим индивидуальный план развития себе и младшим коллегам.

🟢«Ломать — не строить, или зачем выпиливать фичи». Поговорим о том, почему полезно наводить порядок в зрелом продукте.

РегистрируйтесьРегистрируйтесь на митап и зовите коллег! 👋

Реклама АО «ПФ «СКБ Контур» ИНН 6663003127. Erid: 2SDnjehV1Xw
Системный Аналитик
1 апреля 2024 г. 13:01
Yet Another SAYet Another SA - канал Андрея Буракова об анализе, проектировании и менеджменте в IT.

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

Андрей регулярно выступает на конференциях Analyst Days, Flow, ЛАФ, является основателем и автором курсов в школе анализа и проектирования NextWay.

Топ интересных постов:

🤷🏼‍♂️ Вавилонская башня REST

🛠 Страх и ненависть в шиномонтаже

📚 База по бизнес-архитектуре и процессному подходу

😎 О главной функции аналитика

🤬О работе в условиях микроменеджмента
Системный Аналитик
30 марта 2024 г. 17:45
Подборка публичных собеседований системных аналитиков

1. Техническое собеседование для System Analyst

2. Техническое собеседование системного аналитика. В роли кандидата Булат Якубов, системный аналитик в Samokat Tech. В роли интервьюера Алексей Лобзов, руководитель направления в Альфа-Банке.

3. Публичное собеседование системного аналитика с компанией Usetech

4. Собеседование системного аналитика. Райффайзен банк

5. Публичное собеседование системного аналитика. Lamoda

6. Собеседование бизнес-системного аналитика. В роли интервьюера Сергей Нужненко — руководитель экспертной группы обновления профстандарта "Системный аналитик" редакции 2022 года, преподаватель, со-основатель Школы Cистемного Анализа. В роли кандидата — Ольга Шимкив, системный аналитик в финтехе.

7. Собеседование лида аналитиков. Интервьювер: Анна Серетенская, тимлид и системный аналитик в продуктовой разработке. Кандидат: Екатерина Зиновьева - главный системный аналитик в системном интеграторе

8. Моковое собеседование на системного аналитика. Интервьювер — Маргарита Нижельская, ex Head of SA в Мегафоне

9. Моковое собеседование на позицию Junior Системного аналитика


Бонусом — подборка интервью по System Design

1. Интервью по System Design. Александр Поломодов (Тинькофф)

2. Публичное интервью по System Design. Александр Поломодов (тех. дир. Тинькофф).

3. Публичное собеседование по System design. В роли собеседующего - Владимир Иванов (Bolt). На позиции собеседуемого - Виталий Лихачев (Авито)

4. Публичное собеседование по System Design. Интервьювер — Владимир Иванов (Bolt), собеседуемый — Денис Костоусов (Тинькофф)

5. Публичное собеседование по System Design. Проводить собеседование будет Игорь Антонов, TeamLead из Тинькофф

⏯ Все видео собрали в плейлисты на Ютубе:
1. Публичные собеседования системных аналитиков
2. System Design Interview

#подборка
Системный Аналитик
30 марта 2024 г. 15:34
3 апреля пройдёт бесплатный онлайн-митап от Naumen про анализ в B2B. В программе четыре доклада, вот некоторые из них:

🔸 Как не бояться задавать «глупые» вопросы и копать вглубь — Саша Николаев из Naumen.
Поделимся двумя правилами, которые помогут задавать глубинные вопросы клиентам и правильно интерпретировать их потребности. Разберём кейсы и наглядно покажем, почему эти правила работают.

🔸 Работа аналитика в условиях неопределённости — Динар Каримов из Naumen.
Обсудим несколько ситуаций, где аналитик может столкнуться с неопределённостями, и приведём примеры из личного опыта. Также расскажем, когда неопределённость нежелательна и какие инструменты помогут её снизить.

→ Зарегистрироваться.

Встречаемся онлайн 3 апреля в 16:00 мск.
Если вы из Екатеринбурга — ждём на афтепати 🍕

Реклама, ООО «Наумен консалтинг», ИНН 7725507256,
https://www.naumen.ru/
erid: 2VtzqvQw5zm
Системный Аналитик
28 марта 2024 г. 10:02
Стараетесь, прокачиваетесь, усердно работаете и развиваетесь в аналитике. Приносите компании значительные доходы, молодцы. А что насчет вашего собственного заработка? Как сильно он вырос за последние пару лет? Сколько от прибавки съела инфляция?

На самом деле, чтобы зарабатывать деньги, надо делать всего 3 вещи:

1. Хотеть их зарабатывать;
2. Увеличивать входящий поток;
3. Инвестировать и приумножать.

Почему у большинства людей не так? 🤔
Все просто: не все хотят зарабатывать и жить хорошо. Говорить могут обратное, но в целом им и так ок.

Те, кто реально хотят жить лучше, фокусируются на втором пункте: увеличении входящего потока.

И здесь тоже есть опции:
1. Увеличение своей стоимости на рынке труда;
2. Работа над своим проектом и рост денежного потока в нем.

Если мы говорим о первом направлении, как о более понятном и близком для большинства — важно постоянно прокачиваться и делать правильные карьерные шаги. Рекомендую авторский блог по развитию карьеры — Без aspera. Это крупнейший (и крутейший) канал про построение карьеры в русскоязычном телеграме. Не про подборки вакансий и эйчарный эйчар, а про работающие стратегии и взгляд на карьеру, как на проект.

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

Посмотрите сами:
→ Средние зарплаты в Европе: Германия, Нидерланды, Великобритания
Как понять, что вы готовы к позиции руководителя
Как понять, что это очень плохая компания
Идеальный Linkedin профиль: что написать, чтобы вас наняли
Про честные причины отказа после интервью

Подписывайтесь на @bezaspera, чтобы расти наверх кратно быстрее.

Реклама ООО «Карьерное пространство», ИНН 97154103939715410393
Системный Аналитик
26 марта 2024 г. 14:02
Масштабирование БД. Партиционирование, шардирование и репликация

⚡️Максимально кратко
💩💩Партиционирование — разделение БД на части в рамках одного сервера. Может быть вертикальным (по столбцам) и горизонтальным (по строкам)
💩💩Шардирование — разделение БД на части по разным серверам. Может быть только горизонтальным (по строкам)
💩💩Репликация — копирование одних и тех же данных между разными серверами


💩Партиционирование

Партиционирование — разделение большой таблицы на несколько частей. Все части хранятся на одном сервере. Бывает горизонтальным и вертикальным.

1⃣ Горизонтальное партиционирование: данные разбиваются на несколько отдельных таблиц по строкам. Каждая такая таблица содержит содержит одинаковые столбцы, но разные строки данных.
ПреимуществаПреимущества:
➕уменьшение объема данных, которые нужно обрабатывать при выполнении запросов
➕ускорение выполнения запросов, которые затрагивают только определенный диапазон строк
➕возможность распараллеливания запросов между подтаблицами
ПримерПример: разделение таблицы заказов по дате заказа, так что каждая подтаблица содержит заказы за определенный месяц или год.

2⃣ Вертикальное партиционирование: данные разбиваются на несколько отдельных таблиц по столбцам. Каждая такая таблица содержит часть столбцов и все связанные с ними строки данных.
ПреимуществаПреимущества:
➕уменьшение объема данных, которые нужно загружать в память при выполнении запросов
➕ускорение выполнения запросов, которые затрагивают только определенный набор столбцов
➕возможность оптимизации хранения данных в зависимости от типа и частоты использования столбцов.
ПримерПример: разделение таблицы пользователей на две подтаблицы, одна из которых содержит основную информацию о пользователях, а другая — доп. информацию.


💩💩Шардирование — техника масштабирования БД, когда данные разносятся по нескольким машинам. Бывает только горизонтальным (по строкам). Шардирование позволяет распределить нагрузку на запись и чтение данных между различными серверами, за каждый из которых отвечает отдельная машина.

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

Методы шардирования

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

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

3. Круговое — шарды упорядочиваются в виде кольца и каждый из них ответственен за определенный диапазон значений. Запросы на данные маршрутизируются в соответствии с позицией шарда в кольце. Запросы распределяются равномерно, но при добавлении и удалении шардов требуется перераспределение данных.

4. Динамическое — позволяет автоматически масштабировать хранилище в зависимости от текущей производительности и объема данных. Нужна система мониторинга и балансировки нагрузки.


💩💩Репликация
Репликация — копирование данных между несколькими серверами. При использовании такого метода выделяют два типа серверов: master и slave. Мастер используется для записи или изменения информации, слейвы — для копирования информации с мастера и её чтения. Чаще используется один мастер и несколько слейвов, т. к. обычно запросов на чтение больше, чем запросов на изменение.
ПреимуществоПреимущество: большое количество копий данных. Если мастер выходит из строя, любой другой сервер сможет его заменить.
НедостаткиНедостатки: рассинхронизация и задержки при передаче данных. Репликация используется как средство обеспечения отказоустойчивости вместе с другими методами.

⭐️ Подборка материалов доступна в закрытом каналезакрытом канале

#бд
Системный Аналитик
21 марта 2024 г. 10:00
Системные аналитики, ваш ход

Тинькофф проводит Weekend Offer для мидлов и выше. Сможете пройти все этапы собеседования за выходные, и если все понравится — оффер ваш.

Дальше будете помогать бизнесу и разработчикам создавать финтех-решения. А еще пользоваться бенефитами и расти в классной команде.

Оставьте заявку

erid:2Vtzqx5NZKi
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Системный Аналитик
20 марта 2024 г. 18:21
Способы обеспечения работы высоконагруженных систем


1️⃣ Инфраструктура

💩Вертикальное масштабирование — увеличение производительности серверов (увеличение RAM, добавление дисков, более мощных СPU и т.д.). Самый простой способ, однако он довольно быстро упирается в потолок
💩Горизонтальное масштабирование — добавление дополнительных серверов (или виртуальных копий сервиса — реплик) для распределения нагрузки между ними. Это работает примерно так же, как в реальной жизни: если один рабочий выкопает яму за 4 часа, то двое рабочих сделают это быстрее (но не факт, что в 2 раза)
💩💩Балансировка нагрузки — актуально при горизонтальном масштабировании, когда используется несколько серверов или реплик приложения. Балансировка помогает распределить загрузку между сервисами равномерно


2️⃣ Хранение и доступ к данным

💩💩Кэширование — сохранение часто запрашиваемых данных в памяти для быстрого доступа. Подробнее см. в этом посте
💩💩Индексы — дополнительная структура данных в реляционных БД для ускорения поиска и обработки записей. Это подобно алфавитному указателю в англо-русском словарике: не нужно листать весь словарь, достаточно лишь открыть страницы с нужным сочетанием букв. Подробнее в этом посте
💩💩Денормализация — введение избыточности в таблицах и представлениях, чтобы сократить число запросов к БД и тем самым минимизировать время обработки запросов. Вместо того, чтобы делать кучу джойнов с группировками и вычисляемыми полями, можно завести представление (вью), которая будет содержать все нужные данные, хотя она не будет соблюдать 3 нормальных формы
💩💩Репликация — копирование одних и тех же данных между разными серверами. При использовании такого метода выделяют два типа серверов: master и slave. Мастер используется для записи или изменения информации, слейвы — для копирования информации с мастера и её чтения. Эффект достигается за счёт повышения отзазоустойчивости и разделения операций чтения и записи
💩💩Партиционирование — разделение таблиц на несколько частей в рамках одного сервера. Позволяет увеличить производительность за счёт уменьшения объема данных, которые нужно обрабатывать при выполнении запросов. Подробнее в этом посте
💩💩Шардирование — техника масштабирования БД, когда данные разносятся по нескольким машинам. Разделение данных эффективно, когда для разных запросов требуются разные данные некогда единой таблицы. Подробнее в этом посте


3️⃣ Приложения

Проектирование архитектуры приложений
💩💩DDD (Domain-Driven Design) — подход к проектированию архитектуры, при котором приложение разделяется на функциональные домены на основе того, как работает реальный бизнес. DDD помогает создавать более устойчивые и масштабируемые системы. Подробнее в этом посте
💩💩CQRS (Command Query Responsibility Segregation) — подход, при котором система разделяется на две части: одна отвечает за обработку команд (изменения состояния), а другая — за запросы (чтение данных). Команды и запросы могут быть масштабированы независимо, что позволяет системе более эффективно обрабатывать большое количество RPC. Подробнее в этом посте
💩💩CDC (Change Data Capture) — техника, используемая для определения и отслеживания изменений в данных. Очень полезно, когда нужно в режиме реального времени реагировать на изменения в базе-источнике. Подробнее

Интеграции
💩💩Брокеры сообщений — помогают обрабатывать тысячи запросов с гарантией доставки сообщений. Подробнее тут.
💩💩Использование gRPC — более производительный стиль интеграции, который под капотом использует HTTP/2 для транспорта и Protocol Buffers для сериализации данных. В этом посте подробнее.
💩💩Веб-сокеты — вместо множества запросов для обновления данных, веб-сокеты позволяют поддерживать постоянное соединение, через которое данные могут передаваться в обе стороны в реальном времени. Подробнее здесь.

Оптимизация кода
💩Распараллеливание запросов
💩Минимизация сериализации данных
💩Оптимизация запросов к БД
💩Управление HTTP-сессиями и использование возможностей TCP

⭐️ Подборка материалов доступна в закрытом каналезакрытом канале

#проектирование
Системный Аналитик
18 марта 2024 г. 12:59
ХОЧЕШЬ ПОВЫШЕНИЕ В 2024 ГОДУ? 😎🔥

Тогда самое время разобраться в микросервисной архитектуре и стать более востребованным специалистом.

🚀 Стартуем 20 марта.

Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.

Какие скиллы прокачаем:
📌 Декомпозиция систем на микросервисы, отталкиваясь от бизнес-домена.
📌 Встройка микросервисов в оргструктуру компании.
📌Организация перехода от монолитной системы к микросервисной.

Полная программа ТУТ 👉https://microarch.ru/?utm_source=posev&utm_medium=erid:2vtzqxf8cda&utm_campaign=2

А самое главное — поддержка от спикера, чат с одногруппниками и полезные созвоны с разбором домашки.

📕 Сертификат об участии по итогам прохождения курса.

Узнай больше о курсе 👉 https://microarch.ru/?utm_source=posev&utm_medium=erid:2vtzqxf8cda&utm_campaign=2

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqxF8CDA
Системный Аналитик
17 марта 2024 г. 11:58
Системный Аналитик
14 марта 2024 г. 18:01
Лучшие практики системного и бизнес-анализа от Surf

В канале Surf BA Team бизнес-аналитики приложений «Ригла», «Магнит», KFC и других делятся лучшими практиками и больными шишками из опыта работы с ТЗ и документацией.

Вот подборка полезных постов из канала:
🟠 Тренды ecom-приложений 2024 года
🟠 Скелет приложения: без чего точно нельзя жить
🟠 Раскрываем силу GraphQL

Surf активно расширяют комьюнити аналитиков и ждут вас в канале, чтобы делиться интересными кейсами и быть на одной волне актуальных технологий.

➡️ Подписывайтесь по ссылке → @surf_analyst
Системный Аналитик
11 марта 2024 г. 16:02
Екатеринбург, 21 марта приглашаем на митап IT Talk by Sber! 😉


Поговорим о том, как сделать правильную анимацию в браузере, обсудим управление UI через backend и узнаем о проблемах наследования кода. А после — ответим на все вопросы, пообщаемся и просто отлично проведём время.

Спикеры и темы:

- Михаил Прядун, Frontend Developer, «Правильная анимация и хороший CSS»
- Алексей Кардашов, Java Developer, «Управление UI через backend в стеке jvm с использованием composite screen platform»
- Ирина Шахтарина, аналитик, «Это всё, что останется после меня: проблемы наследования кода и передачи права на него»
Встречаемся 21 марта в 18:30 в Технохабе Сбера по адресу ул. Розы Люксембург, 56а.

Ждём всех крутых разработчиков Урала! Регистрируйтесь по ссылке 💚
Системный Аналитик
9 марта 2024 г. 19:43
⬆️⬆️Начало выше⬆️⬆️

Версионирование состояния

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

Как это работает на примере сервиса заказа такси:

ВводныеВводные
💩Каждый раз, когда в системе происходит изменение (создание, отмена, редактирование заказа), сервер увеличивает версию списка заказов. Эта версия отражает все изменения, произошедшие с заказами пользователя.
💩Перед созданием нового заказа приложение запрашивает у сервера текущую версию списка заказов через GET /v1/orders.

ПроцессПроцесс
1️⃣При создании заказа приложение включает в запрос заголовок If-Match с версией, которую оно знает.
2️⃣Сервер проверяет, соответствует ли версия в запросе текущему состоянию списка заказов. Если версия не совпадает, сервер отклоняет запрос, предотвращая создание дубликата.
3️⃣Если состояние заказов изменилось (например, заказ был отменен), сервер сообщает об этом приложению, отправляя ошибку с предложением перезагрузить информацию о заказах через GET /v1/orders.


Идемпотентность удаления

HTTP-метод удаления DELETE по своей природе идемпотентный, так как повторное удаление уже удаленного ресурса не изменяет состояние системы. После первого успешного все последующие запросы на удаление будут возвращать ошибку 404 (или другой код согласно логике сервера).

Более гибкий способ обеспечить идемпотентность удаления – использовать подход “Soft DeleteSoft Delete”. Вместо физического удаления записи из базы данных, запись просто помечается как удаленная с помощью специального флага.

Soft Delete гарантирует, что все последующие запросы на удаление будут успешными и вернут одинаковый результат. Это также позволяет отслеживать удаленные записи и при необходимости восстанавливать их, обеспечивая дополнительный уровень безопасности и контроля.

📎 Статьи

1. Стажёр Вася и его истории об идемпотентности API — очень рекомендуем
2. Кратко об идемпотентности от Yandex Cloud
3. Идемпотентность: больше, чем кажется
4. Идемпотентность при использовании API Mindbox
5. Что такое ключ идемпотентности и зачем он нужен
6. Семантика exactly-once в Apache Kafka

Видео
1. Что такое идемпотентность, или история Васи и его приложения
2. Идемпотентность и коммутативность API в очередях и HTTP // Демо-занятие курса «Software Architect»
3. Идемпотентность: что, где и как
4. Микросервисы: идемпотентность операций

#api #проектирование
Системный Аналитик
9 марта 2024 г. 19:43
🔁 Обеспечение идемпотентности API

Идемпотентная операция — это операция, которая при многократном вызове не меняет состояние ресурса. То есть, если мы повторно вызываем идемпотентный метод API, то не возникнет ошибок, связанных с дублированием одной и той же операции (например, двойных списаний баланса за один и тот же заказ).

По-хорошему, любой API должен быть идемпотентным.


Идемпотентность в REST API

HTTP-методы GET, PUT, DELETE формально считаются идемпотентными, тогда как POST и PATCH нет. Это не означает, что нельзя сделать GET неидемпотентным, а POST идемпотентным.

❗️❗️❗️ Важно Важно: ответ идемпотентного метода может меняться. Например, при повторном вызове идемпотентного API создания заказа — заказ не будет создаваться ещё раз, но API может ответить как 200, так и 400. При обоих кодах ответа API будет идемпотентно с точки зрения состояния сервера (заказ один, с ним ничего не происходит), а с точки зрения клиента поведение существенно разное.


❗️❗️ Проблемы неидемпотентных API

Проблема №1. Дублирование операций.
При сетевых задержках или ошибках одна и та же операция может быть выполнена несколько раз.

Пример с заказом такси:
1️⃣Пользователь вызывает такси в приложении
2️⃣Приложение отправляет запрос на создание заказа на сервер
3️⃣Возникает сбой, и приложение не получает успешный ответ по таймауту
4️⃣Приложение показывает сообщение «произошла ошибка» и делает кнопку заказа снова активной
5️⃣Пользователь снова нажимает кнопку
6️⃣К пользователю может приехать два такси вместо одного

Проблема №2. Неконсистентное состояние.
Неидемпотентные операции затрудняют отслеживание текущего состояния системы, что может привести к ошибкам и неконсистентности данных.

Пример с заказом такси:
1️⃣Пользователь изменяет пункт назначения в активном заказе такси через приложение.
2️⃣Приложение отправляет запрос PATCH /v1/orders/{id} на сервер для обновления заказа
3️⃣Возникает сбой, и приложение не получает подтверждение об успешном обновлении
4️⃣Приложение показывает пользователю сообщение об ошибке и предлагает повторить попытку
5️⃣Пользователь решает изменить пункт назначения на новый и снова отправляет запрос
6️⃣Сервер обрабатывает оба запроса: сначала второй, затем первый. В системе возникает неконсистентность: водитель видит один пункт назначения, а пользователь ожидает, что будет доставлен в другое место.


Идемпотентность создания и изменения

Способы обеспечения идемпотентности методов создания (POST) и частичного изменения (PATCH):
1. Ключ идемпотентности в заголовке запросов
2. Версионирование состояния
3. Блокировка на основе правил

🗝 Ключ идемпотентности

Это уникальный идентификатор операции, который помогает защититься от повторного исполнения операции.

Как это работает:
1. Клиент генерирует уникальный ключ идемпотентности и отправляет его в заголовке запроса. Например, Idempotency-Key: <UUID>
2. Сервер проверяет, был ли уже обработан запрос с таким ключом. Если да, возвращает результат предыдущего запроса, не выполняя операцию повторно. Иначе просто выполняет операцию.


⬇️ Продолжение ниже⬇️
Системный Аналитик
2 марта 2024 г. 10:37
🔉🔉🗣🗣Ищем соавтора в наш канал

В канал Системный аналитик (в том числе для VIP-канала) ищем автора. Нужно будет писать посты с подборками полезных материалов в стиле канала.

Про условия
💩Оплата за каждый пост отдельно (от 2500 ₽ за пост)
💩Темы постов можно предлагать свои или брать из бэклога
💩Минимум 1 пост в неделю
💩Можно писать больше одного поста в неделю, всё оплатим
💩График гибкий: можно написать за одну неделю 4 поста и потом ничего не делать 3 недели

Как стать автором
Заполнить анкету и выполнить тестовое задание по ссылке.

❗️❗️ Дедлайн приёма анкет
Анкеты принимаем до 9 марта (суббота), 23:59 по МСК.

🍩 Плюшки участникам
Все, кто выполнит тестовое задание, получат доступ к VIP-каналу бесплатно и навсегда.

Остались вопросы? Пишите в комментарии 🔽

UPD: дедлайн продлили по многочисленным просьбам