多起村干部被灭门案,需要反思了!

高铁打人者身份被曝光,人脉资源碾压普通人!却遇到了硬茬

OPPO芯片业务解散不一定是坏事

明确了!任期届满后,他不再寻求连任!

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

自由微信安卓APP发布,立即下载! | 提交文章网址

携程技术

干货 | 掌控 Android 编译利器,携程火车票AAR 编译速度优化实践

图5:通过versionPath文件控制版本模块aar的核心在于对依赖项的控制。我们想要的是一个app壳+部分源码模块+部分aar模块+其他依赖的结构,因此下面几点是要考虑到的:在所有子模块发布
4月27日 下午 5:02

干货 | 携程中转交通方案拼接性能优化

Harness)对三种字符串格式化方法和一种字符串拼接方法进行耗时测试。测试结果表明,使用Java8的replace方法实现的字符串格式化性能最差,而使用Apache的字符串拼接函数性能最佳。表1
4月20日 下午 5:02

干货 | 携程小程序内嵌webview实践指南

小程序webview内嵌H5H5页面投放在小程序WebView,在配置完合法域名后,即可在小程序应用中展示。那么,针对不同厂商小程序,可能法务、厂商合规有所差异,需要H5判断所在的环境,去调用不同
4月13日 下午 5:10

干货 | 日均报错量降低95%,携程小程序生态之自动化错误预警方案

作者简介携程前端框架团队,为携程集团各业务线在PC、H5、小程序等各阶段提供优秀的Web解决方案。产品涉及各类前端/Node端应用框架、研发工作台、前端中台化、静态资源发布系统等。当前主要专注方向包括:新一代研发模式探索,Rust构建工具链路升级、Serverless应用框架开发、在线文档系统开发、低代码平台搭建、适老化与无障碍探索等。摘要携程小程序自动化错误预警方案是一套完整且通用的小程序前端错误监控方案。此方案提供小程序错误自动采集SDK,并对错误所在的页面路径进行偏移矫正,能够准确通知相应的开发负责人;将错误信息分为生产、测试、开发3种阶段,根据错误发生的阶段提供相应的错误预警及处理方案;开发负责人只需在小程序管理平台配置告警所需信息,即可快速接入、实时监控生产报错、生成告警通知;源码映射能力可以帮助开发者快速定位错误原因,提升修复效率。接入此方案可实时捕获开发环境错误,确保在小程序发布上线前发现并解决业务报错,可极大地减少线上小程序的错误量。一、为什么要做错误监控携程小程序产品是to
3月16日 下午 5:00

干货 | 提升内存管理效率,携程酒店查询服务轻量化探索和实践

目前查询服务已经在jemalloc上生产运行了数个月,至今还没有观察到再次出现堆外溢出的问题;同时RSS的波动非常稳定,即使遇到流量高峰也不会出现内存尖刺,可以保持良好的响应时间和稳定。
3月9日 下午 5:00

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

数据结构:(3)问题3:“构建布局关系”是所有步骤中最复杂的一步,因为它涉及到许多技术难点,且几乎没有可供借鉴的开源资料。我们可能需要通过不断的尝试来解决问题。实际上,构建布局关系是基于之前提到的
3月2日 下午 5:00

干货 | 新时代的 SSR 框架破局者:qwik

会在每次事件执行完毕后释放函数,相当于每次事件执行完毕都会进行一次“去水合”的过程。所以,当你触发一次事件和无数次事件函数在执行过程中对于内存占用来说是相差无几的。当然相较于传统
2月23日 下午 5:00

携程跨端解决方案的新选择:Taro-CRN

作者简介李羽,携程高级前端研发工程师,专注前端跨平台框架领域的开发与研究。Hyme,携程前端研发经理,专注前端小程序/H5领域的开发与研究。Chao,携程前端研发经理,关注前端跨平台领域与前端研发效率提升。一、项目背景随着小程序用户的增长,APP和小程序在需求迭代上呈齐头并进的趋势。与此同时,前端研发人员面对多套平台代码的维护与开发,研发投入上耗时耗力。目前携程内部急需一种跨平台的开发框架,来节约不必要的多套开发量。
2月10日 上午 11:00

干货 | 携程MySQL迁移OceanBase最佳实践

