LINUX.ORG.RU

Архитектурообразующие принципы для категории кейзов

 ,


0

1

Допустим, у нас есть приложение, логика которого очень завязана на вызовы самых разнообразных сервисов (бд, очереди, API всех сортов, etc). Завязана настолько, что кажется, будто не надо выделять в приложении ядро — собственной доменной логики почти нет. Ограничивается кейзами `взял — проверил — взял где-то ещё, и ещё — проверил — отправил`.

Т.е. можно это рассматривать как умный брокер сообщений с вкраплениями логики.
Или лучше даже как https://ru.wikipedia.org/wiki/Манифольд

И получается такая инверсия — доменная логика зависит от всех апи-биндингов, а они, собственно, не зависят от ядра.

И это никак не укладывается в моей головушке, ощущение что я делаю что-то не так.

Может есть какие-то подходы для сего? Возможно, мне нужен этот ваш data driven development, но я что-то не очень понимаю без примера что это такое.

Собственно, преследуемые цели:

  • Разработка должна хорошо распараллеливаться
  • Структура должна по максимум сокращать время понимания кода и помогать интуитивно находить где какая логика находится
  • Удобное тестирование доменной логики

* под термином `ядро` подразумевается код, содержащий только доменную-логику, который требует на вход реализации интерфейсов, которые защищают его от внешнего отвратительного мира



Последнее исправление: oxo (всего исправлений: 1)

Ответ на: комментарий от shkolnick-kun

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

oxo
() автор топика

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

Судя по описанию, у тебя какая-то интеграционная херня. Там надо смотреть, либо она является собой фасад-«прокси сервер», где максимум выполняется конвертация данных, тогда один подход. Либо это имено интеграционная шина (смотри как устроены ESB), тогда у тебя один вызов порождает пачку вызовов к другим сервисам, а это уже логика, просто ты её не узнаёшь. Там надо ждать ответа, там при ошибке сделать то-то, там записать в базу и дёрнут еще десяток сервисов обновляя запись в базе - это всё и есть та самая логика.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.