干货 | 携程从零构建多端一致的设计研发体系实践

一文掌握python图形界面开发PyQt6--(一)基本操作、控件、信号与槽、常用控件、布局管理、事件处理、文件对话框 阅读详情

作者简介

Sheila,携程资深研发经理,关注前端性能优化、前端智能化。

Wistoon,携程资深软件工程师,关注前端框架创新、跨平台开发。

秋细雨,携程资深软件工程师,关注跨平台开发、前端基础建设架构设计及工程化体系搭建。

雪刃,携程高级研发经理,关注前端工程标准化和协作流程规范。

野原,携程高级视觉设计师,关注界面设计,优化用户体验与视觉细节。

本文深入探讨了如何在多品牌、多终端的环境中,建立一个支持多个平台和品牌的企业级设计系统。该系统不仅提供高效、可靠、统一的设计管理方案,还实现了设计的复用和资源共享,大幅提升设计效率和质量,同时降低设计成本。

  • 一、背景

  • 二、问题分析

  • 2.1 品牌一致性问题

  • 2.2 跨平台兼容性问题

  • 2.3 组件复用性问题

  • 三、解决方案

  • 3.1 模块化设计与主题配置

  • 3.2 跨平台开发解决方案

  • 3.3 自动化设计与开发流程

  • 四、技术实现

  • 4.1 视觉和研发组件库

  • 4.2 开发SDK的对接

  • 4.3 设计工具的集成

  • 五、实践与应用

  • 六、结语

一、背景

随着移动互联网的快速发展和智能设备的普及,企业的用户需求也在不断变化和扩大。在多品牌(跨主题)及多框架(跨端)的背景下,企业需要一种全面的设计系统来应对不同品牌、不同设备的用户需求,实现品牌形象的一致性和用户体验的统一。

多品牌多框架的企业级设计系统,是一种可以支持多个终端(PC、移动端等)和多个品牌(子品牌、合作品牌等)的设计系统。它可以为企业提供一种高效、可靠、统一的设计管理方案,实现设计的复用和资源的共享。这不仅可以提高设计的效率和质量,还可以节约企业的设计成本。 

591f824a2a10356855bfa94cb83e6b85.png

在需求多样化的背景下,传统的单一品牌、单一终端的设计系统已经无法满足企业的需求,跨端多品牌企业级设计系统的出现成为了必然趋势。

二、问题分析

携程作为行业领先的在线旅游服务平台,拥有多个子品牌和合作品牌,且需要在 PC 和移动端提供一致的用户体验。面对多品牌、多终端的复杂设计需求,设计效率低下、资源浪费和品牌不一致性成为亟待解决的问题。

2.1 品牌一致性问题

携程尽管各业务线共享相同的核心设计理念,但由于不同设计团队和研发团队在实际应用中的执行差异,导致视觉样式和元素的不一致。相同的设计语言在不同业务中呈现出不同的表现形式,这不仅影响了品牌的一致性和整体调性,还降低了品牌的识别度和信任感。

因此,确保设计语言的一致性至关重要。通过制定统一的设计标准和规范,企业可以在多品牌环境中实现视觉和功能的一致性,从而提升用户体验,增强品牌的识别度和信任感。

2.2 跨平台兼容性问题

在现代业务环境中,构建产品通常需要使用多种技术栈,以适应不同的应用场景。随着前端技术的不断发展,为了实现性能优化和多平台兼容,我们必须不断更新和迁移技术栈。这种多样性给研发人员带来了额外的工作负担,因为在不同平台上使用不同的技术栈可能导致代码的重复和冗余。

研发人员需要深入研究和掌握多种技术,以快速适应技术的更新和变化。此外,确保不同技术栈之间的兼容性和一致性是一个重要挑战。不同平台上的技术差异可能导致代码逻辑和接口的不一致,影响产品的兼容性和可维护性。

b06dd20d5b7c35a73832e3120532154b.png

