Как управлять структурой, которая зависит от сетевых вызовов и запросов к базе данных? - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть проект, который должен реализовать фреймворк, который потенциально можно использовать совместно со многими другими проектами, этот фреймворк связан с «подпиской».

В основном, это то, что он делает, оборачивает StoreKit в iOS, а также общается с нашим сервером, а затем потенциально сохраняет что-то в базе данных. У меня есть стек базы данных и сетевой стек в проекте, но я еще не абстрагировал их в каркас / библиотеку.

Итак, мой вопрос, я не очень уверен в правильном способе достижения этого. Должен ли я сначала сделать свой стек базы данных и сетевой стек 2 отдельными платформами? затем создать структуру подписки, имея их в нем? Но я также обнаружил, что это называется umbrella framework, что не рекомендуется.

Есть предложения?

1 Ответ

0 голосов
/ 12 сентября 2018

По моему мнению, есть два способа сделать это.

Опция A / lazy

Соберите все ваши повторно используемые классы в единую структуру.Эта инфраструктура будет включать / компилировать весь необходимый код поддержки (база данных, сеть и т. Д.), Чтобы выполнять свою работу.

Затем вы сможете использовать эту многократно используемую платформу для различных проектов вашего приложения.Не забудьте не только ссылаться на фреймворк, но и встраивать его в свое приложение.

Это самое простое в настройке, проектировании и обслуживании (для одного человека).Однако это также означает создание монолитной библиотеки, которая может быть слишком широкой и / или скрывать слишком много лежащих в основе технологий.

Опция B / энтузиаст

Создайте каждый из ваших повторно используемых компонентов в свои собственныефреймворк.Инфраструктуры высокого уровня будут связываться (но не встраивать) с низкоуровневыми инфраструктурами.

В ваших проектах приложений будут и ссылки, и встраивания всех необходимых платформ.

При запускеВремя, каждый фреймворк (должен) магическим образом загружается при необходимости.

Это намного больше работы, но имеет несколько преимуществ.У каждой крупной службы есть свой собственный I / F, поэтому ваше приложение может напрямую использовать компоненты, не прибегая к «сверлению» высокоуровневых структур, определяющих вашу пользовательскую службу.

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

Также может выполняться техническое обслуживание (особенно если за каждую службу отвечают разные инженеры).) и регрессионное тестирование проще.

Наконец, здесь нет правильных ответов, только компромиссы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...