Решение Didi с открытым исходным кодом Chameleon (сокращенно CML) на GitHub официально выпустило версию 1.0, китайское название Cameron, что в переводе с китайского означает хамелеон, что означает комплексное кросс-решение корпоративного уровня, которое может адаптироваться к различным средам, как хамелеон. проста в использовании, легкая и ориентирована на будущее. Далее будет подробно рассказано об истории разработки и характеристиках проекта Chameleon.
Самое счастливое в мире — это стремиться к идеалу. - Сократ
После 3 лет исследований и разработок, усилий десятков членов команды, совместной разработки сотен участников отрасли и тысяч улучшений и оптимизаций мы, наконец, представили официальную версию кросс-энд решения CML 1.0.
содержание
- предисловие
- Новое: первый межсетевой стандартный протокол MVVM+.
- Комплексность: поддержка всех экосистем мини-программ
- Подробности: кросс-конечная согласованность и настройка
- Производительность: максимальный опыт
- Rich: идеальная экологическая конструкция
- Инжиниринг: всестороннее благословение возможностей
- Дружественный: прогрессивный доступ
- Схема: планирование будущего
- Особая благодарность за вклад в открытый исходный код
- CML1.0 Мероприятия
предисловие
Chameleon (сокращенно CML) — это кросс-энд фреймворк, который действительно фокусируется на том, чтобы позволить набору кодов работать с несколькими концами. Он имеет передовой инженерный дизайн в отрасли, богатые базовые библиотеки, оригинальные полиморфные протоколы и предоставляет стандартный режим разработки архитектуры MVVM. для унификации различных типов терминалов.
Однажды откройте, CML обеспокоенность в отрасли, долгосрочное оккупационное Github Tending List, разработайте концепции и структуру проектирования, были признаны широким спектром разработчиков.
Однако из-за отсутствия достаточного осмысления некоторых деталей он подвергался сомнению в период открытого исходного кода. С этой целью мы провели углубленное исследование кросс-энд фреймворков в отрасли и активно приняли предложения сообщества открытого исходного кода.После 6 месяцев и 180 итераций разработки, инструмент для создания каркасов выпустил более 70 ежедневных версий и 5090 коммитов кода. ; среда выполнения выпустила более 40 ежедневных версий, 900 коммитов кода; Github разрешает проблемы с частотой 83%, коэффициент охвата одного теста более 85%, PR раз 70+, стабильность и функции CML сделали качественный скачок. Поэтому мы уверены, что выпустим новую и стабильную версию 1.0. Новые функции в основном включают в себя:
-
Расширение конечной продукции
- Впервые предлагается стандартный протокол кросс-конечного расширения MVVM+, чтобы предоставить разработчикам возможность расширять новый конечный
- Полная поддержка всех мини-программ платформы в отрасли (WeChat, Alipay, Baidu, Toutiao, QQ), H5 и клиента.
- Возможность перегрузки полиморфного протокола
- Обеспечьте возможность прогрессивного доступа, поддержите импорт и экспорт компонентов на каждом конце
-
Простота укрепления
- Синтаксис шаблона Richer DSL, поддерживающий более 50% от Vue шаблонов синтаксических возможностей,
- Предоставьте плагины редактора — плагины vscode, подсветку синтаксиса поддержки, завершение инструкций и т. д.
- Комплексная проверка грамматики с охватом 93%
-
Оптимизация фреймворка
- Улучшена согласованность многотерминального интерфейса, а базовый стиль можно свободно настраивать.
- Размер пакета оптимизирован, уменьшен размер почти на 40% по сравнению с исходной версией.
- Поддержка фиктивного многодоменного запроса
- Добавлена поддержка полиморфизма жизненного цикла и полиморфизма стилей.
- Возможность поддержки миксинов
- Поддержка всплывающих событий
- Динамические компоненты поддерживают события
- Жизненный цикл страницы поддерживает onShow, onHide
- Мини набор программ Оптимизация данных
-
расширение возможностей терминала
- Поддержка апплета WeChat wxs, апплета Alipay sjs, апплета Baidu filter.js
- Поддержка загрузки подпакетов апплета
- Добавлена поддержка собственных возможностей, включая настраиваемые панели вкладок и т. д.
-
расширение компонента
- Добавьте дополнительные межсетевые компоненты и интерфейсы, включая форматированный текст, аудио и т. д.
- Скоро будут выпущены более богатые библиотеки компонентов: c-design, light-ui, chameleon-ui-miniapp.
О TUCAO "Универсальная" жертва "Богатство": CML надоело к проблеме, представляют собой небольшие программные компоненты достаточно богаты, хотя предложение по всем конечным компонентам и функциям API, но нет возможности уникального апплета пакетов уникальные возможности, поэтому мы будем Скоро выпуститеchameleon-ui-miniapp
а такжеchameleon-api-miniapp
, обслуживает только все виды небольших программ и полностью поддерживает различные небольшие программные компоненты и интерфейсы.В то же время пользователи могут настраивать реализацию функций других терминалов (таких как web и weex) на основе перегрузочной способности полиморфных протоколов.Это предполагается учитывать богатство компонентов и единство.
Фактически, CML был проверен во многих бизнес-продуктах Didi (Qingju Bicycle, Didi Driver, Parking, Didi Unified Login Passport, Cashier, Driver, Enterprise, International) и во многих других. Внешняя команда приступила к разработке сквозных проектов. на основе CML (апплет Baidu Video, первый новый Fangtong Baidu, Didi Qingju Bicycle, Mango TV Video, Dad Evaluation Mall). Спасибо всем разработчикам за доверие к бета-версии CML.
Новое: первый межсетевой стандартный протокол MVVM+.
Основываясь на накопленной работе кросс-энда, CML стандартизирует набор кросс-энд стандартов, который называется протоколом MVVM+.
Основываясь на стандартном протоколе MVVM + Cross-end, вы можете свободно расширяться до нового конца, быстро поддерживать любой архитектурный шаблон MVVM терминала, такой как небольшая программа Taobao, React Native и т. д., с конкретной ссылкой на:Длинная тишина говорит .org/doc/extend/...
Вам нужно только разрабатывать проекты на основе CML, и вы можете беспрепятственно запускать существующие проекты на новой стороне, и вам больше не нужно изучать новую платформу платформы!
С тем же (проектным кодом) его следует изменить (несколько концов), с «раздельного правительства» на действительно единое.
Благодаря определению интерфейсов для каждого уровня кода в полиморфном протоколе CML может реализовывать стандартизированные новые расширения.
Слои на приведенном выше рисунке определяются следующим образом:
- Протокол интерфейса API (библиотека): определение базовых стандартов возможностей интерфейса.
- Протокол встроенных компонентов (библиотека): определяет основные стандарты компонентов пользовательского интерфейса.
- Framework: определяет стандарты каркаса, такие как жизненный цикл, события, маршрутизация и т. д.
- Протокол DSL (язык): стандарт синтаксиса для определения представлений и логических уровней.
- Полиморфный протокол реализации (интерфейс): определяет стандарты, которые позволяют пользователям использовать дифференцированные возможности.
Комплексность: поддерживает все апплеты, H5 и клиенты
CML1.0 поддерживает все платформы Mini Program в отрасли (WeChat, Alipay, Baidu, Toutiao, qq), H5 и клиентов, а такжеОфициальная команда разработчиков быстрого приложенияТакже расширяется быстрое приложение на базе стандартного кросс-протокола MVVM+.Прогресс составляет 100%, разработка завершена и идет тестирование.
Особое внимание уделяется апплету расширения CML (Ali и манго ТВ) и быстрой стороне приложения (официальная команда быстрого приложения), полностью предоставленным разработчиками сообщества с открытым исходным кодом для реализации выдающегося.
Подробности: кросс-конечная согласованность и настройка
CML1.0 реализует набор кодов, которые работают на нескольких концах и отличаются высокой согласованностью.
последовательность
Непротиворечивость и дифференциация всегда были трудными проблемами в кросс-энде.CML приложил много усилий в этом отношении, включая унификацию жизненного цикла, системы событий, единиц размера, согласованной компоновки и внешнего вида, схемы компонентизации, управления данными и так далее. Особо подчеркивается, что компонентизация и согласованность интерфейса являются наиболее важными моментами, которые легче всего упустить из виду и которые больше всего влияют на опыт разработки.
Решение по компонентизации CML опирается на исходные возможности компонентизации на каждом конце, чтобы свести к минимуму проблемы с производительностью, вызванные инфраструктурой.
Возьмите в качестве примера мини-программы WeChat и Alipay,ExparserЭто структура организации компонентов в нижней части апплета WECHAT. Он построен в базовой библиотеке апплета и обеспечивает поддержку возможностей встроенных компонентов и пользовательских компонентов. Это реализуется на основе тенедовой модели WebComponent. Это Эффективный, легкий и имеет хорошую производительность.
Модель компонентизации каждого апплета непоследовательна.Например, компонентизация апплета Alipay основана на React Web, и существует множество ограничений в использовании, включая такие проблемы, как отсутствие стиля компонентов, передача данных, обмен событиями и т. д. CML основан на исходных возможностях компонентизации Alipay, а также стирании различных различий между Ping и WeChat, обеспечивая при этом исходную операционную производительность, достижение согласованности с несколькими терминалами и повышение простоты использования.
С другой стороны, путем введения последовательного базового стиля, объединяющего все концы, решается проблема различных эффектов рендеринга на каждом конце.
В то же время, CML1.0 усиливает спецификацию проверки межконечного стиля, в режиме разработки будет строго проверяться грамматика CMSS, и разрешены только общие правила CMSS (кросс-H5, различные небольшие программы и клиенты). быть написано.
настройка
CML имеет как единообразие, так и настройку и дифференциацию, а также предоставляет возможности настройки для различных типов инженерных уровней, проектов, компонентов, методов, стилей и т. д.
- Инжиниринг, настройка проекта:долгое молчание, чтобы сказать .org/doc/frame i...
- Настройка компонентов:долгое молчание говорит .org/doc/example…
- Настройка метода:долгое молчание говорит .org/doc/example…
- Настройка стиля:долгое молчание говорит .org/doc/view/clever…
Оригинальный стандарт полиморфного протокола CML может напрямую использовать сторонние компоненты и библиотеки методов на любом конце, обеспечивая при этом полную изоляцию многоконечной бизнес-логики и высокую ремонтопригодность.
Особо подчеркивается, что версия 1.0 также поддерживаетВозможность перегрузки полиморфного протокола, вы можете перегрузить реализацию определенного конца.Основываясь на этой способности, мы запустим библиотеку компонентов, специфичную для различных небольших программ, чтобы решить проблему, заключающуюся в том, что компоненты небольших программ, на которые больше всего жалуются разработчики небольших программ, недостаточно богаты. . Например, используя возможности перегрузки полиморфных протоколов, перегрузка<share>
Реализация компонента на сайте пользователя предлагает пользователю поделиться в правом верхнем углу.
Официальная библиотека, когда я разрабатываю апплет WeChat<picker>
Компоненты недостаточно гибкие? Что ж, достаточно перегрузить реализацию на стороне апплета WeChat! !
Производительность: максимальный опыт
CML придает большое значение производительности фреймворка и проделал большую работу в направлении оптимизации производительности, включая размер пакета, скорость загрузки на каждом конце, эффективность выполнения и т. д., обеспечивая очень хорошую производительность.
Оптимизация размера пакета
Размер пакета кода напрямую влияет на скорость загрузки, тем самым влияя на первый опыт открытия пользователем. Набор кода CML выполняется на стороне N+, из-за чего у людей может возникнуть ощущение, что инфраструктура очень велика, что влияет на проблемы с производительностью.Исходный полиморфный протокол CML проходит через всю инфраструктуру, включая язык, инфраструктуру и библиотеку, а не только хорошо ремонтопригодность, но также и в проектировании. На этапе построения сохраняется только один конец кода, чтобы гарантировать, что пакет вывода кода будет достаточно простым и достаточно небольшим.
Не только это, но и много другой работы было проделано по оптимизации размера пакета, в том числе:
- Разделите код общих модулей, чтобы избежать такого явления, как слишком большой размер одного файла.
- Загружайте встроенные компоненты и встроенные API по запросу, что значительно уменьшает размер пакета.
- Инженерный уровень напрямую поддерживает загрузку подпакетов небольших программ и обычное сжатие кода.
- Проект поддерживает преобразование ресурсов образа мини-программы в сетевую загрузку, настройку publicPath и публикацию упакованного статического изображения / изображения на сервер.
Апплет WeChat предоставляет решение для загрузки подпакетов, которое использует страницу в качестве записи для подпакета. Это может оптимизировать время загрузки при первом запуске апплета, а также может лучше отделять и сотрудничать, когда несколько команд совместно разрабатывают.
CML1.0 поддерживает загрузку подпакетов небольших программ.Вы можете точно находить ресурсы, выводить основные пакеты и подпакеты во время компиляции с очень простой настройкой. Конкретная ссылка:долгое молчание говорит .org/doc/example…
Мини-оптимизация производительности программы
Производительность рендеринга апплета также является одним из наших важных направлений оптимизации.
CML реализует систему ответа на данные, перенимая интерфейс setData апплета для обновления данных, позволяя разработчикам использовать функции ответа на данные, подобные Vue, такие как просмотр и вычисление, и предоставляет более удобный способ обновления данных: прямое назначение вместо Обновите представление через собственный интерфейс setData.
На самом деле setData является наиболее часто используемым интерфейсом при разработке апплетов, а также тем интерфейсом, который чаще всего вызывает проблемы с производительностью.
Апплет использует WebView в качестве носителя рендеринга уровня представления и JavascriptCore в качестве независимой рабочей среды логического уровня. Производительность можно оптимизировать, уменьшив объем данных, передаваемых между ними с помощью Data Diff.
В среде выполнения CML данные отслеживаются и зависимости собираются для каждого экземпляра компонента.После изменения данных выполняется сравнение данных с последними кэшированными данными для расчета минимальных данных обновления, а затем вызывается интерфейс setData для передачи минимально необходимое количество данных.
Таким образом, вы можете свободно назначать значения данным компонента, не заботясь об оптимизации вызовов интерфейса собственной платформы.Фреймворк улучшит опыт разработки и максимизирует производительность приложения.
Rich: идеальная экологическая конструкция
Экосистема CML постоянно совершенствуется и постоянно обновляется независимо от библиотек компонентов, библиотек интерфейсов, подключаемых модулей редактора, инструментов отладки DebugKit и Xeditor.
Особо стоит отметить компонентную экосистему.В последние полгода разработчики жаловались на проблему, что компоненты CML недостаточно богаты.Теперь chameleon-ui-builtin,cml-ui,light-ui,chameleon разрабатывается и поддерживается официальным Команда CML Библиотека компонентов -ui-miniapp содержит более 60 компонентов и продолжает добавлять новые итерации. Кроме того, библиотека компонентов c-design, совместно созданная командой Pratt & Whitney Travel, также включает более 20 компонентов.
библиотека компонентов c-design
C-Design — это набор многотерминальных библиотек компонентов пользовательского интерфейса, разработанных на основе платформы Chameleon, который включает в себя 12 компонентов, таких как многоколоночный селектор, селектор индекса, подсказка сообщения и т. д.
характеристика
- Компоненты пользовательского интерфейса, разработанные на основе экологии CML для повышения эффективности исследований и разработок пользователей.
- Нет необходимости мигрировать, «из коробки»: компонент создает версии пакетов N+1, которые можно использовать в различных небольших программах, быстрых приложениях, H5, weex и т. д.
- Простой в использовании и гибкий в настройке
Прогресс и план
В настоящее время завершена разработка 12 компонентов, а завершенные компоненты планируется оптимизировать и отшлифовать в августе.
Последующая работа: Адаптация компонентов с дополнительными требованиями и пользовательскими темами.
Ниже приведена простая демонстрация некоторых компонентов библиотеки компонентов:
библиотека компонентов light-ui
Цель Light-ui — стать готовой, разнообразной конфигурацией и высокосогласованной библиотекой компонентов для разных целей. В настоящее время light-ui предоставляет более десяти кросс-энд компонентов, которые могут помочь разработчикам быстро завершить разработку кросс-энд требований.
характеристика
- Общая библиотека базовых компонентов
- Гибкая конфигурация, унифицированный мультитерминальный эффект
прогресс и план
Разработка в общей сложности шестнадцати компонентов на первом этапе завершена.
Последующая работа: планируется завершить разработку второго этапа компонента до середины сентября, и в то же время продолжить сотрудничество с дизайнерами, чтобы отшлифовать детали, улучшить интерактивный опыт и повысить удобство использования компонентов.
Ниже приведена простая демонстрация некоторых компонентов библиотеки компонентов:
библиотека компонентов chameleon-ui-miniapp
chameleon-ui-miniapp предоставляет бесплатные и богатые специальные компоненты для апплета и библиотеки API. Пользователи могут напрямую использовать унифицированную версию библиотеки компонентов входа в систему различных апплетов и в то же время расширять реализацию на основе возможностей перегрузки полиморфных компонентов, чтобы они могли не только использовать унифицированный вход в различные апплеты, но и настраивать возможности входа в веб-терминал.
характеристика
- Библиотека компонентов пользовательского интерфейса, разработанная на основе функций апплета
- Набор компонентов может работать на WeChat, Alipay, Baidu, апплете QQ.
- Легко распространяется на другие апплеты
прогресс и план
Предварительно завершена разработка установленных компонентов.
Последующая работа: завершите обновление документа компонента, выполните дальнейшую оптимизацию и тестирование компонента.
Ниже приведена простая демонстрация некоторых компонентов библиотеки компонентов:
Экологическое планирование
Группа пользователей сообщества CML разделена на следующие уровни разработчиков:
- Разработка первого уровня: разработчики, которые обычно используют определенную библиотеку компонентов.
- Вторичная разработка: разработчики определенного терминала на основе среды выполнения CML продолжают накапливать библиотеку компонентов определенного терминала и развивать первичную разработку.
- Трехуровневая разработка: пользователи, основанные на разработке CML, продолжают накапливать многотерминальные библиотеки компонентов и развивать разработку первого и второго уровня.
- Участники CML: создайте CML Framework и продолжайте улучшать кросс-конечный опыт
Открытые возможности экспорта компонентов для «разработки первого уровня», независимое открытие каждой записи конечной платформы для «разработки второго уровня» и открытие стандартной записи нового конечного расширения для «участников» CML. На основе определенного механизма стимулирования совместно создавать экосистему CML и постоянно преобразовывать результаты.
Инжиниринг: всестороннее благословение возможностей
Благодаря усилиям и опыту команды в инженерном проектировании, CML имеет передовые инженерные концепции, а общие процессы разработки, упаковки и сборки очень эффективны. CML решает различные болевые точки в локальной разработке, включая возможность предоставления услуг разработки, фиктивных данных, горячих обновлений, автоматического обновления, окон отладки, онлайн-агентов ресурсов и т. д., что значительно повышает эффективность локальной разработки. Вы можете свободно вводить различные зависимости npm, разрабатывать компонентное, модульное повторное использование, использовать функции ES6 и предварительную обработку стилей CSS и т. д.
В то же время CML придает большое значение стабильности фреймворка и предоставляет стабильные и надежные кросс-энд решения с точки зрения качества кода, надежности тестов, проверки синтаксиса и производственной среды.
Современное управление "линком"
CML централизованно управляет всеми «ссылками», используемыми в проекте для внешней связи с инженерной точки зрения, включая ссылки для запроса данных (apiPrefix), ссылки для запроса статических файлов (publicPath), ссылки для маршрутизации страниц (router) и межконечные унифицированные ссылки ( URL-адрес Chameleon) может не только управлять «ссылочными» данными унифицированным способом, но также может эффективно использовать моделирование данных (макет), прокси-сервер онлайн-данных (прокси), повторное использование и обновление CDN, унифицированную доставку страниц и другие функции.
Стратегия оптимизации на нативной стороне
Оптимизируйте производительность родной стороны из разных размеров скорости нагрузки и скорости выполнения. Во-первых, предварительно загрузите ресурсы пучка, чтобы улучшить первую скорость загрузки, используйте кэш для улучшения второй скорости загрузки и принять дополнительную стратегию обновления ресурсов.
- Предварительная загрузка — это загрузка JSBundle заранее, а также чтение и рендеринг непосредственно из локального файла, когда это необходимо. При фактическом использовании проекта список URL-адресов, которые необходимо предварительно загрузить, можно получить с сервера заранее при запуске приложения и загрузить заранее с помощью возможности предварительной загрузки, предоставляемой Chameleon SDK.
- После загрузки JSBundle Chameleon SDK кэширует JSBundle, и при следующем рендеринге, если JSBundle не будет обновлен, он не будет загружать новый, что экономит время и трафик и повышает скорость рендеринга.
Конкретная ссылка:Молчание давно сказать .org/doc/tea...
С другой стороны, планируется, что CML будет поддерживать Flutter внизу, так что следите за обновлениями.
Протокол МВВМ+:
view: 1. Реализовать cmss для флаттера, 2. Реализовать флаттерную версию протокола компонента MVVM+ chameleon-ui-builtin-flutter
viewModel: среда выполнения (runtime) реализует синтаксис протокола CML DSL chameleon-runtime
Модель: 1. Напишите структуру логического уровня CML непосредственно с помощью dart (пользователям необходимо написать бизнес-код с помощью dart), а dart можно преобразовать в JS. 2. Реализовать флаттерную версию протокола интерфейса MVVM+ chameleon-api.
Плагин редактора
Чтобы уменьшить критику «разработать один раз и отладить несколько концов» и заблаговременно подвергнуть проблему «редактированию», CML выпустил множествоПлагин редактора, включая Visual Studio Code, Atom, Webstorm и другие. Найдите «cml» в магазине приложений расширения VScode, чтобы установить его.
В настоящее время плагин поддерживает следующие возможности:
- ассоциация файлов
- подсветка синтаксиса
- Встроенные, расширенные, настраиваемые компоненты, завершение свойств и подсказки по умолчанию для типов.
- завершение команды
- css, меньше поддержки
- проверка линтера и подсказка
- завершение API
- Формат файла
Поддержка дополнительных функций находится в разработке, последующая работа также будет поддерживать плагин Sublime text, так что следите за обновлениями.
Мощная проверка грамматики
CML реализует комплексные возможности проверки синтаксиса и постоянно совершенствуется.
Кросс-энд прекрасен, самый большой риск — это проблемы с ремонтопригодностью. Полиморфный протокол является точкой разграничения между кодом бизнес-уровня CML и нижележащими компонентами и интерфейсами на каждом конце.CML будет строго «контролировать» тип и структуру входных и выходных значений и будет строго проверять код JS бизнес-уровня, чтобы избежать прямое использование определенного интерфейса. , не допускается использование определенного end-specific метода в публичном коде, даже если этот код не будет выполняться, например, использование window, wx, my, swan, weex и других методы запрещены.
разделен на
- Проверьте спецификацию каталога
- Проверка легитимности
- Логическая проверка спецификации
CML for DoKit
Специальный инструмент CML DoKit — это команда CML и отличный комплексный инструмент исследований и разработок.DoraemonKitСовместно созданная версия Dokit, настроенная для CML, предоставляет множество функций отладки SDK, в том числе:
- Просмотр журнала консоли: удобно просматривать журнал консоли в каждом файле CML на терминале, предоставляя функции классификации и поиска.
- Представление кэша хранилища: Визуальное отображение данных локального кэша модуля хранения в CML.
- Информация о контейнере: просмотр основной информации и данных о производительности для каждой открытой страницы CML.
- DevTool: быстро откройте запись кода сканирования CML DevTool.
Как показано ниже:
Дружественный: прогрессивный доступ
Чтобы снизить затраты на миграцию среды CML для исходного проекта, CML1.0 предоставляет следующие два элегантных и лаконичных решения с прогрессивным доступом.
Импорт и экспорт компонентов CML
CML1.0 может экспортировать компоненты CML в конечные компоненты, что позволяет использовать CML более свободно.
То есть вы можете использовать компоненты, разработанные CML, в исходном проекте с любой стороны:долгое молчание говорит .org/doc/fetus-mina…
Взяв в качестве примера сеть и апплет, в обычном режиме разработки вам необходимо поддерживать 4 набора кодов (веб, wx, alipay, baidu). Получите доступ к среде CML с помощью прогрессивного решения, разработайте общие компоненты CML, а затем экспортируйте каждый конец для использования в исходном проекте, нужно только поддерживать набор кода компонента, полностью использовать кросс-конечные преимущества CML и значительно сократить стоимость разработки и сопровождения кода.
В то же время CML1.0 использует спецификацию полиморфного протокола для импорта сторонних библиотек компонентов на каждом конце, и вы можете свободно настраивать его.
Интеграция оригинального проекта CML cross-end решение
CML выпустил плагин для веб-пакетов — easy-chameleon, который может напрямую интегрировать CML в исходный проект.
Метод доступа очень прост, вам нужно только установить easy-chameleon, следовать инструкциям по простой настройке, после чего вы сможете использовать мощный синтаксис и возможности компиляции CML, а также использовать и разрабатывать компоненты CML. Ссылка на конкретные документы доступа:долгое молчание говорит .org/doc/example…
Схема: планирование будущего
Расширение конечной продукции
На основе CML SDK вы можете:
- Расширение дополнительных низкоуровневых интерфейсов
- Расширение дополнительных стандартных терминалов MVVM (Flutter, React Native)
Редактор X-Editor
Цель XEditor — стать платформой, которая может быстро создавать и публиковать кросс-мультитерминальные страницы (апплет WeChat, апплет Alipay, апплет Baidu, апплет ByteDance, веб, быстрое приложение, native-weex). В настоящее время XEditor опубликовал десятки тысяч страниц. Интегрируя кросс-терминальные возможности CML, инвестиции в разработку простых требований могут быть уменьшены, а рабочая нагрузка на разработку многотерминального интерфейса может быть уменьшена на 60%.
Полное видео выше
Примечание. Если клиент не открывается, скопируйте адрес в браузер, чтобы посмотретьОбычный файл со звездочкой. брат static.com/static/star…
Платформа облачной разработки CML && без сервера
Создайте унифицированную платформу облачных сервисов, от кросс-энда до промежуточного. Для малых и средних предприятий откройте платформу облачной разработки CML и предоставьте многотерминальные унифицированные интерфейсы облачных услуг, такие как совместное использование, оплата и отправка сообщений.
CML1.0 Мероприятия
Участвуйте в мероприятиях CML1.0 и выигрывайте футболки ограниченного выпуска CML и сертификат Didi Open Source Contribution
Вы можете принять участие в событии следующими двумя способами, событие завершится 8 сентября:
- существуетСообщение о проблеме на GithubПубликуйте существенные предложения или идеи
- КCML pullsОтправить запрос на включение
Правила выигрыша:
- Подсчитайте общий балл = Опубликованные положительные предложения
点赞star数*0.3 + 回复数*0.7
, 30 лучших по общему количеству баллов получат лимитированную футболку CML (если последние n рангов совпадают, ценность контента будут оценивать судьи организатора) - Предоставление футболки CML Limited в усыновителях и три цифры были выбраны в PR-участнике, и будет шанс получить трофей капельного вклада с открытым исходным кодом от Комиссии по открытому исходному коду Drip!
Для получения подробной информации нажмите:GitHub.com/Brother/Что за чай...
Окончательное право интерпретации мероприятия принадлежит команде CML.
большое спасибоКоманда Didi с открытым исходным кодомПризы, предусмотренные для этого мероприятия, а также мощная поддержка открытого исходного кода~
Особая благодарность за вклад в открытый исходный код
Команда CML была приглашена для участия в обмене технологиями крупных компаний (58.com, Kuaishou, Shenzhen Tencent, Kuaishou, Baidu, стандартная конференция w3c, саммит по открытым исходным кодам Oscar) и получила эффективные предложения от многих выдающихся инженеров, в том числе от Mango. TV, Aliying Industry и официальные инженеры Kuaishou совместно создают экосистему CML. Mango TV, Alibaba Pictures и туристические партнеры компании Pratt & Whitney независимо расширили апплет Toutiao, а официальная команда разработчиков KuaiApp самостоятельно расширила KuaiApp для CML. В то же время превосходная технологическая команда Pratt & Whitney, специализирующаяся на пан-интерфейсе, инкубирует библиотеку компонентов c-design (70% прогресса на первом этапе), а также CML DoKit, Didi Cloud для XEditor и т. д. Спасибо им здесь~
Примечание. Рейтинги расположены в произвольном порядке.
команда | Примечание |
---|---|
команда РИДЕА | Внести свой вклад в дизайн официального сайта CML |
Передняя часть технологии Pratt & Whitney | Внесите свой вклад в CML для Dokit, CML для Nativejs, библиотеку компонентов c-design, расширение ts и участвуйте в расширении заголовков и быстрых приложений. |
Официальная команда быстрого приложения | Внесите свой вклад в CML для быстрых приложений |
Манго ТВ | Примите участие в разработке CML для API апплета Toutiao. |
Али Фотографии | Примите участие в разработке CML для среды выполнения апплета Toutiao, пользовательского интерфейса. |
На этот раз официальный веб-сайт CML был обновлен до версии 1.0, что принесло разработчикам больше интересных новых функций, так что следите за обновлениями:cmljs.org/.