ogr
@ogr

В чём описывать зависимости между элементами системы?

Мы делаем проекты на базе готовой платформы. Принцип платформы, наверно, ближе всего к 1С или Sharepoint:
  • Есть отдельный конфигуратор интерфейса
  • Есть отдельные места, где пишутся небольшие скрипты
  • Есть сторонние сервисы. Например, веб-версис, отвечающий за интеграцию

Возникает проблема отслеживания зависимостей. Например:
  • Есть объект "Карточка сотрудника" со своей формой. На форме есть поле "Сотрудник" и кнопка "Заполнить"
  • На кнопке "Заполнить" висит скрипт, который спрашивает у пользователя ФИО и заполняет поле "Сотрудник".
  • И есть служба, которая периодически проверяет все "Карточки сотрудника" и что-то вписывает в поле "Сотрудник".


Хотелось бы иметь какой-то инструмент для бизнес/системного аналитика, решающий следующую задачу:
  1. Заказчик попросил удалить поле "Сотрудник" с формы
  2. Аналитик зашёл в программу и проверил зависимости
  3. Аналитик ответил заказчику: если мы удаляем поле "Сотрудник", то ещё меняем скрипт на кнопке и правим службу. Соответственно, трудозатраты не день, а 2 недели


Сейчас, чаще всего, это выясняется уже при тестировании, а то и на проме, когда отъезжает какой-то редко используемый модуль. И чем больше и сложнее система, тем больше проблем.
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Архитектура кода проекта должна отрабатывать этот функционал в автоматическом режиме.
Исправляйте архитектуру!

Могу подсказать: если вы делаете что-то на ПК - вы именно обрабатываете входные данные.
Значит нужно проверять:

1. Что именно нужно обрабатывать - перечень обязательных и необязательных переменных.
2. Что соответствует допускам для обработки, а что является мусором - regex/isNull/etc.
3. Проверить наличие всех обязательных переменных перед началом обработки.

Если что-то отсутствует - выдать сразу ошибку при запуске кода.

Это всё должно быть сделано в самом начале проекта - в заголовочном блоке кода, где хранятся все негенерируемые переменные.
Если вы задаёте (инициализируете) переменные внутри блоков, зависящие от входных данных в этот блок - ЭТО СРАЗУ EPIC FAIL!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы