为了了解当前前端的发展趋势,让咱们从国内各大互联网大厂开始,了解他们的最新动态和将来规划。这是解密大厂前端技术体系的第四篇,前三篇已经讲述了阿里、腾讯、百度在前端技术这几年的技术发展。前端
这一篇从携程讲起。npm
移动技术产品小程序
移动技术产品分为四大模块:后端
大前端技术框架安全
携程在大前端技术框架层面主要面向不一样应用场景沉淀了三个技术框架:性能优化
新技术探索网络
MCD经历了屡次大型迭代,逐步成为携程内部持续交付平台,涵盖了集成阶段、测试阶段、发布阶段和运营阶段的全流程研发环节。session
MCD 1.0数据结构
MCD1.0的出现解决了系统在线打包的问题,而且经过CI/CD实现定时打包、代码静态扫描、自动化验包-白屏监测的能力。架构
持续集成阶段接入了代码扫描和冒烟测试的功能,经过infer和sonar进行代码的静态检查,而且统一集成单元测试能力,提供单测的结果和覆盖率。
冒烟测试能够监测白屏状况,而且进行多机型兼容测试,经过内容和图像对比提早发现问题。
经过集成编译,持续减低App编译的时长,提升研发测试效率。
MCD 2.0
MCD 2.0从新定义了MCD,涵盖了更为普遍的范围,包含集成、测试、发布、运营环节。而且由各个模块各自打包生成Bundle,再经过Bundle集成达到2~3分钟极速出包的能力。
同时MCD也加强了许多能力:
APM性能监控平台主要关注性能、崩溃、异常等数据的监控,携程在性能与异常监控上也作了许多工做:
收集App中全部相关数据,例如网络请求、页面跳转、图片请求、用户行为埋点、Cat日志、Web服务日志,而且经过时间轴将全部数据串联起来,能够帮助研发同窗快速还原现场排查问题。
在日志展现上以一次用户session为集合,按照时间轴显示不一样的页面信息,同时在每一个页面的详细信息中会提供当前页面全部的网络请求、用户行为埋点、研发自主埋点等等内容。
打造无线技术平台,将App中通用能力沉淀下来,而且复用到多个App中,避免重复造轮子,提升研发标准化与效率。同时平台治理提供例如注册服务、排查故障、服务熔断、查看调用等功能,方便平台化技术的运营。
CRN是携程内部基于React Native进行深度定制的移动端跨平台/动态化框架,目前已经在实际的业务项目中大规模应用,页面规模超过100个,PV数目已经超过传统Hybrid H5页面的2倍多。
基于React Native框架优化,定制成适合携程业务的跨平台开发框架 - CRN,提供从开发、发布、运维的全生命周期支持。
开发框架,主要是提供在开发阶段的支持。包括工具&文档、组件和解决方案、跨平台打通和代码托管功能。 工具主要包括CLI和Packer,文档包括API文档和设计文档,跨平台主要是抹平平台差别组件间的API,代码托管是为了方便业务团队,特别是新加入CRN开发的团队,能够参考已有业务代码快速上手。
性能优化,主要是为了解决首屏渲染的性能问题和RN框架的稳定性问题。为了解决首屏渲染性能问题,咱们前后开发了框架拆分和预加载、业务按需加载、业务预加载和渐进式渲染方案,稍后会就这些方案作详细介绍。
发布运维,主要是提供发布系统和性能、错误监控平台,让业务开发同事可以有完备的系统去发现和解决线上问题。
详细信息能够查看:干货 | 近万字长文详述携程大规模应用RN的工程化实践
携程在2017年9月份正式上线了Node.js应用,历经2年时间,应用数实现了8倍增加,覆盖公司33个业务部门。
Node.js的工程化建设,涵盖开发、构建、测试、发布、运维各个环节:
详细信息能够查看:干货 | 浅谈Node.js在携程的应用
GraphQL-BFF 的核心思路是,将多个 services 整合成一个中心化 data graph。
每一个 service 的数据结构契约,都放入了一个大而全的 GraphQL Schema 里;若是不作任何模块化和解耦,开发体验将会很是糟糕。每一个团队成员,都去修改同一份 Schema 文件。
这明显是不合理的。GraphQL-BFF 的开发模式,应该跟 service 的领域模型,有一一对应的关系。而后经过某种形式,多个 services 天然整合到一块儿。
技术选型上,开发语言选用了 TypeScript,跑在 Node.js v10.x 版本上,服务端框架是 Koa v2.x 版本,使用 apollo-server-koa 模块去运行 GraphQL 服务。
Apollo-GraphQL 是 Node.js 社区里,比较知名和成熟的 GraphQL 框架。作了不少的细节工做,也有一些相对前沿的探索,好比 Apollo Federation 架构等。
详细信息能够查看:干货 | 万字长文全面解析GraphQL,携程微服务背景下的先后端数据交互方案
携程在组织架构上有基础研发团队进行保障,在大前端领域可以收敛、沉淀众多的基础平台服务、技术框架,造成了一套比较完整、统一的基础框架能力,很好的支撑了多App、多业务的快速发展。
本篇文章力图从大前端各个方面去整理总结携程当前的技术体系,但必定会有许多遗漏,同时开放信息毕竟有限,但愿相关同窗能够一块儿多多交流。
这是大厂前端技术体系解密系列第四篇,后续还会有其余大厂的内容,精彩还将继续,有兴趣的同窗能够关注本公众号【奶爸码农】第一时间得到信息。
推荐阅读
『奶爸码农』从事互联网研发工做10+年,经历IBM、SAP、陆金所、携程等国内外IT公司,目前在美团负责餐饮相关大前端技术团队,按期分享关于大前端技术、投资理财、我的成长的思考与总结。