拥抱或打击Node缺乏类型安全性

时间:2014-06-15 11:45:08

标签: javascript node.js oop duck-typing

我来自一个语言世界(Delphi,PHP,Java),其中静态类型和强大的OOP依从性支撑并赋予整体架构权力。无论是使用外观定义的抽象类还是支持DI的接口,它们都指导我开发解决复杂业务问题的架构的能力。

NodeJS(更一般地说,Javascript)具有非常弱的类型感,因此被称为“鸭子打字”,我发现我无法在Node中以相同的程度应用传统(和强大的)技术。如果我想为数据库编写一些外观,我可以肯定,但是编写模拟或存根的人没有方法签名来设计 - 他/她必须查看我的模块(“类”)。如果我可以使用界面,这会容易得多,但实际上,我不能没有一些额外的管道。

当在Node中构建复杂的,松散耦合的应用程序时,我是否应该接受这种缺乏键入(如果是这样,如何?)或者利用节点的OOP库(例如DejaVu)从而获得“类型安全”,尽管如此以运行时类型检查为代价。我倾向于第二个,因为它允许我编写合同驱动的代码,增加一层运行时保护。

1 个答案:

答案 0 :(得分:1)

弱键入(我的意思是弱,不是静态,动态,隐式,显式等)阻碍了健壮代码的开发,而编译器编译成JavaScript有助于解决这个问题。