为了解决这些问题,我们的目标是设计一种通用的解决方案,以便在不同技术栈中输出一致的代码结果,并能够适应未来可能出现的新技术栈。前端开发人员必须充分考虑通用的设计规范和标准化的开发流程。在编写代码时,需要遵循一致性原则,并进行全面的兼容性测试和优化。通过这些措施,我们可以在多技术栈环境中实现更高效的开发和更优质的产品体验。

2.3 组件复用性问题

在企业级应用程序的快速发展过程中,UI组件的开发数量不断增加。然而,这些组件往往难以实现复用,导致开发人员不得不重复创建类似的组件,从而降低了开发效率和质量。

3f42bb0b4459e38f77358faf4db78b17.jpeg

重复造轮子导致的重复工作和冗余代码,不仅增加了开发成本,还降低了应用程序的可维护性和可扩展性。相同功能的 UI 组件在多个技术栈中被重复开发,进一步凸显了组件复用性的问题。解决这些问题可以显著提升企业的开发效率和产品质量。

三、解决方案

为了应对多品牌、多框架环境下的复杂设计需求,携程开发了一套创新的设计系统。该系统通过模块化设计、跨平台组件库和自动化流程,提供了高效且灵活的解决方案。

3.1 模块化设计与主题配置

携程的设计系统采用模块化设计原则,将设计元素拆分为独立模块,实现品牌间的复用和独特性。通过灵活的主题配置,设计师可以快速调整品牌视觉风格,确保品牌形象一致。

设计语言(design tokens)作为视觉元素的基础单位,涵盖颜色、字体、间距等,确保不同品牌在视觉风格上的统一。设计语言被灵活应用于各品牌的视觉系统中,既保持整体一致性,又允许个性化表达。

dcabd0c578369339ff28f436a6860b0e.png

这种方法提升了设计效率,增强了用户对品牌的识别和信任。通过标准化设计语言,携程实现了多品牌间的视觉统一,为用户提供一致且流畅的体验,同时保留品牌独特性。

围绕集团层面的设计规范,携程建立了一致、灵活的设计系统,增强 UI 界面一致性,减少设计到开发的信息差,提升设计研发效率。

设计语言分为基础变量、功能变量和组件变量。基础变量定义样式选项,功能变量用于通用场景语义,组件变量用于特定组件。通过设计语言的分类和应用,携程实现了复杂场景下的视觉一致性和灵活性。

34c9fde360dff8fdc8b40efa8f3d8ca1.png

此外,我们需要去根据多个品牌对齐一些组件状态内部的属性,在组件状态中取了并集。

例如 Button 按钮中,Ctrip 具有常规、次级、辅助三种类型按钮,Trip 具有线性和填充两种类型按钮,合并后为五种状态:常规、行动点、支付、次级、辅助。对应关系更加清晰,且易于设计语言迭代或者微调。

792d8cc3965457d248f180d53709c783.png

3.2 跨平台开发解决方案

为了在 H5、PC、小程序和 APP 之间保持一致的用户体验,携程设计并开发了跨平台的组件库解决方案,以满足不同开发团队的需求。组件库采用响应式设计和自适应布局技术,确保在不同设备上提供一致的视觉和交互体验。

3.2.1 xTaro 跨端解决方案

xTaro 是携程参考开源框架 Taro 的跨端理念研发的一套具有携程特色的、完整的跨端解决方案,旨在实现多框架兼容的灵活集成。其核心目标是确保在不同设备和技术栈中提供一致的用户体验。作为一套完整的跨端解决方案,xTaro 提供了:多端构建工具、多端统一的API和组件库、统一开发标准和规范、跨端工具链、自动化构建及部署等功能。

0c97b4b9fa7a639408fa1a8e2f74975b.png

使用 xTaro 跨端解决方案开发前端项目,可以实现书写一套代码,通过编译运行在多个平台上,从而大幅提高研发效率、提升代码复用率、灵活性和扩展能力,并确保产品在不同平台上体验和功能的统一性。以下是这一解决方案的详细描述。

高复用性、可扩展的模块架构

