Новый Sifo с открытым исходным кодом Али — предварительный опыт

JavaScript

Недавно я заметил, что Warehouse Gayhub Ali открыл новую кодовую базу, адрес:https://github.com/alibaba/schema-plugin-flow, см. введение в файле README, это программа, которая позволяет разработчикам завершить расширение бизнес-логики и макета страницы путем изменения кода, связанного с конфигурацией, избегая тем самым модификации исходного кода. На первый взгляд я подумал, что это набор решений, связанных с низким кодом, но после того, как я его прочитал и поиграл, я чувствую, что определение его таким образом кажется неточным.Давайте рассмотрим его подробно.

1. Позиционирование

Я также упомянул, что когда я впервые столкнулся с Sifo, я подумал, что это решение с низким кодом, но это выражение не точно. Давайте посмотрим на другое решение с аналогичными возможностями, то есть на амис Baidu. В случае плана, его внимание полностью сосредоточено на низком коде, который направлен на быстрое и экономичное создание интерфейсных страниц с помощью конфигурации JSON. Sifo также организует структуру страницы с помощью конфигурации JSON, и в этом отношении они очень похожи.

Прежде всего, давайте поговорим о том, почему фронтенд должен заниматься исследованием low code.На самом деле, я лично считаю, что большинство сценариев применения low code лежит в каких-то бизнес-сценариях на стороне B. Почему вы так говорите? Потому что большинство бизнес-страниц на стороне B относительно фиксированы, а больше — это расположение и расширение различных форм, таблиц, графиков данных и т. Д., И часто эти бизнес-сценарии будут появляться снова. Страницы очень похожи, но всегда есть некоторые специальные настройки, изменения и потребности бизнеса, это особенно характерно для корпоративных сервисов Sass.

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

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

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

Таким образом, мы должны точно определить эти два решения.Amis — это простое решение для страницы генерации конфигурации с минимальным кодом, быстрое и недорогое, ориентированное на низкий код, в то время как Sifo — это масштабируемое решение для страницы генерации конфигурации, ориентированное на ложь в высоком расширении.

Конечно, эта часть контента о лоу-коде — это лишь односторонний анализ, основанный на сравнении этих двух решений.Роль лоу-кода гораздо шире, и даже конечной целью отсутствия кода является преследование визуального строительство.Это перспективное направление исследований.Если что-то не так, прошу меня поправить.

2. Используйте

Что касается конкретного использования, официальная документация Sifo также содержит очень подробные рекомендации по приветствию, поэтому здесь не так много таблиц. Можете зайти на склад, чтобы проверить это самостоятельно по ссылке, размещенной выше.Все еще очень хорошо, чтобы cv вел преподавателя иначе. Здесь я в основном рассказываю о некоторых ощущениях после первого использования. Первый список:

преимущество:

  • низкая стоимость обучения
  • Низкая бизнес-инвазивность
  • низкая стоимость доступа
  • Высокая масштабируемость

недостаточный:

  • Меньше поддержки сценариев приложений и ограничений
  • Чуть более высокие требования к разработчикам

Ниже приводится подробное объяснение источника взглядов моих братьев.Конечно, я не привожу здесь конкретный демо-код.Лучше перейти на официальную демо-версию, чтобы лучше понять, чем смотреть мою демо-версию.Я лично считаю, что демонстрации, которые отделены от реальных бизнес-сценариев, аналогичны:

1. Низкая стоимость обучения

Начать работу с Sifo несложно, если у вас есть фундамент переднего плана.Конечно, текущей целевой аудиторией Sifo также должны быть разработчики. Если он запущен, просто запустите его напрямую по образцу кода с официального сайта. Начального использования для определения основных параметров SifoModel почти достаточно для начала работы.

Схема здесь представляет собой файл конфигурации JSON структуры страницы, а плагины — это плагины, связанные с этой страницей, такие как страницы, компоненты и некоторые модели. Это имя относится к вторичному расширению разработки. Конкретное использование выглядит следующим образом (здесь в качестве примера используется vue):

Этот способ начала работы очень похож на amis. Он использует файл json в качестве основной конфигурации структуры страницы, а затем добавляет некоторые другие возможности, в том числе некоторые библиотеки пользовательского интерфейса, встроенные в фреймворк. Здесь Sifo использует ant's ant. библиотека компонентов как встроенная библиотека компонентов по умолчанию. Реализована конфигурация страницы на основе данных.

2. Низкая бизнес-инвазивность

Прежде всего, официальное описание Sifo — это расширяемая библиотека JavaScript. То есть это низкоуровневая библиотека времени выполнения, которая полностью независима и отделена от наших общих фреймворков пользовательского интерфейса, таких как React/Vue, То есть в процессе фактической работы Sifo будет писать нам в этих UI бизнес-код почти не заражен.

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

3. Низкая стоимость доступа

