Передовая технологическая система постпродажного обслуживания Didi

внешний интерфейс внешний фреймворк

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

задний план

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

技术体系建设背景

в общем

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

技术体系建设原则

панорамный

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

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

Второй этап посвящен бизнесу.возможность оптимизации.应用上,低配设备场景下,引入ReactNative提升производительность рендеринга, добавив поддержку автономного кеша для контейнеров, дляБольше дисплея, меньше взаимодействиясценарий, мы начинаем делатьрендеринг на стороне сервера. В коде мы единообразно используемJSXсделатьШаблон страницы, заброшенные pugjs, и на основе унифицированного JSX стали предоставлятьПредварительный рендеринг компиляции, предварительный рендеринг на стороне серверадр. технологии. С точки зрения инженерии были добавлены шаблоны проектов ReactNative и SSR, а Apollo был представлен для управления коммутатором аварийного восстановления.

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

技术体系建设全景

заявление

Сосредоточьтесь на разделении интерфейсной части и клиентской части, оптимизации контейнеров на стороне сервера и клиентской стороне, оптимизации производительности страниц и приеме всех внешних служб.

应用

код

код клиента

На стороне клиента принимается идея программирования на основе данных и компонентов, основанная на базовой библиотеке, библиотеке компонентов, логике компонентов, бизнес-логике и управлении страницами с использованием маршрутизации.

客户端代码

код сервера

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

服务端代码

проект

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

工程

Библиотека компонентов

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

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

组件库

Доступ к ReactNative

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

ReactNative接入

здание стабильности

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

稳定性建设

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