xTaro 跨端解决方案通过创建模块化、可扩展的模块架构(如下图所示),将功能模块划分为4层结构:对外模块、多端抹平、平台扩展和底层基础。实现方案如下:

cbc2667ad8936cb804172f3289198730.png

  • 对外模块、多端抹平:提供多端契约一致、功能完善的 API 和组件库,可以减少重复性工具、便于一套代码开发多端项目。

  • 平台扩展:遵循组件库命名和开发规范进行开发,可以实现快速添加相应的扩展功能模块。

  • 底层基础:将多端 API 及组件的实现下沉到各端的底层,基于统一的契约、固定的导出方式实现了底层基础模块。

在上述实现的基础上, xTaro 构建项目或组件库时,会根据目标平台和端类型,根据现有模块层级,自上而下逐层查找使用到的功能模块,从而实现多层模块降级和各端差异性模块的引用。

一码多端开发方案

xTaro通过提供多端融合技术框架和构建工具,实现一套代码多端运行,帮助开发者专注于业务需求开发。这些基于以下内容:

  • 统一的开发模板:提供统一的项目模板、组件库模板,为一码转多端奠定坚实基础。

  • 统一的开发规范:提供全新的 DSL 、制定的代码编写规范和标准组件开发方案,可以促进多端统一组件及API库的复用,在解决平台差异性问题的前提下支持其灵活扩展。

73ab05b74d1561c7a68fbccf28a052b2.png

  • 多端构建工具:将一套代码编译为多端产物,实现一套代码运行在多端并保持原有性能。

  • 平台差异支持策略:支持开发者使用多端文件、多端代码两种方式,编写平台差异化代码。xTaro 在编译时,会根据当前目标编译平台类型,优先提取相应的平台文件和代码,实现项目中不同平台的业务逻辑差异化处理。

4ba5e7610c9eff087e854865c8ce1ac5.png

3.2.2 组件库资源抽象

在 xTaro 跨平台方案中,组件库资源的抽象是确保组件在多平台和多框架中保持一致性和可复用性的关键步骤。通过系统化的抽象过程,携程实现了高效的组件开发和维护。以下是这一过程的详细描述。

首先,为了实现组件的跨平台一致性,需要进行全面的需求分析。通过识别不同平台和框架的共性和差异,我们能够确定核心组件和功能。这一步骤确保了组件库能够满足大多数使用场景的需求。

67fb7a5e7894ee2327bc88cbea82c903.jpeg

接下来,建立通用模型是实现抽象的核心。通过创建一个通用的组件模型,我们定义了组件的基本属性和行为。这个模型通过抽象层将具体实现与框架无关的逻辑分离,形成统一的组件接口。这种设计不仅提高了组件的可复用性,还简化了未来的扩展和维护。

为了确保组件的一致性和可维护性,制定标准化流程至关重要。通过制定标准化的开发流程和规范,并使用自动化工具进行代码生成和测试,我们大大提高了开发效率。这一过程确保了组件库的高质量和稳定性。

通过上述抽象过程,我们得到了以下关键产出物:

1)视觉组件属性定义:这是一套通用的视觉标准,涵盖组件的外观、交互和状态。该定义确保了组件在不同设备和框架中保持一致的视觉效果,提升了用户体验。

2)组件库研发接口定义:提供了标准化的组件接口,确保组件在不同框架中的无缝集成。详细的接口文档帮助开发者快速理解和使用组件,提高了开发效率。

3)视觉设计规范:包括颜色、字体、间距等元素的统一标准。这一规范确保了设计的一致性,增强了用户体验和品牌识别度。

通过这些系统化的抽象和标准化的产出物,xTaro组件库不仅实现了跨平台的一致性,还为未来的技术扩展和演进提供了坚实的基础。这种方法确保了组件库的高效开发和长期维护,推动了技术架构的持续发展。

3.3 自动化设计与开发流程

在自动化设计与开发流程中,实现组件库的高效开发和维护至关重要。我们依赖一系列工具和方法来提高开发效率,并确保设计与实现的一致性。

