Apache Kafka - платформа для потоковых данных
Включает:
Kafka Streams
Библиотека для обработки потоков событий с возможностью:
Архитектурная идея: микросервисный подход к потоковой обработке
Kafka Streams инкапсулирует логику обработки в независимое приложение, оно масштабируется вместе с кластером Kafka
Хранение данных между обработками
Для этого используется:
Если приложение перезапускается, то загружает данные из этого топика и продолжает работу с того же места
По умолчанию Kafka Streams хранит состояние локально, но обработанные данные можно записывать во внешние БД или облачные хранилища
Примеры использования
Kafka Connect
Фреймворк для масштабируемого ввода/вывода данных между Kafka и внешними системами
Решает задачи интеграции с различными источниками
Источник (JDBC Connector) читает изменения из БД с помощью механизма изменения данных Debezium, а приемник (Elasticsearch Connector) загружает данные в поисковый индекс для быстрого поиска
Особенности
ksqlDB
СУБД для потоковой обработки
Например, обнаружение пользователей, выполняющих более 100 действий в минуту, с отправкой уведомлений в систему безопасности
Особенности
Применение: создание реальных дашбордов, реализация простых правил бизнес-логики, мониторинг качества данных
1. Kafka Streams (official site)
2. Экосистема Apache Kafka: Kafka Streams, Kafka Connect
3. Потоковая обработка данных с помощью Kafka Streams: архитектура и ключевые концепции
4. Под капотом Kafka Connect: источники, приемники и коннекторы
5. ksqlDB
6. ksqlDb или SQL как инструмент обработки потоков данных
📚 Книги
1. Kafka Streams и ksqlDB: данные в реальном времени - Сеймур Митч
2. Kafka в действии - Дилан Скотт, Виктор Гамов и Дейв Клейн (Глава 12)
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍7🔥5⚡1
Debezium - распределенная платформа с открытым исходным кодом, которая превращает существующие БД в стриминговые источники событий
Оптимален когда нужна
Архитектура и компоненты
Работает как набор коннекторов для Apache Kafka Connect
Каждый коннектор специализируется на конкретной СУБД и реализует протокол репликации этой базы
Основные компоненты
С помощью Debezium Engine события можно получать напрямую в приложение или транслировать в другие брокеры: RabbitMQ, Pulsar, Redpanda
Принцип работы
БД → журнал транзакций → Debezium connector → Kafka Connect → Kafka topic → потребитель (микросервис, аналитическая система, хранилище)
Процесс обработки изменений от журнала до топика Kafka
Коннектор подключается к БД с правами репликации
При первом запуске коннектор создает снимок данных
Последовательно читает таблицы и генерирует события создания для каждой строки
Этот процесс гарантирует, что все существующие данные попадут в поток событий
После завершения снимка коннектор переключается на чтение транзакционного журнала. Отслеживает позицию последнего обработанного события и продолжает чтение с этой точки при рестарте
Каждая запись в журнале парсится и преобразуется в событие JSON / Avro
Debezium обрабатывает различные типы данных СУБД, включая XML и пользовательские типы.
События отправляются в топики Kafka. Коннектор использует семантику at-least-once, что требует идемпотентной обработки на стороне потребителей.
Примеры использования
Проблемы и риски
1. Официальный сайт
2. CDC в Yandex Data Transfer: гид по технологии с примерами
3. Что такое Debezium и для чего используется
4. Знакомство с Debezium — CDC для Apache Kafka
5. Что такое Debezium: подробная инструкция по применению
6. Debezium Architecture
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22🔥7👍4⚡1
gRPC реализует парадигму удаленного вызова процедур (RPC), где клиент вызывает методы на сервере так, будто они находятся в одном процессе
Protocol Buffers
Процесс разработки с gRPC начинается с проектирования контракта в proto-файлах
Контракт (.proto файл) — единая точка, в которой описываются:
На основе proto-файлов автоматически генерируется клиентский и серверный код для разных языков
Здесь хранятся данные и функциональные контракты в виде proto-файла
gRPC Interceptors
Interceptor ("перехватчик") — компонент, который позволяет внедрять пользовательскую логику в обработку вызовов gRPC на стороне клиента / сервера
Предоставляет механизм для изменения запросов и ответов, а также для выполнения доп действий
Интерсепторы оперируют:
Protocol Buffers определяют
ЧТО передаетсяИнтерсепторы -
КАК обрабатываются вызовыСценарии использования
gRPC и Kafka
gRPC обрабатывает пользовательский запрос «здесь и сейчас»
Kafka распространяет событие дальше
Клиент → gRPC → Сервис А → Kafka → Сервис Б, Сервис В
1. Клиент через gRPC создает заказ
2. Сервис заказов обрабатывает команду "создать заказ"
3. Публикует событие "OrderCreated" в Kafka
4. Сервисы уведомлений и аналитики получают событие из Кафка
Примеры архитектуры с gRPC
Двунаправленные стримы - для управления видеопотоками
Безопасность в gRPC
gRPC изначально ориентирован на защищённые каналы:
1. Введение в gRPC: Основы, применение, плюсы и минусы
2. Что такое gRPC и Protobuf?
3. Способ организации gRPC контрактов и их автоматизация для микросервисов
4. Protocol Buffers: самая эффективная бинарная альтернатива текстовому формату
5. gRPC Interceptors (документация)
6. Перехватчики gRPC в .NET
📚 Изучаем OpenTelemetry: современный мониторинг систем (2025) - Паркер Остин, Янг Тед
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍9🔥9
⚫️ Stepik
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤45🔥21👍6👎1🎉1
Сбор требований от всех стейкхолдеров (бизнес-заказчики, фронтенд-разработчики, мобильные разработчики и тд) и трансформировать их в контракт
Формируется спецификация, которая становится единым источником для всех участников.
Ключевые элементы:
Реализовать логику API по спецификации
Процесс включает:
Комплексная проверка надежности, безопасности и производительности API
Основа для тестирования: тестовые сценарии и данные
Виды тестирования:
Обеспечить быструю, безопасную и предсказуемую публикацию изменений в API
Ключевые процессы:
Централизованное управление трафиком, безопасностью и версиями API через API-шлюз
Основные функции:
Гарантия отказоустойчивости и производительности API в проде
Основные функции:
Сбор и анализ метрик
Примеры метрик:
Эти этапы в большей степени относятся к продуктологам и бизнес-аналитикам
Примеры метрик для оценки эффективности продвижения API:
1. Активные пользователи (Active Users)
2. Новые регистрации (New User Registrations)
3. Количество API-вызовов (API Calls)
4. Метрики производительности
5. Бизнес-метрики
Для монетизации необходимо спроектировать систему тарификации и метрики для нее, заложить логику в систему аналитики и биллинга.
Минимизировать ущерб для потребителей при выводе устаревшей версии API.
Процесс вывода:
1. Жизненный цикл API. Статистика и нюансы
2. Жизненный цикл API
3. 15 важнейших рекомендаций по проектированию REST API
4. Дизайн API и как его спроектировать
5. Лучшие практики разработки REST API: 20 советов
📚 Книги
1. API - Сергей Константинов
2. Паттерны проектирования API - Джей Гивакс
3. Тестирование веб-API - Марк Винтерингем
4. Проектирование веб-API - Арно Лоре
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31👍9🔥6⚡1
Обратная совместимость — когда система может работать с более старыми клиентами или потребителями после внесения изменений в интерфейс или формат данных
В интеграциях это критически важно:
если одно приложение изменило контракт, а другое не успело обновиться
Виды совместимостей
Примеры обеспечения обратной совместимости
Практики:
deprecatedgRPC использует Protocol Buffers (protobuf)
Он изначально учитывает обратную совместимость
Практики:
deprecatedGraphQL более гибкий, чем REST, так как клиент сам выбирает нужные поля. Но есть риски.
Практики:
@deprecated вместо удаления. Клиенты будут видеть предупреждение./graphql/v2).Kafka — шина событий. Здесь контракт — формат сообщения.
Если продюсер изменил структуру, все консумеры должны понимать новый формат
Практики:
orders.v2)1. Обеспечение обратной совместимости gRPC API с помощью protolock в GitHub Actions
2. Постановка проблемы обратной совместимости
3. Интеграции глазами аналитика: 5 типичных ошибок, которые ломают систему
4. Как правильно разрабатывать API с поддержкой обратной совместимости
5. GraphQL: от восторга до разочарования
📚 Книги
API - Сергей Константинов (Раздел III. Обратная совместимость)
🐗 Высоконагруженные приложения. Программирование, масштабирование, поддержка - Мартин Клеппман
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤15👍5⚡1
Рассмотрим нисходящий подход проектирования БД
Процесс проектирования по шагам
Между этими этапами используется ER-диаграмма — инструмент визуализации
Задача: понять и описать какие данные нужны системе и как они связаны между собой
Основные шаги
Создание реляционной схемы. ER-модель преобразуется в формальную схему, готовую для реализации в реляционной СУБД (распространенный тип БД).
Основные шаги
Например, сущность «Пользователь» превращается в таблицу
users.У «Пользователя» будут поля:
id, name, email.- первичный ключ (
id) для уникальной идентификации строки- внешние ключи для связи между таблицами
- убрать повторы и избыточные данные
- проверить соответствие нормальным формам (1НФ, 2НФ, 3НФ)
Например, если в таблицу «Заказ» включить название товара, это приведет к дублированию
Решение: выделить отдельную таблицу «Товар» и связать через «Заказ–Товар»
Модель адаптируется под конкретную СУБД:
VARCHAR, INTEGER, DATE)1. Как работают базы данных в IT: разбор на примерах
2. Базы данных для системного аналитика. Краткий обзор на практике
3. Основы правил проектирования базы данных
4. Основы проектирования баз данных
5. Проектирование реляционных баз данных: основные принципы
📚 Книги
1. Основы баз данных (учебное пособие) - Кузнецов С. Д.
2. Путеводитель по базам данных - Владимир Комаров
3. Базы данных. Инжиниринг надежности - Кэмпбелл Лейн, Мейджорс Черити
4. Проектирование и реализация систем управления базами данных - Эдвард Сьоре
5. Основы технологий баз данных: учебное пособие - Новиков Б. А. и др
#проектирование #бд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤17🔥6
Жизненный цикл программного обеспечения (Software Development Life Cycle, SDLC) — структурированный процесс создания систем
Путь идеи от концепции до рабочего продукта
Фазы жизненного цикла ПО
Определяется цель проекта, его границы и заинтересованные стороны
Оценивается бизнес-ценность, риски и целесообразность разработки
Результат фазы — бизнес-кейс, дорожная карта проекта, первичные требования и оценка ресурсов
Вывляются:
Выходные артефакты: ТЗ или спецификация требований к ПО (SRS), модели процессов, диаграммы прецедентов
Решается как система будет удовлетворять требованиям
Результат — набор архитектурных и дизайнерских документов
Пишется код в соответствии с архитектурой и требованиями
Ревью кода, сборка и автоматизация сборочного процесса через CI/CD
На выходе — рабочие модули и инкременты системы
Проверяется соответствие продукта требованиям
Примеры тестирования:
Продукт разворачивается в целевой среде
Завершается релизом и переходом системы в эксплуатацию
После запуска система требует поддержки:
Фаза продолжается до момента окончательного вывода системы из эксплуатации
Модели жизненного цикла ПО
Подход к организации фаз SDLC определяется моделью: как эти фазы взаимодействуют друг с другом, их последовательность
Фазы выполняются строго последовательно: от анализа до сопровождения
Переход на следующую стадию возможен только после завершения предыдущей
Подходит для проектов с чётко определёнными и стабильными требованиями
Идея каскада с добавлением акцент на тестирование
Каждая стадия разработки имеет свой этап проверки и валидации
Продукт создаётся поэтапно, небольшими инкрементами. Каждый релиз добавляет часть функционала
Каждый инкремент проходит полный цикл SDLC (анализ, проектирование, кодирование, тестирование)
В результате пользователь постепенно получает готовые части системы
Комбинирует идеи каскадной и прототипной моделей
Каждая итерация проходит все фазы SDLC, но с акцентом на анализ рисков
Применяется для крупных и исследовательских проектов
Разработка короткими итерациями — спринтами (1–4 недели). Команда поставляет работающий инкремент продукта к концу каждого спринта.
Ориентирован на непрерывный поток задач и визуализацию процессов
Основной инструмент — канбан-доска, где задачи перемещаются по статусам
1. Этапы жизненного цикла разработки ПО или что такое SDLC?
2. SDLC
3. База про жизненный цикл разработки ПО (SDLC): этапы, виды моделей и их различия
4. Про семь основных методологий разработки
5. Модели жизненного цикла ПО
📚 Книги
Управление проектным бизнесом от Алексея Васильева
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍10🔥4
Event Storming — техника коллективного моделирования бизнес-процессов
Строится вокруг событий (domain events), которые отражают значимые изменения состояния системы (заказ создан», платёж подтверждён, товар доставлен)
Помогает
Примеры приименения
Основные принципы
Типы Event Storming-сессий
Используется для получения общего представления о домене
Позволяет увидеть ключевые процессы и зависимости между ними
Детализирует конкретный бизнес-процесс
Помогает определить события, команды и участников внутри него
Уточняет модель до уровня архитектуры и bounded contexts
Используется при проектировании микросервисов и взаимодействий между ними
Ключевые «строительные блоки»
Факт, который уже произошел в системе.
Часто является реакцией на предыдущее событие
Это "кластер" из связанных сущностей (например, заказ с его позициями), который обрабатывает команды и порождает события
Формулируется как "Когда событие X, тогда команда Y"
Пример как проходит Event Storming
1. Определить границы процесса
2. Зафиксировать доменные события в прошедшем времени
3. Добавить команды, которые инициируют события:
4. Указать акторов
5. Добавить агрегаты и сущности
6. Зафиксировать политики и правила
7. Сгруппировать события по смыслу
8. Проверяются связи, исключения, альтернативные сценарии
9. Результат: карта событий, отражающая процессы и зависимости
1. Event storming
2. Моделирование микросервисов с помощью Event storming
3. Event Storming: как построить модель вокруг событий
4. Введение в Event Modeling
5. 10 аналогов Miro от российских и иностранных разработчиков
📚 Книги
Предметно-ориентированное проектирование: паттерны, принципы и методы - Скотт Миллетт, Ник Тью
#управление_проектами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤9👍5👏2
Forwarded from Библиотека Системного Аналитика
Грокаем_безопасность_веб_приложений_Макдональд_Малькольм.pdf
12 MB
Грокаем безопасность веб-приложений
✍️ Автор: Макдональд Малькольм
🗓 Год издания: 2025
🔤 Язык: русский
📚 Объём: 336 стр.
Практическое руководство по безопасности для веб-приложений.
◾️ Раскрываются основные принципы защиты
◾️ Подробно разбираются наиболее распространенные уязвимости веб-приложений — от браузера до сервера.
Книгу можно изучать последовательно или выборочно.
Примеры кода приведены на разных языках, что делает материал наглядным и универсальным.
Издание будет полезно как новичкам в вопросах безопасности, так и опытным специалистам для систематизации и обновления знаний.
#безопасность
✍️ Автор: Макдональд Малькольм
🗓 Год издания: 2025
🔤 Язык: русский
📚 Объём: 336 стр.
Практическое руководство по безопасности для веб-приложений.
Книгу можно изучать последовательно или выборочно.
Примеры кода приведены на разных языках, что делает материал наглядным и универсальным.
Издание будет полезно как новичкам в вопросах безопасности, так и опытным специалистам для систематизации и обновления знаний.
#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍19❤2
1. Использовать множественное число для коллекций
2. Не добавлять лишние сегменты в путь
Не пытаться отразить всю модель данных в URL
Если
listing_id уникален — shop_id не нуженGET /listings/{listing_id}/options/{option_id}3. Не добавлять расширения в URL
GET /users.json Формат передачи должен определяться через HTTP-заголовки (например,
Accept) , не через URLGET /users и HTTP-заголовки настройка заголовков:Accept: application/json
4. Не возвращать массивы верхнего уровня
Объект позволяет легко добавить пагинацию и дополнительные поля без поломки обратной совместимости
[{"id":1}, {"id":2}] { "data": [{"id":1}, {"id":2}] }5. Не возвращать структуры-словари (map)
Словари ломают совместимость и неудобны для типизированных языков.
{ "data": [{ "id":"KEY1" }, { "id":"KEY2" }] }6. Добавлять префиксы к ID
Примеры:
Stripe: in_1MVpWEJVZPfyS2HyRgVDkwiZ
Shopify: gid://shopify/FulfillmentOrder/1469358604360
7. Не использовать 404 для “не найдено”
404 Not Found может означать сетевую ошибку или неверный URL410 Gone — сервер понял запрос, но объекта нет8. Ошибки в структурированном формате
{
"message": "Access denied",
"type": "Unauthorized",
"types": ["Unauthorized", "Security"],
"cause": { ... }
}9. Идемпотентность операций
Идемпотентность = повтор вызова не меняет результат
POST /orders
Idempotency-Key: abc123
Если запрос повторится — сервер вернёт 409 CONFLICT и ID уже созданного ресурса:
{
"message": "Duplicate",
"old_id": "ORD123"
}Клиент уверен, что заказ не задублировался
10. ISO8601 для даты и времени
А также использовать ISO8601 для интервалов и длительностей
"2023-12-21T11:17:12.34Z" "1703157432340"#api
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍20❤16😢1
Forwarded from Библиотека Системного Аналитика
Хононов_В_Изучаем_DDD_предметно_ориентированное_проектирование_2024.pdf
18.2 MB
Изучаем DDD — предметно-ориентированное проектирование
✍️ Автор: Влад Хононов
🗓 Год издания: 2024
🔤 Язык: русский
📚 Объём: 320 стр.
Книга посвящена методологии DDD (предметно-ориентированному проектированию), что особенно актуально в условиях дробления предметных областей и усложнения бизнес-взаимодействий.
Рассказано
🔹 как оценить масштаб и сложность предметной области (с примерами анализа предметной обалсти)
🔹 измерить темпы ее развития, учесть необходимые зависимост
🔹 про архитектурные паттерны и паттерны взаимодействия, EventStorming, SOA, Data Mesh
🔹 применять DDD и структурировать создаваемое ПО эффективно вписывая его в сеть данных (Data Mesh)
🔹 о порядке развития проекта синхронно с изменениями в его бизнес-контексте
Знание принципов и шаблонов предметно-ориентированного проектирования будет полезно инженерам-программистам всех уровней: младшего, старшего, штатного и руководящего.
🔹 Пост про DDD
📺 Интервью с автором Learning Domain-Driven Design • Влад Хононов
#архитектура #проектирование
✍️ Автор: Влад Хононов
🗓 Год издания: 2024
🔤 Язык: русский
📚 Объём: 320 стр.
Книга посвящена методологии DDD (предметно-ориентированному проектированию), что особенно актуально в условиях дробления предметных областей и усложнения бизнес-взаимодействий.
Рассказано
Знание принципов и шаблонов предметно-ориентированного проектирования будет полезно инженерам-программистам всех уровней: младшего, старшего, штатного и руководящего.
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍8🔥4
Workflow-движок — система, которая управляет выполнением последовательности шагов (задач) по описанной логике процесса:
Нужен, когда в системе есть повторяющиеся, формализованные процессы:
состоящие из нескольких этапов
с предсказуемыми переходами и условиями
Как работает
Компоненты:
форматы: BPMN, JSON, YAML, собственные DSL
Принцип:
Типовой цикл:
1. запуск — процесс стартует по событию или API-запросу
2. исполнение — движок выполняет шаги, проверяет условия переходов
3. ожидание — если требуется ввод данных пользователем или внешним сервисом
4. завершение — финальный статус, логирование результатов
Примеры
В архитектуре
Когда использовать
Не стоит использовать:
Workflow vs. BPM
Примеры ПО
1. Workflow Core — движок бизнес-процессов для .Net Core
2. Как мы делали свой движок Workflow
3. Интеграция с «Госуслугами». Применение Workflow Core (часть II)
4. Интеграционная платформа в The Platform: что умеет, как работает и зачем ей Workflow Engine
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍6🔥5👎1🤔1
JSON Patch — формат для описания изменений в JSON-документе
Вместо отправки документа для обновления, отправляется набор операций («патч»), которые нужно применить
Примеры применения
Пример
Исходно:
{ "user": "Иван", "age": 30 }Патч (набор операций):
[
{ "op": "replace", "path": "/age", "value": 31 },
{ "op": "add", "path": "/city", "value": "Москва" }
]
Результат:
{ "user": "Иван", "age": 31, "city": "Москва" }Особенности
RFC 6902 определяет только 6 операций:
- add
- remove
- replace
- move
- copy
- test
Расширять этот набор другими операциями нельзя, если нужно сохранить совместимость с системами, реализующими RFC 6902
Если любая операция в массиве завершается ошибкой (например, путь не найден для
remove, или операция test возвращает false), весь патч должен быть откачен, и документ остается без измененийЭто гарантирует целостность
Последующие могут зависеть от результата предыдущих
move) данные из /a в /b, сначала убедиться, что /b не существует, или удалить его в предыдущей операцииJSON Patch vs JSON Merge Patch
Отправляется фрагмент, который нужно "наложить" на целевой документ:
- значения заменяются
-
null означает "удалить поле"- отправляются только изменяемые поля
Когда использовать
1. Оптимизация трафика при синхронизации состояний через Jsonpatch
2. Убегайте от праздника «пустых» проверок: правильно выполняйте PATCH с помощью JSON Patch
#проектирование #api
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥10👍6💩2👏1
Брейншторм (мозговой штурм) — групповой метод генерации идей для решения задачи или поиска вариантов
Это не обсуждение и не поиск лучшего решения
Проводится в два этапа:
Роли участников
Зачем нужен
Когда не нужен
Пример
- обновление страницы оплаты
- проблемы у платежного провайдера
- изменения в анти-фрод системе
- ошибка в кешировании данных
- сезонный фактор
Cоздается список направлений для дальнейшей проверки
Базовые правила
1. Запрещена критика идей
2. Количество важнее качества. Цель — заполнить доску вариантами
3. Поощряются нестандартные идеи
4. Идеи можно развивать и комбинировать
Техники
Когда использовать: простые открытые задачи
Как проводится: участники устно предлагают идеи, фасилитатор фиксирует
Пример: генерация вариантов пользовательских сценариев
Когда: улучшение текущего решения
Как: генерация идей по наводящим вопросам
Пример: Оптимизация бизнес-процессов
Когда: cложные задачи, конфликт мнений
Как: участники мыслят в заданных ролях
Пример: проработка архитектурных альтернатив
Когда: поиск рисков и уязвимостей
Как: генерация идей как ухудшить ситуацию
Пример: выявление рисков реализации, ошибок в требованиях, потенциальных отказов системы.
1. Топ 8 инструментов для мозгового штурма
2. 15 способов превратить мозговой штурм в результат «огонь»
3. Пять техник мозгового штурма
4. Что такое мозговой штурм и как правильно его проводить в компании
5. Как провести мозговой штурм: основные правила, методы и ошибки
#управление_проектами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3🔥1
Код написан, всё успешно протестировано, фича на проде, а бизнес в шоке... Знакомо?
Выявить, проанализировать, уточнить, согласовать требования, критически посмотреть на проблему, найти риски
Баги от нас стоят дороже всего
Антипаттерны аналитики
Существуют на словах, "очевидно же"
В итоге на прод попадает функционал, где клиент-иностранец может получить налоговый вычет
После релиза менеджер залетает с ноги и возмущается, почему не учли то-то.
А это нигде не зафиксировано
Не продуман процесс целиком, нет e2e описания, как должно работать
В итоге ни у кого нет понимания общей картины. Даже у аналитика
Один из самых частых и дорогих видов багов
Например, не учесть, что отчество может отсутствовать, или что имя клиента может быть двойным
Никто, кроме аналитика, ничего не поймёт
Вообще, слово "доверять" не про аналитиков :)
Руководствуемся критическим мышлением, слепо доверять мы не можем
Например, при описании интеграции с внешним сервисом нельзя взять и скопипастить в своё ТЗ пример запроса и ответа. Нужно проверять вручную
В той самой статье про Васю всё сказано, добавить нечего
Давайте добавим краудсорсинга в комментариях к этому посту — обменяемся своими факапами (админ первый).
Соберём всё и выложим продолжение
P.S. Если формат зайдёт, будем практивать и дальше.
Примерно так:
мы даём начало
Ну и как всегда — выложим в базу знаний по системному анализу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍22❤9👏3