От Пинся

Введение

Недавно я узнал новый термин: Цифровой двойник. Проще говоря, эта технология создает цифровой образ реальных вещей, таких как космические корабли, города, реальные системы, электричество и транспорт, в виртуальном мире. Это позволяет цифровому миру лучше взаимодействовать с физическим миром. Цифровые информационные панели являются приложением этой технологии. Концепция цифрового двойника была предложена компанией Dr. Майкл Гривз в 2002 году. С быстрым развитием Интернета вещей, искусственного интеллекта, графических технологий и Индустрии 4.0 эта технология будет применяться во все большем количестве приложений. Если вы выполните поиск этого термина в Google, вы обнаружите, что Национальное управление по аэронавтике и исследованию космического пространства (НАСА), General Electric Co. (GE), Microsoft, System Applications and Products (SAP), IBM и другие гиганты уже используют эта технология. Он также включен в список 10 лучших стратегических технологических тенденций Gartner на 2019 год.

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

  • Технологии погружения. Эти технологии включают дополненную реальность (AR), виртуальную реальность (VR) и смешанную реальность (MR).
  • Умные пространства. К этим технологиям относятся умные города, умные автомобили и умные магазины.

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

Оглядываясь назад

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

Двигатели — есть четыре основных механизма:

  • V8: повысила эффективность выполнения JavaScript, способствовала внедрению спецификаций ES и способствовала появлению Node.js.
  • Браузерные движки: представлены Webkit, Blink и Chromium. Быстрое развитие браузеров заложило основу для процветания веб-экосистемы.
  • Node.js: этот движок значительно расширил возможности внешнего интерфейса, гарантируя, что любое приложение, которое может быть написано на JavaScript, в конечном итоге будет написано на JavaScript.
  • Гибридные контейнеры. Они предоставляют пространство для веб-разработки в эпоху мобильного Интернета, в которой преобладают приложения, такие как мини-программы.
  • Комплект разработчика. Общение с разработчиками привело к активной разработке синтаксиса, фреймворков, инструментов и библиотек классов. Есть много отличных проектов с открытым исходным кодом, и фронтенд-экосистема стала самой активной в технологической сфере. Хотя стоимость использования основных технологических стеков, построенных на основе React, по-прежнему высока, а разработчики не могут сосредоточиться только на бизнес-логике, нельзя отрицать, что разработка приложений становится проще. Некоторые типы приложений могут быть разработаны на специальных платформах визуального построения без необходимости кодирования, например, веб-порталы, маркетинговые мероприятия и анкеты.
  • Разделение труда: инновации в разделении труда, такие как разделение внешнего и внутреннего интерфейса, Бэкенд для фронтенда (BFF), полный стек, сквозной и большой интерфейс, не только повысить эффективность совместной работы между разработчиками внешнего интерфейса и другими разработчиками, а также позволить разработчикам внешнего интерфейса разрабатывать приложения. Отдел экспериментальных технологий, который сочетает в себе функции внешнего интерфейса и дизайна, стал стандартом для многих предприятий. Некоторые фронтенд-команды даже стали командами разработки приложений с проприетарными продуктами. Влияние внешнего интерфейса расширилось от разработки приложений до взаимодействия с пользователем и дизайна продукта. Экспериментальные технологии, основанные на взаимодействии человека и машины, также вступают в свои права.

Эти изменения преследуют две основные цели:

  • Повысить эффективность НИОКР. Эта работа, в основном основанная на наборах средств разработки, также предполагает инновационное разделение труда (например, разделение клиентской и серверной частей).
  • Открытие новых полей сражений. Эти усилия, в основном управляемые двигателями, также включают новое разделение труда (например, полный стек).

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

  • Первичный носитель пользовательского контента (UGC) изменился с текста и изображений на короткие видеоролики и прямые трансляции. Кроме того, пользователям теперь проще создавать контент.
  • Основной формат взаимодействия с терминалом также изменился. ПК с клавиатурой и мышью уступили место мобильным телефонам и планшетам с сенсорными экранами, камерами и микрофонами, что сделало взаимодействие более простым и естественным.

Основные методы сбора информации также изменились: от активного сбора и пассивного продвижения к интеллектуальным рекомендациям и от асинхронного к сбору в режиме реального времени. Это делает информацию доступной в любое время и в любом месте.

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

