Отделить код GraphQL-AppSync-Schema-Resolver от кода UI ReactJS

Я разрабатываю приложение на основе синхронизации ReactJs-GraphQL-aws. сборка и конфигурация основаны на aws amplify. в настоящее время все находится в одном и том же исходном коде. можем ли мы иметь отдельный пакет для пользовательского интерфейса и серверной части.

например React -redux и весь пользовательский интерфейс будут в одном репозитории/пакете кода. и код, связанный с преобразователем GraphQL-appsync, будет находиться в отдельной базе кода или в отдельном репозитории кода. и если да, не могли бы вы объяснить больше, как это сделать. или вы думаете, что это хороший вариант, чтобы разделить пользовательский интерфейс и серверную часть.

Пожалуйста, дайте мне знать, если я объяснил это правильно.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
102
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Используете ли вы инструменты Amplify codegen? Команда codegen принимает аргумент --api-id, который можно использовать из внешних проектов теперь, когда они разделены.

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

srakshit 25.03.2019 20:54

Да, я думаю, что по-прежнему имеет смысл разделить его, особенно если вы хотите, чтобы им управляли несколько команд.

mparis 25.03.2019 20:55

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

srakshit 25.03.2019 21:41

Если вы не планируете использовать один клиент ReactJS, то я не думаю, что необходимо разделять кодовую базу. Отличительной особенностью amplify является то, что он будет генерировать запросы, мутации, входные данные, фильтры и подписки на основе вашей схемы аннотированного типа. Он поместит это в папку внешнего интерфейса src, поэтому вашим разработчикам внешнего интерфейса нужно будет только import { listAllTypes } from '/src/graphql/queries.js' использовать этот запрос в своем клиентском коде. Разделения не потребуется, потому что ваши разработчики внешнего интерфейса будут работать только в каталоге project_root/src, а разработчики внутреннего интерфейса будут работать только в каталоге project_root/amplify/backend. Использование хорошего рабочего процесса git позволит разделить эти проблемы между командами.

Другие вопросы по теме