В последние два или три месяца начальник брал нас на разработку инструментов для создания интерфейсных систем.В настоящее время разрабатывается версия 2.0.Версия 1.0 работает только в зачаточном состоянии, и проект был запущен. Детали и функции все еще очень разные. Версия 2.0 в основном завершена примерно на 80%.
В течение периода я всегда хотел записывать процесс разработки реализации инструмента генерации, но в процессе ранней разработки с 0 до 1 мы не проектировали все функциональные модули до разработки, а продолжали дополнять и Итерации, непрерывный рефакторинг и модификация реализации кода привела к избыточности и высокой связанности версии 1.0, так что нам приходится проводить рефакторинг всего приложения, начиная с версии 2.0😱.
После итерации версии 1.0 наши идеи развития все еще очень ясны😘, воспользовавшись этими выходными, просто напишу об общих функциональных точках и зафиксирую идеи.
Давайте кратко представим, какую работу проделал наш инструмент генерации.
Узел подключен к аутентификации SSO, RBAC и JWT.
В компании есть полный набор систем SSO и RBAC, которые используются многими бизнес-системами, однако каждый раз при добавлении новой бизнес-системы необходимо разрабатывать набор сессий системы и функции подключения SSO и RBAC отдельно. Таким образом, мы абстрагируем функции сеанса, привязывая SSO и RBAC к уровню Node, отдельное приложение Node стыкует SSO и RBAC, приложение Node связывается с каждой бизнес-системой, используя RAS с асимметричным шифрованием, и приносит данные для входа пользователя, так что повторяющиеся функции между различными бизнес-системами опущены.Бизнес-системе нужно только разработать функцию расшифровки RAS, которую можно повторно использовать при нормальных обстоятельствах.Позже мы можем подготовить шаблон расшифровки языка разработки, используемого каждым бизнесом, и напрямую бросить в шаблон для замены.С секретным ключом все в порядке. Подробности реализации см.«Node.js использует JWT для подключения к системе единого входа»
Переадресация интерфейса нескольких доменных имен
Все больше и больше бизнес-систем используют микросервисную архитектуру. В настоящее время влияние на внешний интерфейс заключается только в отправке разных функциональных интерфейсов на разные доменные имена. Мы можем ввести несколько доменных имен при создании проекта.
Перетаскивайте компоненты для создания страниц
Существует множество отличных и зрелых интерфейсных фреймворков пользовательского интерфейса, но для повторного использования между бизнес-системами необходимо инкапсулировать их и преобразовать в повторно используемые компоненты между различными бизнес-системами. Перетаскивая бизнес-компоненты, мы можем быстро создавать макеты страниц. Этот модуль должен предоставлять интерфейсы для сбора, удаления, выбора, сортировки и модификации. Ниже приведен предварительный рендеринг версии 2.0. Подробности реализации см.«React не имеет порога для достижения макета перетаскивания, дизайнер форм 》
Динамическая модификация панели свойств.
Просто генерация макета страницы не является инструментом генерации, каждый компонент имеет свои свойства и входные параметры. Каждое свойство каждого компонента должно гибко настраиваться. Мы абстрагируем набор гибко изменяемых механизмов свойств, основанных на часто используемых типах данных js. При перетаскивании на холст генерируются данные атрибута по умолчанию. Щелкните выбранный компонент, чтобы настроить атрибут. Мы можем обрабатывать относительно простые типы данных, такие как строки, числа и раскрывающиеся меню даты. Мы можем отображать соответствующие поля ввода, поля выбора даты и раскрывающиеся списки в соответствии с различными типами данных. Более сложными являются массивы и типы объектов, такие как редактор json, которые могут бесконечно расширять данные.
Механизм связи между компонентами.
После завершения динамического изменения компонентов и конфигураций, осталось только установить связь между компонентами.Мы можем динамически создавать области и привязывать события, так что страница может быть макетом, свойствами конфигурации и событиями путем перетаскивания.И область становится функциональный модуль.
Генерация кода и публикация
Есть еще один очень важный момент, код должен быть запущен, и его можно публиковать в разные среды.После того, как конфигурация страницы будет завершена, нажмите кнопку «Создать», и маршрут и страница будут сгенерированы в соответствии с данными страницы для каталог во внешнем проекте и отправляется на сервер git, сервер git выпускается в разные среды с помощью хуков в сочетании с докером.
Вышеупомянутое содержание является просто описанием функций и общих идей, которые мы реализовали.Я участвовал в таком проекте и многому научился в команде.Изначально я хотел закончить писать детали реализации функции перетаскивания сегодня, и установить mongo на мой компьютер. Через некоторое время будет полдень. Давайте ненадолго покатаемся на моем мотоцикле. Я добавлю конкретные детали, когда у меня будет время.