Новые технологии

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

  • ИИ. Эта технология основана на облачной инфраструктуре. Приложения ИИ, как правило, сильно загружены движком и просты в пользовательском интерфейсе. Таким образом, ИИ напрямую не связан с интерфейсом и может использоваться только в разработке приложений. Большинство приложений ИИ на рынке представляют собой простые расширения технологии больших данных. Искусственный интеллект — самая передовая из изобретенных человечеством технологий. Его следует использовать для решения самых сложных проблем, с которыми мы сталкиваемся, таких как проблемы с языком, здравоохранением, научными исследованиями, образованием и защитой окружающей среды. Я оптимистично отношусь к машинному переводу, потому что разрушение языковых границ ознаменует собой эпохальные изменения в человеческой цивилизации. Как разработчики интерфейса, мы также должны обратить внимание на эти основные области и научиться использовать технологии искусственного интеллекта.
  • Бессерверные технологии и FaaS. Эти технологии также основаны на облаке. Разработчики внешнего интерфейса могут использовать эти технологии для оптимизации времени выполнения и методов обслуживания Node.js на стороне сервера, чтобы оградить себя от сложных технических деталей. Таким образом, мы можем продолжать внедрять Node.js на стороне сервера, а также просто и экономично хранить и получать данные, необходимые терминалам. Serverless и FaaS также можно использовать для оптимизации существующих цепочек инструментов и упрощения разработки.
  • Блокчейн.Блокчейн также строится вокруг облака. Наиболее актуальными для фронтенда технологиями являются Децентрализованное приложение (DApp) и Межпланетная файловая система (IPFS). DApp — это новый формат приложений, а IPFS меняет сетевые протоколы. Эти две технологии находятся на ранних стадиях, поэтому мы не знаем, куда они нас приведут. Мы рекомендуем дождаться подходящего момента, чтобы использовать эти технологии для разработки приложений.
  • IoT. Эта технология основана на терминалах, и ее основные возможности связаны с аппаратным обеспечением и встроенной системой. Таким образом, IoT не имеет ничего общего с внешним интерфейсом и эффективен только в ограниченных пределах. Помимо разработки приложений, основанных на IoT, мы можем пойти двумя другими путями: :one: трансплантировать Node.js и ядра браузера на IoT-устройства, чтобы создать среду выполнения, которая может запускать интерфейсный код :two: создавать специальные механизмы рендеринга на основе графическая технология, поэтому некоторые устройства могут отображать данные.
  • AR, VR и MR: эти технологии основаны на изменении оборудования и методов взаимодействия. Frontend-разработчики могут участвовать в разработке библиотек классов и приложений. Однако, поскольку они могут работать только на определенных устройствах, AR, VR и MR не являются основными приложениями. Чтобы продвигать их приложения, мы должны использовать их в соответствующих бизнес-сценариях.
  • Интеллектуальное оборудование. Это крутая технология. Наиболее успешно эта технология применяется в интеллектуальных колонках, но роботы — это совершенная форма интеллектуального оборудования. Эта технология основана на искусственном интеллекте, автоматическом управлении и оборудовании. Он управляет обновлениями формата приложения и метода взаимодействия во внешнем интерфейсе.
  • Визуальная разработка приложений. Все разработчики интерфейса хотят разрабатывать приложения без написания кода или с меньшим количеством кода. Это сложно сделать, но можно сделать в определенных сценариях. MFC, Dreamweaver, Flash и Microsoft являются пионерами в этой области, в то время как Wix, Webflow, Bubble, Node-RED, FrameX и PowerApps пока имеют самые интересные результаты. По сути, эти продукты направлены на повышение производительности приложений за счет предоставления более совершенных наборов средств разработки. Самый большой конкурирующий тип продукта — это готовые продукты SaaS. В конце концов, готовые возможности проще, чем разработка. Вот почему большинство людей скорее купят готовый компьютер, чем соберут его самостоятельно.

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

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

Взгляд в будущее

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

Хотя фронтенд-технологии быстро меняются, мы можем найти две константы с точки зрения программирования. При постоянно меняющихся форматах терминалов и методах взаимодействия эти две вещи остаются практически неизменными:

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

При постоянно меняющихся типах приложений и методах взаимодействия исследования и разработки приложений можно разделить на четыре части:

  • Облако. Облако предоставляет данные, необходимые для работы приложения, ресурсы управления и исполняемый код.
  • Терминал. Терминал предоставляет конечным пользователям пользовательский интерфейс на основе среды выполнения приложения.
  • Специальные технологии. Бизнес — это основа технологий. Без бизнеса, который нужно обслуживать, интерфейс был бы без корней. Более того, у каждого бизнеса есть свои особенности и технологии.
  • Движок разработки приложений: это комплект разработчика, который может повысить производительность работы, выполняемой обычными инженерами.

На следующем рисунке показаны интерфейсные технологии, организованные на основе приведенного выше анализа и характеристик Yuque.

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

Механизм разработки приложений

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

Область движка разработки приложений претерпела множество инноваций. Мы можем проследить его эволюцию по истории его развития. Две концепции были основополагающими в эволюции двигателей:

  • Меньше кода. Используя мощные SDK, платформы и инструменты, инженеры могут повысить эффективность написания кода и сосредоточиться на реализации бизнеса.
  • Без кодирования. Используя визуальные интегрированные среды разработки (IDE), инженеры могут разрабатывать приложения, используя интерфейс перетаскивания и записывая файлы конфигурации вместо написания кода.

Разработчики надеются на три вещи от движка:

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