作者简介提挈,携程资深数据库工程师,专注于数据库自动化运维和分布式数据库的研究。Cong,携程数据库专家,主要负责MySQL和分布式数据库运维及研究。Typhoon,携程高级数据库工程师,负责分布式数据库的运维和工具设计。一、前言MySQL在业界流行多年,很好地支撑了携程的业务发展。但随着技术多元化及业务的不断发展,MySQL也遇到了新的挑战,主要体现在:业务数据模型呈现多元化,OLTP和OLAP出现融合的趋势;在MySQL数据库上慢查询治理成本高;使用传统的分库分表方案对开发不友好,核心数据库改造成分库分表方案,时间一般以年为单位。分布式数据库能比较好地解决上述问题,同时也带来了新的挑战。2021年,OceanBase(简称OB)开源,携程开始逐步探索OceanBase的基本特性和应用场景。OceanBase兼容大部分MySQL的功能和语法,同时提供水平扩展性、强一致性和高可用性,能满足业务需求并降低运维成本。因此,我们开始推进部分MySQL实例迁移到OB。为保证迁移顺畅,我们设计了迁移评估工具、OB迁移流程、OB监控大盘和OB故障诊断工具等。并将迁移过程中遇到的问题和大家进行分享。二、评估工具平滑迁移异构数据库,我们需要进行兼容性、性能和分区适应性等各项检查。提前把不兼容或有可能引起迁移异常的场景找出来并解决。官方提供了OceanBase
2月2日 下午 5:00

干货 | 携程酒店实时数仓架构和案例

作者简介秋石,携程数据仓库专家,关注大数据、数据仓库、数据治理等领域;九号,携程数据技术专家,关注数据仓库架构、数据湖、数据治理;魁伟,携程资深数据工程师,关注实时&离线大数据产品及技术。一、实时数仓当前,企业对于数据实时性的需求越来越迫切,因此需要实时数仓来满足这些需求。传统的离线数仓的数据时效性通常为
1月12日 下午 5:00

干货 | 携程IT数字办公平台iDesk的运营实践