Я думаю, что это главная особенность Sifo, потому что по сравнению с amis, amis в настоящее время поддерживает только использование в среде React или с использованием метода JDK.Конечно, если вы используете JDK, вы не можете выполнять некоторые возможности настройки. , таких как пользовательские компоненты, это способ использования не разработчиками, и мы не будем обсуждать его здесь. Благодаря полному отделению от упомянутой выше среды пользовательского интерфейса Sifo отлично поддерживает две широко используемые среды пользовательского интерфейса React и Vue, что очень удобно для таких игроков, как я, слайсеров типа Vue. Именно потому, что он полностью отделен от фреймворка пользовательского интерфейса, мы можем быстро получить доступ к Sifo, изменив исходный проект на уровне компонентов, а стоимость миграции всего проекта не слишком высока.

Видно, что эти две структуры пользовательского интерфейса поддерживаются в исходном коде Sifo. Однако, если вы хотите использовать возможности, связанные с vue, в amis, вам нужно не только использовать настраиваемые связанные возможности, но также необходимо ввести возможности, связанные с Vue, в настраиваемые компоненты React. Конечно, это связано с тем, что направленность двух решений разная, поэтому есть некоторые функциональные отклонения, и нельзя сказать, кто лучше, а кто хуже, но Sifo более дружелюбен к компаниям и разработчикам, использующим стек технологий Vue. .

4. Высокая масштабируемость

Это ядро ​​Sifo, ведь официальный упор делался на высокую масштабируемость. Масштабируемость, которую я здесь понимаю, в основном сосредоточена на уровне компонентов и в меньшей степени на уровне бизнеса. Как это сказать? Прежде всего, давайте посмотрим на бизнес и логическую структуру Sifo. Во-первых, на уровне компонентов он заполняется встроенными компонентами или самостоятельно разработанными пользовательскими компонентами. На уровне страницы страница организована через Конфигурационный файл JSON, настроенный с помощью Schema, а затем с помощью Plugin.Повторное использование и организация на логическом уровне. Этот метод композиции полностью разделяет представление и уровень логики, поэтому он обеспечивает нам основу для реализации модификации структуры страницы уровня представления, модификации компонента рендеринга и внутреннего преобразования компонента, который отделен от бизнес-логика. Конечно, мы также можем просто изменить исходный код бизнеса. То есть компоненты, страницы и логические плагины можно гибко заменять и расширять. Это благо для бизнес-сценария службы B-side Sass.

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

5. Ограничения сценария применения

С точки зрения текущего использования решения Sifo больше подходят для бизнес-сценариев стороны B с относительно фиксированными сценариями страниц. Для стороны C существуют более высокие требования к высоким возможностям расширения. Возьмем в качестве примера мой предыдущий опыт стажировки в WeChat. словами, компонент может использовать представления и возможности трех других компонентов, и есть различия в обработке логики.В этом сценарии использование этого метода конфигурации организации страниц может не использоваться в сторона Б. Если официальные разработчики захотят развиваться в этом направлении и сделают более глубокую оптимизацию для высокого расширения некоторых сложных сценариев, то я полагаю, что применение и влияние Sifo будет становиться все более и более обширным. Конечно, это только мое частичное понимание.

6. Технические требования

По моему личному мнению, это также является одним из недостатков Sifo.Amis может предоставить метод JDK для использования не разработчиками, а также напрямую настраивать и генерировать страницы, в то время как Sifo требует определенного внешнего интерфейса для начала работы. Можете ли вы также рассмотреть вопрос о том, чтобы некоторые упрощенные версии были доступны для разработчиков, не являющихся фронтендами? Это также немного помогает при использовании Sifo в других местах. Конечно, это также из-за аудитории.Amis в основном предназначен для страниц генерации конфигурации, и аудитория не обязательно состоит из разработчиков интерфейса, в то время как Sifo больше помогает разработчикам интерфейса решить проблему связи между представлениями и логикой в ​​интерфейсе. процесса разработки, а эффективность повторяющихся страниц низкая., традиционные проблемы разработки, такие как низкая масштабируемость.

В-третьих, конец

На самом деле мое личное понимание Sifo не особенно глубокое, и я все еще нахожусь в стадии изучения и начала работы.У меня просто есть некоторые впечатления в процессе его использования.Вспоминая, что многие сценарии разработки ранее можно было быстро решить с этим Во время процесса я также поделился этой структурой с некоторыми друзьями со стороны B. Они также оценили ее в процессе использования. Осторожно Когда я думаю, что это так, студенты, изучающие фон, возвращают конфигурацию схемы, а студенты, работающие с интерфейсом, пишут соответствующую визуализацию и подключаемый модуль, которые действительно могут обеспечить создание страницы конфигурации на стороне сервера. В общем, то, что я вижу в возможностях Sifo, это только вершина айсберга. В настоящее время я вижу только низкий код и высокое расширение. На следующем этапе я планирую постепенно использовать его в своей команде и использовать некоторые из предыдущие инфраструктурные системы.Рефакторинг с Sifo, а затем попробовать более глубокие возможности, эта волна, эта волна подходит для конкретных бизнес-сценариев, и подробно анализируются конкретные проблемы. В этот раз я на первом этаже. После того, как команда получит отзывы об использовании, я проведу оценку некоторых основных и более глубоких возможностей.Я надеюсь увидеть больше возможностей Sifo, что также является процессом моего собственного обучения.