首先,前端的D2C(Design to Code)工具在这一过程中发挥核心作用。它们能够将设计稿直接转换为代码,减少手动编码的工作量,从而快速将视觉设计转化为可用的前端组件。这种自动化转换不仅提高了效率,还显著减少了人为错误。

其次,视觉设计语言标注工具在设计阶段明确组件的视觉规范和交互行为。这些工具提供颜色、字体、间距等详细信息,确保设计师和开发者有统一的参考标准。通过自动化工具,这些标注可以直接生成设计变量,供开发团队使用,确保设计语言的一致性。此外,主题配置工具允许开发者根据不同品牌需求快速调整视觉风格,通过定义主题变量实现多品牌的视觉一致性。

最后,设计语言的多品牌设计适应不断变化的用户需求和技术趋势。自动化工具使设计语言的更新能够快速传播到整个组件库中,确保所有组件保持最新的设计标准。这种自动化更新机制减少了手动调整的工作量,提高了响应速度。通过这些工具的集成,企业能够实现组件库开发的自动化,提升开发效率和产品质量。

四、技术实现

42ebfe8ff777cda5f93ce3624ff62287.png

基于以上的解决方案,我们最终落地了一套携程的设计系统(Design System),这是一套综合性的指导原则、组件和相关规则,帮助团队以一致且高效的方式设计和开发数字产品。包含以下几个关键元素:

1)设计原则和规范:这是设计决策的基础,包括品牌指导和用户体验原则,确保每个设计都符合品牌形象和用户需求。

2)视觉组件库:提供了一套预先设计好的用户界面元素,如按钮、输入框和导航栏等,这些元素可以在多个项目中重复使用,提高设计的一致性和效率。

3)研发组件:这些与 UI 组件相对应的前端代码,使得设计能够直接转化为软件开发中的实际元素,确保设计与开发的无缝衔接。

4)文档和指南:详细记录了如何使用设计系统的各个组件和原则,并具有组件的在线预览调试功能,方便使用者随时查阅和遵循。

5)工具和资源:我们还提供了支持设计和开发流程的各种工具,如设计模板、代码库和设计软件的插件,帮助团队更高效地工作。

4.1 视觉和研发组件库

携程组件库 atom-design 采用现代化前端技术栈,并基于 xTaro 跨平台方案,开发了一套高性能、可复用的 UI 组件。这些组件经过严格测试和优化,确保在各种终端上提供最佳性能和一致的用户体验。

80cf64dfe54d795672f66011466788d5.png

8c22db723a904ca3c24c0bf135532f67.png

4.2 开发SDK的对接

对于无法用组件覆盖的部分,我们也通过研发对应的"离子设计"SDK,使开发可以参照设计平台灵活的调取对应的设计规范参数,让设计系统可以覆盖到整个前端项目的每个元素。组件库和研发SDK相辅相成,构成了整个开发层面的技术实现。

4.3 设计工具的集成

为了切实有效地解决设计开发过程中的一致性问题,我们将设计平台、设计工具与开发环境紧密集成,提供了一整套的解决方案。

对于设计师而言,他们可以极为便捷地直接从组件库中调用已有的各类组件进行设计创作,无需耗费时间和精力去重复创建。这样不仅大大提高了设计效率,还能确保设计的一致性和规范性。当设计师完成设计后,仅需通过插件,即可一键将作品快速发布至设计平台。

而开发人员,则能够依据设计平台所提供的详细组件属性进行精准开发。通过这种方式,能够最大程度地确保最终呈现的效果与设计初衷高度一致,避免出现偏差。

58206c05035a78308b8540a3f197b36a.png

与此同时,我们还将设计平台和组件库与主题配置系统进行了无缝对接。通过这样的举措,建立起了统一的设计规范,明确界定了组件的样式以及交互行为。无论是色彩搭配、字体选择,还是按钮的大小、形状等,都有了清晰明确的标准。这使得整个设计开发流程更加顺畅、高效,同时也为用户带来了更加一致、优质的体验。

五、实践与应用

