马天琦-探索类型友好的 Node.js Web 框架(GOTC深圳会场)(48页).pdf

编号:82934 PDF 48页 3.42MB 下载积分:VIP专享
下载报告请您先登录!

马天琦-探索类型友好的 Node.js Web 框架(GOTC深圳会场)(48页).pdf

1、大前端新趋势专场马天琦 2021年08月01日本期议题:探索类型安全的 Node.js Web 框架自我介绍马天琦字节跳动 Web Infra 团队成员Farrow 核心开发者探索类型安全的 Node.js Web 框架探索类型安全的 Node.js Web 框架 类型安全 Node.js Web 框架现状现状 当前 API 设计中的类型问题 Farrow 的类型安全方案 Farrow 未来的规划 总结类型安全 What&Why?类型安全什么是类型安全定义:变量的行为与它的类型相匹配,不存在运行时的类型错误例子 0:访问 null 的属性(null.foo())例子 1:将 string 类型

2、当作 number 类型做运算例子 2:调用对象中不存在的方法类型安全为什么要追求类型安全Well typed programs cannot go wrong.A Theory of Type Polymorphism in ProgrammingRobin Milner 1978.尽可能在编译期通过类型检查提前捕获可能的程序错误,提高代码的健壮性配合编辑器类型提示,类型检查是比单元测试反馈更快、更早、覆盖更全面的实时测试符合类型安全准则的代码,往往是设计更合理、质量更高、编写更优雅的、表达更清晰的Node.js Web 框架现状现状Node.js Web 框架当前 API 设计中的类型问题

3、Express类型问题Hanging Request可以不响应可以远远挂起请求无法在编译期得到约束和提醒类型问题Wrong Response无法在编译期约束 header-body 的响应次序无法在编译期约束只发送一次 body类型问题Monkey Patching修改 req/res 污染全链路中间件的类型动态追加属性或方法,与静态标注的类型有本质矛盾静态类型决定能否赋值给属性,而非属性赋值决定是否包含特定类型类型问题No Runtime ValidationTypeScript 类型在编译后都被抹去在 Input/Output,parse/stringify 中需要运行时类型检查类型问题P

4、oor Type Inference类型推导不友好自动类型转换不友好需要编写繁琐的类型转换和防御逻辑类型问题总结Hanging Request(请求意外挂起)Wrong Response(错误响应内容)Monkey Patching(篡改对象属性)No Runtime Validation(无运行时验证)Poor Type Inference(不友好的类型推导)etc.类型问题总结Hanging Request(请求意外挂起)Wrong Response(错误响应内容)Monkey Patching(篡改对象属性)No Runtime Validation(无运行时验证)Poor Type I

5、nference(不友好的类型推导)etc.只靠*.d.ts,并不能获得充分的类型友好和类型安全特性类型问题总结基于 Express/Koa 可以用打补丁的方式解决一两种类型问题,但不能从根本上解决问题Fastify 提供了基于 JSON Schema 的运行时校验请求内容的方案,但方案与类型系统不贴合要充分解决系统性问题,则需要基于 TypeScript 做全盘的思考类型优先开发(Type-First Development)类型驱动开发(Type-Driven Development)类型问题类型安全的服务端框架设计目标Prevent Hanging Request(阻止请求意外挂起)Re

6、fuse Wrong Response(拒绝错误响应内容)No need to Monkey-Patching(无需篡改对象属性)Embedded Runtime-Validation(内置运行时验证)Excellent Type Inference(出色的类型推导)etc.类型问题类型安全的服务端框架设计目标Prevent Hanging Request(阻止请求意外挂起)Refuse Wrong Response(拒绝错误响应内容)No need to Monkey-Patching(无需篡改对象属性)Embedded Runtime-Validation(内置运行时验证)Excellen

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(马天琦-探索类型友好的 Node.js Web 框架(GOTC深圳会场)(48页).pdf)为本站 (小时候) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