Итак, мы недавно подхватили React в нашей компании в качестве интерфейсной технологии для создания нашего огромного веб-приложения для бизнеса. Говоря недавно, я имею в виду, что у нас нет предыдущего опыта работы с React (у нас есть огромный фон AngularJS), и, говоря огромное приложение, я имею в виду, что это действительно огромная и очень динамичная с множеством и множеством разных частей и функциональности.Реагирующая архитектура для огромного бизнес-приложения
Поскольку у нас будет много огромных компонентов, которые играют очень важную роль и имеют сложную логику внутри них, а потому, что мы хотим, чтобы они были легко подключаемыми и многоразовыми, мы хотим, чтобы они были как можно более изолированными от внешний мир и другие части нашего приложения, потому что в противном случае из-за их размера и сложной функциональности было бы практически невозможно разработать и поддерживать их. Именно по этой причине мы решили НЕ использовать Redux, по крайней мере, вначале, в то время как мы разрабатываем только отдельные компоненты, потому что это ставит под угрозу изоляцию компонентов и делает невозможным понимание всей логики потока данных приложения, когда существует так много сложных компоненты. Хотя я считаю, что наш выбор может быть неправильным, потому что, как я уже упоминал, у нас нет опыта с React.
Как я уже говорил, приложение очень динамично. Под этим я подразумеваю, что компоненты фактически отображаются данными. Мы используем различные классы поставщиков конфигурации, которые взаимодействуют с нашими конечными точками API, чтобы получить части конфигурации нашего приложения, такие как конфигурации навигации, страницы, различные формы, списки и т. Д., А затем попытаться отобразить компоненты, которые считываются из этой конфигурации.
Проблема состоит в том, что через пару недель, пытаясь получить импульс с помощью Реагента и открыть правильные шаблоны и общие решения наших проблем, мы говорили в нашей команде, что, возможно, React не является подходящей технологией для мы, так как это библиотека пользовательского интерфейса, а не фреймворк, и это не очень помогает нам, но просто добавляет правила рендеринга, которые мы должны время от времени ломать, чтобы добиться требуемой нами динамики и независимости компонентов.
Учитывая, что для изоляции компонентов и управления потоками данных я лично слышал, что существует язык для разработки интерфейса Elm, который обладает довольно надежной архитектурой потока данных, где каждый компонент имеет свою собственную модель, которая отделена от других, но я не знаю, стоит ли попробовать, так как это может вскоре отстать от наших больших требований.
Причина, по которой я пишу этот вопрос, заключается в том, что я надеюсь получить представление о людях, имеющих солидный опыт работы с огромными внешними приложениями. Я хотел бы знать, можно ли разработать такое приложение с React, независимо от того, подходит ли React для такой сложности и динамики, действительно ли нам нужен Redux или что-то еще, какой путь, методы, идеологии должны мы следовать. Если вы правильно поняли мой вопрос, это скорее сторона архитектуры, с которой мы боремся, чем технологическая. Может быть, мы просто идем по пути, который ведет к все большему количеству борьбы и сложности, но не к производству.
Рад знать, что кто-то здесь уже знают, что мы проходим. Говоря о «Редуксе», я пробовал написать динамический компонент формы с ним и очень запутался довольно скоро, когда мне нужно было передать конфигурацию и данные в состояние из разных источников, а затем правильно отобразить форму и синхронизировать ее различные части , И затем часть валидации также вышла, а затем variuos формируют типы полей, такие как автозаполнение, которое загружает его выбор из онлайн-API. Тем не менее, я по-прежнему считаю, что путаница могла быть вызвана нехваткой опыта и знаний библиотеки/структуры. – Salivan