独家解读:淘宝 TypeScript 多场景开发和实践
在上周的 GMTC 全球大前端大会上,淘宝前端技术专家陈仲寅在“Node 实战”主题专场中发表了《TypeScript 多场景开发和实践》的演讲,演讲内容整理如下。
前两天参加了 GMTC 大会,作为讲师分享了淘宝的 midway 的部分想法和实践,也顺带听了 Node.js 全场的分享,同时也听了一些行业内的其他实践,还是有不少收获。也有些场因为时间冲突比较遗憾,只能后期再看视频。
今年很明显的是,围绕着 Serverless 去开展,Node.js 场的我们讲师,其实都是在 Sereverless 方向有不少实践,腾讯的 Starkwang 和网易的金炳,都是有落地的,小程序自然不用说,目前国内基本上都是围绕着它的生态,我没想到的是,网易的起步也挺快。
跨平台方案
下面还是聊聊主题,我分享的内容,是基于 TypeScript 的多场景开发方案。
整个分享的内容基调是基于当前的 Node.js 开发背景来的,阿里的应用分为几种。
对于阿里集团来说,大部分的应用都是 BFF 应用,这些应用表现为长尾应用,维护的人不断的迭代流失,可能最后也找不到人维护,而这 70% 的应用逐步逐步的就被放弃,但是又有一些同学还在不断的使用,对于一个 BU 来说,是很不利的。而 Serverless 的出现,可能是给这些应用一个机会,一个能摆脱维护,摆脱人员投入的机会,但是具体如何,还是得看今年的发展,毕竟 Serverless 和传统的应用开发有很大的不同。
剩下的就是全栈应用了,去除那些不重要的 BFF 应用,我们还对其做了核心和非核心的划分,在这些应用中,不乏有承载千万流量的大应用。而这些应用都由前端同学来维护,整个研发,测试,发布的流程都必须非常谨慎。
在集团应用中,TS 的使用没有想象的那么多,据我们采集的数据,也就只占 5% 左右(演讲是变成 0.05 了,这里解释一下),基本都是 midway(TS 版本,内部还有 JS 版本),而今年,我们希望新应用全量使用 TS。
在这种场景下,对于业务同学来说,也有很多苦恼,比如业务复杂,接口没有定义,以前使用 schema,但是没有很大的推广开来,这些都需要自己去拿时间来填,反而并不友好。在集团内发布 RPC 服务,也需要写 jsdoc,用于匹配 java 的类型,在 js 场景场景下,这些都是不得已的选择。
这个时候引入 TypeScript,来帮助我们解决这些质量,习惯,方法上的问题,就拿 midway 团队来说,自从使用了 TypeScript,质量提升的非常明显,平常需要测试很久的代码,几乎不会出现低级的问题,反而暴露出的大多都是逻辑问题。
同时,面向接口编程,也成为了大家的习惯,每次多人协作,也只需要先定义 interface,然后根据 interface 的约定去各自实现,效率也非常高。
同时,我们将 RPC 生成的工具替换成了 TypeScript 解析,将 Java 类型和 TS 类型做了一些映射,也避免了再使用 JsDoc 描述的问题。
讲了这么多 TS 的使用,下面来解决具体的问题。
......
查看余下原文,欢迎点击了解更多