在实际业务场景中,应用程序需要具备灵活的界面切换能力,以满足多样化的用户需求。通过使用本方案的组件库,集成了多框架多品牌主题,实现了界面风格的灵活切换,如暗黑模式、Ctrip 和 Trip 品牌主题。

30f1409d098dcb6ac8ac6ebfb45eb9a9.png

c6686cf77825b305f14fcf5bd1bb5447.png

这种设计不仅显著提升了用户体验,还增强了应用的适应性和市场竞争力。组件库注重一致性和可扩展性,确保用户在不同主题下的操作体验无缝衔接。同时,它允许开发者轻松添加新主题,支持应用的可持续发展,进一步推动了产品在多变市场中的成功。

六、结语

综上所述,我们通过构建模块化的设计语言和组件规范,实现了多品牌和多框架环境下的高效适配,为未来可能出现的框架提供了灵活的接口。自研设计工具的引入,不仅提升了设计师的工作效率,还确保了设计与研发的一致性和灵活性。

借助一键替换设计语言和实时预览等便捷功能,设计团队能够迅速响应市场变化,满足不同品牌的需求。整体流程的高效性和灵活性,使企业在竞争激烈的市场中保持领先,实现高质量的组件库产出。展望未来,随着技术的不断进步,这一设计系统将持续优化和扩展,为企业提供更强大的支持和保障。

【推荐阅读】

f60f5349a4b4a5a5fbf4c889a48e1e83.jpeg

 “携程技术”公众号

  分享,交流,成长

Cursor 详细使用 Cursor 是一款基于 VSCode 开发的 AI 驱动代码编辑器,集成 GPT-4、Claude3.5 等先进 LLM,具备代码补全、生成、解释、调试等功能,可提升开发效率和代码质量。3. 代码编辑:在编辑区编写代码,利用快捷键提升效率,如 Ctrl+Space 触发智能代码补全、Ctrl+K 润色或修改代码、Ctrl+L 智能问答与代码编辑。3. 代码解释:选中代码,按 Ctrl+L,输入如 “解释这段代码的功能”,Cursor 会给出详细解释。 阅读详情

相关推荐

Matlab2021a破解版安装与激活实战教程(含详细步骤截图)

本文详细介绍了MATLAB R2021a的正版安装流程与核心功能优化,包括系统要求、安装步骤、性能调优及深度学习工具箱的应用。通过实战教程和代码示例,帮助用户高效搭建开发环境并掌握关键技术,特别适合工程计算与科学研究的专业人士。

vvv99的博客 458

深度测评 | 五大主流多端开发框架全面对比

2021 跨平台开发框架到底哪家强? 目前市场上有多个专业做跨平台开发的框架,那么对开发者来说究竟哪一个框架更符合自己的需求呢?笔者特地总结对比了一下不同框架的特性。 国内外笔者选择了一共 5 个主流的测评对象,分别是 RN,Flutter,Ionic,NativeScript,以及用友 APICloud 团队开发的 AVM。 目前来看比较火的应该是 Flutter,次之 RN,具体还要看企业的应用场景和领域,AVM,Ionic,NativeScript 在不少企业和个人开发者中也使用率较高。 一,安装环境

浪里行舟的博客 2万+

【小贪】万字长文介绍因果推断和增益模型

本文首先从一个实例出发阐述了因果性不等于相关性,进而引出因果推断和增益模型。然后简单介绍了因果推断的基础内容,并介绍了主要的三类增益模型:元学习、增益直接建模、表示学习,每一类模型都简要介绍了其经典模型。之后介绍了增益模型的评价指标,包括uplift bins、uplift curve和qini曲线。增益模型实际上是一大类模型框架,本质上可以用传统响应模型或其他机器学习模型嵌入增益模型的框架,但是预测结果并不是一个概率,模型评价方式也有变化。训练样本收集增益模型建模强依赖于ab实验,数据要求很高。

打瞌睡_的博客 2506

跨越屏幕:桌面PC端的多端开发框架介绍

多端开发框架是通过一种代码编写方式,实现在多个平台上运行的工具或框架。

