其实我们在JS编程中难免会遇到关于类型的问题,那么类型有什么意义呢?大家认定,通过类型系统,在编译阶段就能发现错误,所以人们开发出了越来越强大的类型系统,比如TS,但是类型是否真的有意义?
首先不一定,我们不依据类型也是可以做出复杂的强大的系统
作为例子,我们可以想一下复杂的硬件系统。电子工程师经常构建包含数百万个元件、充满复杂交互的系统,怎么保证可靠性?
他们主要依赖的是架构原则:模块化、显式接口、严格的调用顺序。
如果你有良好的架构设计,类型系统其实不是必需的,下面就是两个例子。
(1)UNIX 管道可以将数十个程序组合成复杂的工作流,不需要进行类型检查,因为每个组件都遵守约定:内部发生的事情不暴露到组件外部,外部通信仅通过显式的、简单的文本数据进行。
(2)互联网本身也没有集中式的类型检查。HTTP 服务器、客户端、电子邮件系统、DNS 解析器,都通过简单的协议进行互操作,遵循组件松耦合和接口简洁的架构原则。
总之,当组件真正隔离,并通过简单、明确的接口进行通信时,即使是大型系统也能保持可理解性。
编程的未来不在于更好地分析复杂系统,而在于更好地构建简单系统。所以我们在后期的开发中如果考虑到关于类型的时候,是否可以从根本上去解决问题,比如架构层面,多去做模块化考量