本文为翻译文章,原文链接见文末
这是《为什么要在javascript中进行静态类型检查》系列的最后一篇文章,如果你还不太熟悉,可以看下第一篇和第二篇。
我们应该在JavaScript中使用静态类型么?
我最开始学的编程语言就是JavaScript和Python,这两门都是动态类型语言。
但是进入静态类型世界给了我关于编程的一个新的思维角度。例如,即使一开始Elm的编译错误让我很崩溃,定义类型然后来“取悦”编译器编程了第二本能,并且实际上也提高了我的编码思维。此外,有一个智能的机器人告诉我我正在犯哪些错误以及如何去解决是一件非常解放生产力的事。
尽管类型会带来一些诸如代码冗长、需要投入较多前期的学习精力的劣势,但是对我个人而言,类型给程序带来的安全性和正确性保证使这些“劣势”变成了一个很小的问题。
动态类型用起来更快也更简单,然而一旦当你要写一个在复杂环境下跑的程序时,有时就会出现问题。与此同时,你可以和Java的开发者聊一聊(他们会遇到更加复杂的泛型),他们会告诉你他们有多恨类型。
最后,并没有什么silver bullet。我个人的方法是在这些场景下去使用类型:
- 这段程序对你的业务非常关键
- 随着需求的变化,这段程序很可能会被重构
- 这段程序很复杂并且有许多活动组件
- 这段程序有一个大团队的开发者维护,他们需要能够快速且准确地理解代码
在另一方面,在这些情况下我可能会抛弃类型:
- 这段代码是很临时性的,并且不重要
- 仅仅编写一段原型代码,且需要你尽可能快的开发
- 程序非常小,或者很简单
- 你是唯一的开发者
对于现在的JavaScript开发者而言,有Flow和TypeScrip这种工具让我们可以在静态类型与动态类型(原生JavaScript)之间选择是非常美好的。
结论
我希望这系列文章能够帮助你意识到为什么类型很重要,如何去使用它们,以及最重要的——何时其实用它们。
对JavaScript社区而言,能够在动态类型和静态类型之间切换是非常强大的(而且令人兴奋)。
原文:Why use static types in JavaScript? Should we use them or not?)
网友评论