特立独行的博客 2910

Fedora 41上安装钉钉7.6.25,我踩过的那些依赖坑和最终解决方案

本文详细记录了在Fedora 41上安装钉钉7.6.25版本的全过程,包括解决依赖问题、转换deb包为rpm格式、处理libm.so.6错误等关键步骤。通过分享这些实用技巧和最终解决方案,帮助Linux用户顺利在Fedora系统上运行钉钉客户端,提升工作效率。

weixin_30485379的博客 205

QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表

工作中之前遇到了绘制3D饼状图表的需求,通过Qt 实现3维饼状图 一文,成功迅速解决问题,现在闲下来了,之前看QtTreePropertyBrowser库的源代码,就想着学习学习Qt的PIMPL模式,于是就参照PIMPL模式实现通过QWidget控件的paintEvent函数重新绘制3D饼状图表和3D柱状图表统计数据的显示效果, 而使用QChartView绘制圆柱体图表完全是取巧了,为了紧急完成工作采用的方法,实际上使用3D柱状图表显示统计数据更加合理。

... 727

一篇文章理解 Taro1/3原理

在使用任何一种技术之前,都要了解这两个问题:是什么?为什么要用?Taro是一个开放式跨端跨框架的解决方案,支持使用 React/Vue/Nerv等框架开发微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书 小程序 / H5 / RN 等应用。这么说可能不容易理解,简单来说就是代码一次编写,多端使用。

qq_45643079的博客 2608

OCR文字识别领域经典论文总结

本篇将介绍文字识别经典论文,内容包括文字检测、文字识别、端到端识别等方法,具体将分别对论文算法简介、思路、代码等几个部分展开介绍。目前各部分只举例经典论文,算法没有全部写完,后续会将在此部分基础上更新更多论文综述及代码实战部分。.................................

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 1万+

Taro 框架实现原理

Taro 1.x & Taro 2.x 编译型架构, 语法编译转换 Taro 1/2 属于编译型架构,主要通过对类 React 代码进行语法编译转换的方式,得到各个端可以运行的代码,再配合非常轻量的运行时适配,以及根据标准组件库、API 进行差异抹平,从而实现多端适配的目的; Taro 1/2 整体架构图 Taro 1 与 Taro 2 的都是基于这种架构建立的方案, 主要区别: Taro 1 在小程序端是自建构建体系; Taro 2 则是所有端都采用 Webpack 进行编译,可以降低 T

weixin_43758377的博客 1600

生物量预测:基于Swin-Unet模型的生物量模型预测

本文提出了一种基于Swin-Unet架构的多源遥感地上生物量(AGB)预测方法。该方法整合了光学影像、SAR雷达影像、气候环境参数以及地形数据(坡度和坡向)等多源信息,通过24个输入通道(13+2+7+1+1)构建预测模型。研究采用Min-Max归一化预处理数据,并使用80%训练集、16%验证集和20%测试集的划分策略。模型基于Swin-Unet 2D架构,设置64个初始滤波器、4层深度、4×4堆叠数和2×2补丁大小。该方法通过整合多源遥感数据和先进深度学习架构,为AGB反演提供了新的解决方案。

此星光明博客 61

多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码

本文将为大家介绍基于BP、ELM、LSTM、BiLSTM和SAELSTM多种算法的数据预测,并提供相应的Matlab源码。SAELSTM算法是一种结合自动编码器和LSTM神经网络的深度学习方法,用于时间序列数据预测。ELM算法是一种单层前向神经网络,在单次训练过程中直接产生输出权重,从而具有快速学习和良好推广性能。多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码。总体来看,采用多种算法进行数据预测可以提高预测准确率,并可根据不同场景选择适合的算法。

qq_39605374的博客 861

数据驱动在转转客服工单系统中的应用

