Slide 1

Slide 1 text

Как свести концы с концами Практики кросс-командного взаимодействия Дмитрий Туфанов Systems Analyst

Slide 2

Slide 2 text

Raiffeisen Business Online (RBO) • Интернет-банк для юридических лиц • В проектном чате 34 человека • Front-end и back-end разрабатываются разными командами

Slide 3

Slide 3 text

Front-end Developer Back-end Developer Systems Analyst Исходная позиция Подготовка требований Разработка Front-end Разработка API Подключение API Обсуждение формата обмена Переделываем 

Slide 4

Slide 4 text

Исходная позиция • У нас более 30 различных бизнес-сущностей

Slide 5

Slide 5 text

Исходная позиция • У нас более 30 различных бизнес-сущностей • Эти сущности сильно пересекаются по набору атрибутов

Slide 6

Slide 6 text

Исходная позиция • У нас более 30 различных бизнес-сущностей • Эти сущности сильно пересекаются по набору атрибутов • Но в реализации эти пересекающиеся атрибуты не всегда передавались одинаковым образом между Front и Back-end

Slide 7

Slide 7 text

Исходная позиция • У нас более 30 различных бизнес-сущностей • Эти сущности сильно пересекаются по набору атрибутов • Но в реализации эти пересекающиеся атрибуты не всегда передавались одинаковым образом между Front и Back-end • Код для сериализации и парсинга этих атрибутов не переиспользовался

Slide 8

Slide 8 text

Решение

Slide 9

Slide 9 text

Модель данных Информация о документе • Номер • Дата • Статус Сумма в валюте • Сумма • Валюта Подразделение банка • Наименование • Местоположение • БИК Организация • Наименование • ИНН Ответственное лицо • ФИО • Телефон

Slide 10

Slide 10 text

Модель данных Кредитная заявка • Номер кредитного соглашения • Дата кредитного соглашения • Срок кредита • Дата предоставления кредита • … Информация о документе • Номер • Дата • Статус Сумма в валюте • Сумма • Валюта Подразделение банка • Наименование • Местоположение • БИК Организация • Наименование • ИНН Ответственное лицо • ФИО • Телефон

Slide 11

Slide 11 text

 Визуализация структуры данных помогает в ходе согласования формата обмена Что получили

Slide 12

Slide 12 text

 Визуализация структуры данных помогает в ходе согласования формата обмена  Сразу видны общие и специфические сущности Что получили

Slide 13

Slide 13 text

 Визуализация структуры данных помогает в ходе согласования формата обмена  Сразу видны общие и специфические сущности  Модель можно подготовить быстро и на ранних стадиях работы Что получили

Slide 14

Slide 14 text

«А где у нас передаѐтся счѐт»? «Если изменим этот атрибут, какие компоненты надо будет протестировать?» Sparx Enterprise Architect

Slide 15

Slide 15 text

Модель может быть прочтена по-разному Проверка реализации по модели – только вручную Модель – это хорошо, но… Помимо модели нужны схемы данных

Slide 16

Slide 16 text

 Xml Schema (XSD)  JSON Schema  RDFS Генерация JSON Schema по модели *Для выгрузки используем Schema Composer

Slide 17

Slide 17 text

 Схемы трудно читать  В больших схемах сложно ориентироваться Минусы JSON Schema { "$id": "https://example.com/person.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Person", "type": "object", "properties": { "firstName": { "type": "string", "description": "The person's first name." }, "lastName": { "type": "string", "description": "The person's last name." }, "age": { "description": "Age in years which must be equal to or greater than zero.", "type": "integer", "minimum": 0 } } } { "firstName": "John", "lastName": "Doe", "age": 21 }

Slide 18

Slide 18 text

 Web-версия: https://json-schema-faker.js.org/  Npm-пакет для Node.js: https://github.com/json- schema-faker/json-schema-faker Генерация примеров по схеме

Slide 19

Slide 19 text

Front-end Developer Back-end Developer Systems Analyst К чему мы пришли Сбор требований и подготовка модели данных Согласование модели Генерация JSON Schema и примеров Разработка Front-end на заглушках (mockups) Разработка API Валидация API, доработка Front-end и API Переключение c заглушек на разработанный API Внесение изменений в модель

Slide 20

Slide 20 text

Плюсы Сокращение общих затрат на разработку за счѐт меньшего количества переделок

Slide 21

Slide 21 text

Плюсы Сокращение общих затрат на разработку за счѐт меньшего количества переделок Меньше повторяющихся багов, так как часть кода переиспользуется

Slide 22

Slide 22 text

Плюсы Сокращение общих затрат на разработку за счѐт меньшего количества переделок Меньше повторяющихся багов, так как часть кода переиспользуется Не надо выяснять, «кто виноват». Схема – контракт

Slide 23

Slide 23 text

Подход рекомендуется, если Система сложная, с длительным циклом жизни

Slide 24

Slide 24 text

Подход рекомендуется, если Система сложная, с длительным циклом жизни В разработке участвует несколько команд или в команде более трѐх разработчиков

Slide 25

Slide 25 text

Подход рекомендуется, если Система сложная, с длительным циклом жизни В разработке участвует несколько команд или в команде более трѐх разработчиков Различные системные сущности имеют общие части

Slide 26

Slide 26 text

Дмитрий Туфанов [email protected] Спасибо за внимание @DTufanov