Это путь будущей эволюции. Меньше кодирования и отсутствие кодирования подходят для разных сценариев, и нам нужно выбирать между ними на основе бизнес-характеристик. Тем не менее, я думаю, что кодирование все равно будет необходимо для разработки высококачественных приложений, даже если объем кодирования уменьшится. На кодирование не стоит надеяться, и оно подходит только для определенных сценариев. Кроме того, SaaS — лучший вариант. Я предпочитаю реализовывать основной бизнес, используя меньше кодирования, и реализовывать механическую, повторяющуюся и одноразовую разработку, не используя кодирование. Ни в одном кодировании нет ветки под названием визуальное программирование. Это перспективный подход к обучению программированию, который представлен Scratch и Blockly. Обучение программированию не только открывает огромные возможности для бизнеса, но также может создавать устойчивые потоки новых талантов.

Специальные технологии для бизнеса

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

  • Что мы можем сделать сегодня: В чем суть бизнеса и какие проблемы могут решить терминальные технологии?
  • Что нам нужно в будущем. Каково будущее бизнеса и какие технологии и продукты связаны с ним?

Юке стремится открыть двусторонний канал между знаниями и человеческим мозгом на основе двух ключевых технологий:

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

Цифровая визуализация и цифровой двойник еще не очень актуальны для Yuque в настоящее время, но будут в будущем:

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

Время выполнения приложения

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

Можно смело прогнозировать, что в этой области неизбежно произойдет революция, которая может быть вызвана эволюцией браузеров или появлением новых движков. Уже есть некоторые признаки:

  • Office охватывает все терминалы с удивительной скоростью и согласованностью пользовательского интерфейса. За этим должно стоять кросс-терминальное решение пользовательского интерфейса.
  • Суперприложения сломили господство браузеров, а мини-программы стали новой средой выполнения.
  • Flutter можно использовать для изучения новых методов кросс-терминальной разработки пользовательского интерфейса.
  • Fuchsia — это крупная разработка Google, которая будет способствовать изменениям на уровне операционной системы.

Что еще более важно, внедренные инженеры могут участвовать в этих изменениях, поскольку многие команды имеют большой опыт работы с графическими технологиями — основной технологией, основанной на визуализации данных и играх HTML5. Разнообразие типов приложений создаст возможности для сред выполнения приложений на определенных вертикальных рынках. Уже есть несколько успешных кейсов, таких как Cocos engine и Egret engine в игровой сфере и Electron в сфере разработки настольного программного обеспечения. В будущем таких случаев будет больше.

Доменные службы

Внешние разработчики могут быть незнакомы с доменными службами. Однако в их основе лежит известная технология доменно-ориентированного проектирования (DDD), которая представляет собой высокоуровневую абстракцию приложения в облаке и стабильной часть системы. Вот почему интерфейсы на стороне сервера могут оставаться неизменными, несмотря на частые изменения во внешнем интерфейсе. Исследования и разработки на стороне сервера развивались по следующему пути: решение проблем в языках программирования :arrow_right: решение проблем в средах разработки и библиотеках классов :arrow_right: решение бизнес-задач. Типичным примером является Java :arrow_right: Spring :arrow_right: DDD и архитектура программного обеспечения. Серверная часть может остаться неизменной, поскольку она фокусируется на абстракции модели предметной области и проектировании системной архитектуры.

В настоящее время доменные службы также важны для внешнего интерфейса по следующим причинам:

  • Модели доменов и сервисы доменов — это абстракции бизнеса и интуитивно понятное представление, используемое для понимания бизнеса. Хорошие модели предметной области могут значительно снизить стоимость разработки внешнего интерфейса.
  • Разработчики внешнего интерфейса могут использовать мышление и концепции, лежащие в основе дизайна предметной области, для решения проблем внешнего интерфейса.
  • Команда фронтенда находится на перекрестке исследований и разработок и обладает широчайшим объемом информации. Таким образом, у нас есть возможность координировать разработчиков продуктов, дизайна и серверной части, когда мы размещаем модели предметной области и деловые связи.

Чтобы начать работу с DDD, вы можете использовать следующие три типовые архитектуры, которые легко понять и изучить:

Полнофункциональная команда

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

Движение вперед

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

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

  • DDD: расширяйте свои возможности в моделировании предметной области и проектировании систем и стремитесь стать экспертом в предметной области, разбирающимся в бизнесе.
  • Проектирование архитектуры программного обеспечения и философия проектирования программного обеспечения. Это то, что придает душе системам, платформам и библиотекам классов и оживляет код.
  • Графическая технология. Эта технология используется в самых разных сценариях на уровне приложений и движка. Мы ожидаем, что в будущем графические приложения будут играть все более заметную роль.
  • ИИ: вам не нужно понимать базовый уровень, но вы должны знать, как использовать ИИ. Мы рекомендуем вам начать с TensorFlow.

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

Использованная литература:

Мнения, выраженные здесь, приведены только для справки и не обязательно отражают официальную точку зрения Alibaba Cloud.

Оригинальный источник: