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

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

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

「大前端新趋势」专场

本期议题:探索类型安全的Node.jsWeb框架

马天琦2021年08月01日

自我介绍

马天琦

探索类型安全的Node.jsWeb框架•字节跳动WebInfra团队成员

•Farrow核心开发者

探索类型安全的Node.jsWeb框架

•类型安全

•Node.jsWeb框架现状现状

•当前API设计中的类型问题

•Farrow的类型安全方案

•Farrow未来的规划

•总结

类型安全WhatWhy?

类型安全

什么是类型安全

定义:变量的行为与它的类型相匹配,不存在运行时的类型错误

•例子0:访问null的属性(null.foo())

•例子1:将string类型当作number类型做运算

•例子2:调用对象中不存在的方法

类型安全

为什么要追求类型安全

Welltypedprogramscannotgowrong.——《ATheoryofTypePolymorphismin

Programming》RobinMilner1978.

•尽可能在编译期通过类型检查提前捕获可能的程序错误,提高代码的健壮性

•配合编辑器类型提示,类型检查是比单元测试反馈更快、更早、覆盖更全面的实时测试

•符合类型安全准则的代码,往往是设计更合理、质量更高、编写更优雅的、表达更清晰的

Node.jsWeb框架现状

现状

Node.jsWeb框架

当前API设计中的类型问题

Express

类型问题

HangingRequest

•可以不响应

•可以远远挂起请求

•无法在编译期得到约束和提醒

类型问题

WrongResponse

•无法在编译期约束header-body

的响应次序

•无法在编译期约束只发送一次body

类型问题

MonkeyPatching

•修改req/res污染全链路中间件的

类型

•动态追加属性或方法,与静态标注

的类型有本质矛盾

•静态类型决定能否赋值给属性,而

非属性赋值决定是否包含特定类型

类型问题

NoRuntimeValidation

•TypeScript类型在编译后都被抹去

•在Input/Output,parse/stringify

中需要运行时类型检查

类型问题

PoorTypeInference

•类型推导不友好

•自动类型转换不友好

•需要编写繁琐的类型转换和防御逻

类型问题

总结

•HangingRequest(请求意外挂起)

•WrongResponse(错误响应内容)

•MonkeyPatching(篡改对象属性)

•NoRuntimeValidation(无运行时验证)

•PoorTypeInference(不友好的类型推导)

•etc...

类型问题

总结

•HangingRequest(请求意外挂起)

您可能关注的文档

文档评论(0)

hw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档