Какие ресурсы прочитать или, может, книги,где описаны приемы проектирования ядра приложения?
Я спроектировал приложение: у меня есть модули, которые не связаны между собой и еще есть ядро приложения, которое управляет всеми этими модулями. Т.е у модулей нет прямого доступа друг к другу, они взаимодействуют через ядро.
Т.е ядро будет этаким медиатором, а к модулям будет обращаться через фасад.
Сейчас я думаю над внутренностью ядра, но хотел бы прочитать литературу. Посоветуете что-нибудь?
Идея в общем случае такая: в ядре будет очередь, которая асинхронно будет вызывать нужные модули, модули будут обрабатывать информацию, возвращать обработанный результат. И так, пока не будет выполнена вся очередь в ядре. Предролагается, что в конце очереди информация будет в готовом (полностью обработанном) виде.
Первое правило проектирования ядра приложения - избавиться от ядра приложения и делать нормальные компоненты с минимумом зависимостей.
Второе правило - прочитать что такое God Object и потихоньку начать понимать причину избавления от ядра.
Третье правило - пойти читать Чистую Архитектуру/Чистый код, разобраться с концептами coupling/cohesion и т.п.
p.s. последовательная обработка данных множественными компонентами может решаться через сервисы - координаторы, через посредники(middlewares), цепочку обязанностей(Chain Of Responsibility), хоть декораторы в конце концов.
Не думаю, что ядро в моем случае - это God Object, потому что у него будет только лишь одна функция - вызывыать нужный модуль в очереди. То есть он отвечает только за вызов нужного модуля в очереди и передачу информации. Работу над информацией производят модули.