长期耕耘于Node.js技术栈,为淘宝和阿里其他BU提供框架和中间件解决方案,负责淘宝整体的Node.js体系基础建设,解决全栈开发的各种维护和稳定性问题,也同时负责 MidwayJs系列内部和社区开源产品,包括Midway、Sandbox、Pandora、Injection等开源产品的开发、维护等工作。
长期耕耘于Node.js技术栈,为淘宝和阿里其他BU提供框架和中间件解决方案,负责淘宝整体的Node.js体系基础建设,解决全栈开发的各种维护和稳定性问题,也同时负责 MidwayJs系列内部和社区开源产品,包括Midway、Sandbox、Pandora、Injection等开源产品的开发、维护等工作。
未来前端最大的问题是规模化编程和全栈带来的挑战,TypeScript能够很好的应对这2个问题。在传统的Web框架、FaaS框架或者其他微服务框架,基于JavaScript体系实施全栈模型的大型项目开发时往往造成代码复杂度过高,维护成本逐步增加的问题(没有类型系统)。同时在不同的场景下迁移代码、共享代码时也会碰到很多问题。我们通过引入TypeScript 和装饰器模型,通过在跨场景下引用相同的装饰器,但是不同实现逻辑,来解决不同场景下的各种需求。这种做法很好的做到架构解耦,并解决规模化编程问题,提高代码质量,对团队成长也有非常好的帮助。
淘宝从2017年之前就开始探索TypeScript的落地方式,随着时间的推移已经将新的模块和框架全部迁移到TypeScript体系,在2019年,TypeScript应用已经遍地开花,提前完成了非常不错的布局。
本次分享主要介绍淘宝最近开源的Midway框架在新的场景、新的体系下如何和现有的Egg体系保持良好的兼容性,同时又能在TypeScript的使用中有着独特的体验,通过针对不同场景的情况,我们引入相同的解决方案,为未来打下了夯实的基础。
演讲提纲:
1. 使用TypeScript
(1)规模化编程和全栈带来的挑战
(2)面向接口编程
(3)新特性,装饰器的使用
2. 基于Egg创造性Web框架Midway
(1) 从Egg开始
(2) 引入 IoC
(3) 和框架解耦
(4) 和目录结构解耦
(5) 引入自定义装饰器
(6) 实践讲解
3. 多场景设计实践
(1) 跨场景的实现
(2) FaaS场景的设计和代码迁移
(3) 跨其他场景的解决方案
听众收益:
当前Node.js的场景越来越多,很多代码都需要跨不同场景进行共享和迁移,在这些过程中,如果代码能够尽可能少的变化,势必会减少很多工作量和重构量,也使得在业务迁移过程中能够更加专注业务本身,而不是新框架的使用方式。