客服工单系统是客服解决用户实际问题、处理日常工作最常用的系统。为有效辅助客服的工作,系统需要及时提供用户、商品和订单等信息。同时,客服工单的创建、流转和处理,也需要各种类型表单的操作。所以基础信息的展示和交互、表单的展示和操作,对于客服工单系统至关重要。本文就为大家介绍,在转转客服工单系统中,我们是如何通过数据驱动的方式解决这类问题的。基础信息展示形式这里以工单详情为例,工单详情以模块的方式,提供...

大转转FE 668

单片机设计具备断电记忆功能的计时器

本文介绍了如何设计一款具备断电记忆功能的计时器,利用单片机和EEPROM存储器实现了计时器值的保存和恢复。当然,在实际的设计中还需要考虑其他因素,如电源管理、时钟精度等,以确保计时器的正常运行和准确性。选择合适的单片机:在设计计时器时,我们需要选择一款具备存储功能的单片机,以便在断电后能够保存计时器的状态。可以优化显示方式,使用更加直观的界面来展示计时器的值;函数中,我们首先从 EEPROM 中读取计时器的初始值,然后在一个无限循环中每秒钟增加计时器的值,并将新的值写入 EEPROM 中。

RlDart的博客 1094

干货 | 携程玩乐团队前端多端开发实践

作者简介Neo,携程前端开发工程师,负责玩乐前端架构相关开发工作。一、前言本文将介绍在具体业务实践中,携程玩乐团队一套代码多端复用的一些实践与经验,希望能给面对同样问题的同学提供些思路...

携程技术 1261

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

干货 | 携程Taro多端化探索与实践

作者简介Frank,携程前端研发,专注前端性能优化、一码多端、工程化建设等领域。一、业务背景随着移动互联网和智能设备的普及,前端开发人员需要采用多端同构技术来适配不同的终端(小程序、App和Web)。这些终端之间存在着明显的差异,包括浏览器引擎、操作系统、交互方式以及代码语言等方面。这些差异给前端开发人员带来了不少挑战。一方面,不同终端采用不同的浏览器引擎和操作系统,导致页面渲染和交互行为的表现各...

携程技术 3339

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

干货 | 能效变革,携程酒店前端BFF实践

作者简介携程酒店研发前端BFF组,专注BFF研发实践及效能提升;携程云函数研发项目组,专注新一代FaaS研发模式在携程的落地实践;团队热招岗位:前端技术专家、资深前端开发工程师本文概述了携程酒店前端BFF层在架构迁移及效能提升过程中面临的挑战和应对方案。第一部分描述了BFF实践过程中遇到的问题,分析了两种BFF模式的对比并提出了一码多端的BFF研发方案;第二部分通过介绍携程云函数平台能力来阐述其如...

携程技术 1855

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

干货 | 代码复用率99%,携程市场洞察平台Donut跨多端高性能技术实践

作者简介Brain,携程高级软件技术专家,关注前端技术框架、跨端技术方案、前端构建和工程化工具,致力于前沿技术和架构优化。团队热招岗位:高级前端开发工程师本文探讨了携程市场洞察平台基于Donut实现跨多端高性能移动端的技术实践。详细分析了跨平台开发的复杂性、多端登录态打通、大数据列表渲染支持等难点,以及新技术平台在功能覆盖率、基础设施和研发生态兼容性方面的挑战。Donut在小程序和App性能上的优...

携程技术 1895

干货 | 携程鸿蒙应用开发实践

作者简介Gordon,携程资深移动开发工程师,关注鸿蒙开发。背景作为全球领先的一站式旅游服务平台,携程始终坚持以技术创新为发展核心。自鸿蒙发布以来,我们便投入研发力量进行调研、开发,并成功落地了携程机票项目、服务卡片项目等。现将鸿蒙项目中相关经验整理分享,希望能给大家一些参考,也希望鸿蒙发展能越来越好。一、鸿蒙系统简介华为鸿蒙HarmonyOS系统是面向万物互联的全场景...

携程技术 3907

干货 | RN框架在携程旅行鸿蒙应用的全业务适配实践

