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





Если вы планируете использовать одни и те же серверные ресурсы для нескольких интерфейсных приложений, я думаю, что было бы неплохо разделить их на другой проект. Если вы хотите сделать это, я бы порекомендовал оставить ваш проект Amplify в качестве внутреннего каталога, а затем переместить код внешнего интерфейса в новый проект.
Используете ли вы инструменты Amplify codegen? Команда codegen принимает аргумент --api-id, который можно использовать из внешних проектов теперь, когда они разделены.
Да, я думаю, что по-прежнему имеет смысл разделить его, особенно если вы хотите, чтобы им управляли несколько команд.
Опять же, с одной стороны, думая о разработчике полного стека, где каждый должен разрабатывать свои соответствующие компоненты пользовательского интерфейса, а также сквозную внутреннюю часть GraphQL. Недостатком является то, что каждый должен изучить так много бессерверных технологических стеков aws, что хорошо для разработки полного стека, но может задержать сроки проекта, а также затруднить поддержание общего шаблона в схеме GraphQL. любая мысль?
Если вы не планируете использовать один клиент ReactJS, то я не думаю, что необходимо разделять кодовую базу. Отличительной особенностью amplify является то, что он будет генерировать запросы, мутации, входные данные, фильтры и подписки на основе вашей схемы аннотированного типа. Он поместит это в папку внешнего интерфейса src, поэтому вашим разработчикам внешнего интерфейса нужно будет только import { listAllTypes } from '/src/graphql/queries.js' использовать этот запрос в своем клиентском коде. Разделения не потребуется, потому что ваши разработчики внешнего интерфейса будут работать только в каталоге project_root/src, а разработчики внутреннего интерфейса будут работать только в каталоге project_root/amplify/backend. Использование хорошего рабочего процесса git позволит разделить эти проблемы между командами.
спасибо за ваше предложение. использование внутренних ресурсов специфично для одного внешнего приложения. нет плана для нескольких интерфейсов. в этом случае, как вы думаете, требуется кодовая база. я думаю, что если я разделюсь, то разработчики внешних интерфейсов смогут работать в команде разработчиков внешнего и внутреннего интерфейса для ресурсов appsync. Что касается вашего другого вопроса, я не использую инструмент amplify codegen.