作者简介Xiaoxing,携程IT资深软件工程师,深耕前后端全栈技术,专注WinForm应用,自动化、效率提升类工具开发。Hui,携程IT桌面支持经理,致力于用户服务相关平台、工具的功能优化和体验升级。术语本地服务:以系统权限(Local
1月6日 下午 5:00

开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

类型关系在确定了基本的语法规则后,我们需要定义一些基本的类型关系,这无论是在面向对象编程还是函数式编程中都非常重要。这些类型关系可以在代码编写阶段约束一些语法准则,避免将
2022年12月29日

干货 | 携程微服务体系下的服务治理之道和优化实践

作者简介HongLiang,携程高级技术专家,专注系统性能、稳定性、承载能力和交易质量,在技术架构演进、高并发等领域有丰富的实践经验。一、背景微服务架构在中大型互联网公司中被广泛应用,随着业务的发展,应用数越来越多、调用关系也越来越复杂。中台化后,交易系统要支持业务线多,系统复杂性高,原系统虽然能支撑业务量的持续增长,但在稳定性、吞吐力和资源利用率上面,还存在优化空间。分享的目的本文站在业务开发角度介绍开发在微服务架构下遇到的相关问题(微服务架构的优缺点这里不再赘述),以门票活动预订流程查询引擎为例,分享微服务治理的实战经验,希望能给遇到同样问题的同学提供一些借鉴思路。如下图所示,蓝色部分为本文的重点图1
2022年12月15日

干货 | Islands Architecture(孤岛架构)在携程新版首页的实践

作者简介携程前端框架团队,为携程集团各业务线在PC、H5、小程序等各阶段提供优秀的Web解决方案。当前主要专注方向包括:新一代研发模式探索,Rust构建工具链路升级、Serverless应用框架开发、在线文档系统开发、低代码平台搭建、适老化与无障碍探索等。一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/更新困难祖传代码黑盒逻辑过多,产品也难以推动新需求的上线,旧版首页已经不能满足高速发展的业务需求。技术栈陈旧且不统一互联网技术日新月异,旧版首页的整体架构设计和技术栈都相对落后,且大首页中各个组件的研发涉及多事业部合作,存在技术选型差异的问题,增加了维护成本。用户体验有待改善旧版携程首页的设计风格沿用至今,在视觉和交互层面上,都已经难以满足用户不断提升的互联网体验和审美需求。综合上述情况,为了给用户提供更好的服务,携程首页的整体改造迫在眉睫。二、需求分析携程首页改造需要考虑的核心问题包括以下几个方面:技术选型为了优化首屏性能,提升用户体验,携程新版首页采用服务端渲染模式。在技术选型上,考虑到我们希望应用层是轻量的,只做页面HTML拼接和响应两件事情,最终决定基于Node.js构建应用载体,客户端则统一使用公司主流的React技术栈。跨团队合作首页作为携程的重要门户,涉及多业务线的流量入口。如图1所示,我们可以将整个页面进行切割,按业务线划分成多个组件模块。图1
2022年11月21日

干货 | 记一次跨域配置引发的思考

作者简介Flora,携程高级研发经理,关注Node.js相关领域。本文主要记录一次静态资源服务源站更新了跨域策略后,引发的客户端跨域请求失败的案例。如果对跨域不太熟悉的同学,可以阅读一下MDN
2022年11月10日

开源 | 携程度假零成本微前端框架-零界

world.1989年,英国科学家蒂姆-伯纳斯-李在欧洲核子研究中心工作时发明了万维网(WWW)。万维网最初是为了满足世界各地大学和研究所的科学家之间自动分享信息的需求而构思和开发的。Web
2022年10月27日

干货 | 移动应用中使用OpenGL生成转场特效

作者简介jzg,携程资深前端开发工程师,专注Android开发;zcc,携程高级前端开发工程师,专注iOS开发。一、前言随着移动端短视频的火热,音视频编辑工具在做内容类APP上的地位举足轻重。丰富的转场方式可以给短视频带来更多炫酷的效果,从而更好地赢得用户青睐。本议题主要包含了对OpenGL的简单介绍及相关API使用,GLSL着色器语言的基本使用,以及如何通过编写自定义的着色器程序来实现图片的转场效果。二、为什么使用OpenGL以及使用的难点2.1
2022年9月22日

干货 | Taro性能优化之复杂列表篇

作者简介Kenny,携程高级前端开发工程师。2021年加入携程,从事小程序/H5相关研发工作。一、背景随着项目的不断迭代,规模日益增大,而基于Taro3的运行时弊端也日渐凸显,尤其在复杂列表页面上表现欠佳,极度影响用户体验。本文将以复杂列表的性能优化为主旨,尝试建立检测指标,了解性能瓶颈,通过预加载、缓存、优化组件层级、优化数据结构等多种方式,实验后提供一些技术方案的建议,希望可以给大家带来一些思路。二、问题现状及分析我们以酒店某一多功能列表为例(下图),设定检测标准(setData次数及该setData的响应时效作为指标),检测情况如下:指标setData次数渲染耗时(ms)第一次进入列表页72404下拉长列表更新31903多屏列表下
2022年9月15日

干货 | 上线效率提升8倍,携程门票活动直连平台实践

作者简介Harry,携程资深后端开发工程师,负责直连平台建设,关注系统高可用、数据驱动等领域。一、前言携程门票活动供应商直连平台(以下简称“直连平台”)通过API对接多个供应商的订单和商品系统,实现自动化信息同步和状态流转。随着业务的高速发展,供应商的对接需求与日俱增,这不仅对直连平台接入供应商的上线效率提出更高的要求,同时供应商系统的物理网络限制、稳定性参差不齐等情况也给直连平台带来不小的挑战。本文将从提高供应商接入效率和增强系统稳定性两个方面分享直连平台的实践经验。二、背景2.1
2022年9月1日

干货 | 每分钟写入6亿条数据,携程监控系统Dashboard存储升级实践

ReplicatedMergeTree('/clickhouse/tables/hickwall_cluster-{shard}/downsample_mtv',
2022年8月25日

干货 | 携程Dynamo风格存储的落地实践

W=199.9999999%99.9999999%99.9999994%无主复制的数据库在写入的时候容忍了部分节点的不一致,但是我们希望每个节点上的数据尽可能的完整,这就需要节点版本补齐。1.6
2022年8月18日

干货 | 携程分布式图数据库Nebula Graph运维治理实践

单机房部署集群所有节点都在一个机房中,节点之间通讯可以避免跨机房问题(应用端与服务端之间仍然会存在跨机房调用),由于机房整体出现问题时该部署模式的系统将无法使用,所以适用于非核心应用进行访问。2.3
2022年8月18日

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

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

干货 | 携程海外MySQL数据复制实践

作者简介Roy,携程软件技术专家,负责MySQL双向同步DRC和数据库访问中间件DAL的开发演进,对分布式系统高可用设计、分布式存储,数据一致性领域感兴趣。一、前言在携程国际化战略背景下,海外业务将成为新的发力点,为了保证用户高品质的服务体验,底层数据势必需要就近服务业务应用。一套标准且普适的数据复制解决方案能够提升业务决策效率,助力业务更快地触达目标用户。DRC
2022年8月11日

干货 | JuiceFS 在携程海量冷数据场景下的实践

的元数据引擎有很多选择,包括开源的Redis、TiKV以及官方提供的闭源的企业版元数据引擎。考虑到携程的数据规模较大并且后续会有更多的数据接入,元数据引擎需要能够支持TB
2022年8月4日

干货 | 携程活动搭建平台的前端“开放性”建设探索

服务开发实践携程微信小程序如何进行Size治理从47%到80%,携程酒店APP流畅度提升实践携程动态表单DynamicForm的设计与实现
2022年7月21日

干货 | 4小时上线一个接口,高效统一的携程酒店数据服务平台实践

占位符替代,与请求参数一起使用,sql有多少个参数占位符,请求参数就需要配置多少,接口运行时会根据请求的参数自动匹配到sql参数中。响应参数为了在查询结果中映射字段,sql查询输出的结果
2022年7月7日

干货 | 携程酒店Flutter性能优化实践

程序流程图程序的流程如上图所示。首先使用protoc命令生成对应的描述文件,其次将描述文件转换成对应java对象,最后使用FreeMarker模板引擎生成任意语言的契约文件。图19
2022年7月7日

干货 | 百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践

表名作为图的顶点来保证点的唯一性,点属性则是分开的库名和表名,以便通过库名或者表名进行属性查询。在两张表之间会建立一条边,边的属性主要存放任务的产生运行情况,比如说:任务开始时间,结束时间、用户
2022年6月24日

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

field.由于非空类型的字段不能为空,字段错误被传播到父字段中处理。如果父字段可能是null,那么它就会解析为null,否则,如果它是一个非null类型,字段错误会进一步传播到它的父字段。如上,在
2022年6月24日

开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

READMEhttps://github.com/ctripcorp/mmkvkotlin/blob/main/README_CN.md【推荐阅读】携程机票iOS
2022年6月16日

干货 | 携程微信小程序如何进行Size治理

155KB(临时Size)。在到达约定日期之前,该Bundle的开发人员必须调整代码至永久Size大小(即1888KB),否则该Bundle提交新的代码时,将不能通过Size检查阶段。2.2
2022年6月9日

干货 | 支持10X增长,携程机票订单库Sharding实践

业务场景的拓展导致机票订单整个服务周期变长;原先机票使用完成(出行)一段时间后就可以视为服务结束,大部分订单3个月后就不会发生变化,但是由于新业务的推出,热点数据查询和处理周期明显变长。1.3.2
2022年6月9日

干货 | 从47%到80%,携程酒店APP流畅度提升实践

页面可交互加载时长采集原理在我们的核心页面中,都包含了Text控件,可以通过扫描页面中特定区域内的文本来确定用户可交互时间。我们的技术栈大体上分为Flutter和Ctrip
2022年6月2日

干货 | 携程机票前端Svelte生产实践

条件判断项目中使用了很多的条件判断,React由于使用了JSX,所以可以直接使用JS中的条件控制语句,而模板是需要单独设计条件控制语法的。比如Vue中使用了v-if。Svelte中则是采用了{#if
2022年6月2日

干货 | 携程公共技术支持运营实践

这两种方式,推送的是wiki完整的问题和解决方法,也就是在用户使用遇阻的时候,服务号上已及时为用户送上了解决问题的方法。从上面三幅图中我们可以看到,这三种方式对自助率的提升都起到了一定的作用。
2022年5月26日

干货 | 携程机票跨端跨框架 UI 自动化测试方案 Flybirds

修改扩展如果你希望在项目中修改当前扩展,你可以用本地文件替换plugin下面的(app,device,element,app,step,screen,screen_record),并在
2022年5月19日

干货 | 携程基于BookKeeper的延迟消息架构落地实践

minNumOfZones。其中E表示ensemble大小,Qw表示副本数,minNumOfZones表示ensemble中的最小zone数目。譬如下面的例子:minNumOfZones
2022年5月19日

干货 | 携程机票iOS Widget实践

做数据和时间绑定,自定义的数据实体需要遵守TimelineEntry的协议。TimelineEntry的具体实现均需要一个date和一个数据。TimelineEntry定义如下:public
2022年5月12日

干货 | 携程 SOA 的 Service Mesh 架构落地

中可以通过设置DestinationRule的ConnectionPool和OutlierDetection,来实现熔断策略。当服务由于某些故障开始响应变慢时,ConnectionPool中关于
2022年5月12日

干货 | 万字长文详解携程酒店订单缓存 & 存储系统升级实践

MONEY类型DECIMAL(19,4)、DECIMAL(10,4)类型UNIQUEIDENTIFIER类型BINARY(16)类型串联运算符+或||CONCAT('string1',
2022年4月28日

干货 | Trip.com APP QUIC应用和优化实践

APP原网络框架是基于TCP的,经过一系列优化后,成功率和耗时均已到达瓶颈。主要的失败原因集中在请求超时和链接断开。这是TCP协议本身的限制导致:1)TCP是基于链接的,用户网络发生切换,或者NAT
2022年4月21日

干货 | 携程酒店搜索引擎AWS上云实践

B的文件。但是由于网络不知名的原因,文件可以传输,却始终无法成功。但是即使成功,仍然带来很多隐患,例如:如此大的文件会瞬间把专线带宽长期占满,而真正有实时需求的通讯会卡顿受阻。最后我们尝试通过AWS
2022年4月14日

干货 | 降低20%链路耗时,Trip.com APP QUIC应用和优化实践

基于监听多端口的连接迁移方案为了降低NginxStream配置文件复杂度和系统的整体维护成本,以及未来支持服务端的平滑无损升级,我们让每个进程监听了两种不同的端口:第1种是监听端口listening
2022年4月14日

干货 | Flutter在携程复杂业务的高性能之旅

取消在途网络请求频繁做一些筛选等操作会在短时间内多次请求网络,如果网络较差或者服务端返回时间过长,会导致数据展示错乱的问题,在刷新列表时要取消掉还未返回数据的请求。_loadHotels()
2022年4月7日

干货 | 携程基于DPDK的高性能四层负载均衡实践

(32-log(n*m))以此保证一台TDLB服务器拉出集群后,其他TDLB服务器可以接收到已有连接中RealServer的数据包,保证已有连接不会断开。1)服务器正常情况当Client(CIP:
2022年3月17日

干货 | 携程动态表单DynamicForm的设计与实现

四、后续计划DynamicForm将作为独立的npm模块使用,为其他动态表单场景提供公共功能,打造泛应用动态表单。DynamicForm代码开源,与社区共同交流与进步。【推荐阅读】开源
2022年3月10日

干货 | 用DDD(领域驱动设计)和ADT(代数数据类型)提升代码质量

非法状态对代码库的腐坏当类型的命题空间,大于领域规则的命题空间,所多出来的部分,就是非法状态的空间。非法状态将持续腐坏我们的代码库,从以下几个方面可见一斑。1)非法状态鼓励错误的代码const
2022年3月10日

干货 | 秒开率70%+,携程金融SSR应用性能监测与优化

百分位数在数据分析中,我们通常想衡量大部分用户的性能表现,而所有统计的数据中会存在一些异常的数据,因此需要对原始数据取百分位数进行分析。目前金融内部会取P50和P90两个百分位数进行分析。3.2
2022年2月24日

开源 | 携程 Foxpage 前端低代码框架

页面为了搜索引擎优化提供的一些页面。大部分页面的主体内容都是动态生成的,不同的关键词页面的结构和内容都不一样。页面模块需要有一定的动态性,会根据模块点击和曝光动态排序以及控制是否展示。接入
2022年2月24日