作者简介携程鸿蒙框架技术团队,负责携程旅行鸿蒙系统原生应用开发,为鸿蒙生态用户提供一站式旅行服务。团队热招岗位:资深移动端工程师、高级iOS开发工程师携程作为鸿蒙生态在旅游行业的重要合作伙伴,早在鸿蒙服务卡片时期就和华为开始合作。2023年9月,华为宣布鸿蒙原生应用启动开发,同年12月,我们完成携程旅行鸿蒙Beta版本的开发,技术上基于Web+部分原生的方案实现。24年6月HarmonyOS Ne...

携程技术 3044

干货 | 提升前端工程化,携程 Design2Code 从零到一的实践

作者简介by,携程高级研发经理,专注低代码平台搭建和前端智能化技术。Jialu,携程研发总监,专注大前端技术和工程化的研究与发展。一、 背景在软件开发过程中,团队协作效率的提高是我们共同关注的问题。为了解决这一问题,许多团队都开始使用智能化工具。Design2Code(简称D2C)工具是其中一种广受欢迎的选择。在本文中,我们将分享D2C工具的核心算法方案设计和实现过程,以及一系列的解决方案。无论你...

携程技术 3442

干货 | 携程基于 GraphQL 的前端 BFF 服务开发实践

作者简介工业聚,携程高级前端开发专家,react-lite, react-imvc, farrow 等开源项目作者。兰迪咚,携程高级前端开发专家,对开发框架及前端性能优化有浓厚兴趣。一、前言过去两三年,携程度假前端团队一直在实践基于 GraphQL/Node.js 的 BFF (Backend for Frontend) 方案,在度假BU多端产品线中广泛落地。最终该方案...

携程技术 2319

干货 | 携程机票 App KMM 跨端生产实践

作者简介禹昂,携程移动端资深工程师,Kotlin 中文社区核心成员,图书《Kotlin 编程实践》译者。Derek,携程资深研发经理,专注于移动端开发,热衷于各种跨端技术的研究和实践。一...

携程技术 3852

干货 | Flutter 地图在携程的最佳实践

作者简介Leo,携程高级移动开发工程师,关注跨端技术,致力于高效、高性能开发。Jarmon,携程高级移动开发工程师,专注 Flutter、iOS 开发。一、背景随着各种多端技术的蓬勃发展,项目主体从纯 Native 项目,到 Native+RN,到现在的 Native+RN+Flutter。基于我们的业务都在 Flutter 技术栈上面,这要求我们需要嵌套展示地图。目前,实现嵌套展示地图的主要方案...

携程技术 3511

干货 | 携程小程序生态之Taro跨端解决方案

作者简介携程前端框架团队,为携程集团各业务线提供优秀的Web解决方案,当前主要专注:新一代研发模式探索,Rust构建工具链路升级、Serverless应用框架开发、在线文档系统开发、低代码平台搭建、适老化与无障碍探索等。一、摘要随着携程接入小程序平台类型的增加,前端需要负责的端越来越多,研发成本也随之成倍增加。为了解决一套代码多端运行的诉求,携程小程序框架不断调整、升级,...

携程技术 3351

干货|携程Web组件在跨端场景的实践

作者简介Iris,携程前端开发经理,专注于前端组件库和工程化领域。Abert,携程高级研发经理,关注跨端解决方案。一、背景我们在开发 H5 营销活动后,通常会将营销活动的入口投放到多端,包括 App、小程序。常见的投放形式有:Native 原生页面、React Native 页面和小程序页面的内嵌弹窗。那么此时,就需要 Native、RN、小程序端的人力投入。由此,整个流程从仅需 H5 开发演变成...

携程技术 2648

干货 | 携程门票H5转小程序实践

作者简介本文作者为携程门票前端小程序组,关注小程序相关的开发和优化。一、背景自微信小程序出来后,互联网进入一个新的纪元。由于手机的容量有限,每个人不可能装太多APP ,总有一些APP大...

携程技术 701
上一篇: 干货 | 携程商旅在 Remix 模块预加载中的探索与优化实践
下一篇: 干货 | 携程基于Kafka的数据校验代理在FinOps领域的应用
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值