当我写一些代码时,我想知道我的方法应该是多么安全.我应该相信我班级的用户吗?还是检查一切?这意味着参数类型检查可能不是一个好习惯,因为Javascript应该是鸭子类型.
基本上这会导致信任问题.有最好的做法吗?有隐含的"合同"吗?
示例:
CarsCollection.prototype.get = function ( index ) {
return this.collection[index];
};
Run Code Online (Sandbox Code Playgroud)
要么
CarsCollection.prototype.get = function ( index ) {
var self = this;
if ( ! index ) {
throw new ReferenceError();
}
if ( isNaN ( index ) ) {
throw new TypeError();
}
return self.collection[index];
};
Run Code Online (Sandbox Code Playgroud)
一般来说,框架代码和可重用库之类的东西是广泛参数检查的主要候选者,因为您(以及您当前和未来的同事)将大量使用这些代码。
您不必在任何地方添加参数检查,只需在合理的时候使用它们即可。
如果您想指定某些行为,例如:应该array_delete_value修改输入参数还是返回删除了值的副本?在注释中指定它并添加一个测试来准确测试此行为。
如果您担心性能,您可以编写类似断言的语句,并在缩小步骤中将其删除。这类似于在关闭断言的情况下进行编译。
断言可能类似于:
argument("index", index).of_type("number").required();
Run Code Online (Sandbox Code Playgroud)
如果您投了反对票,请发表评论。我错过了什么?您有竞争方法吗?
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |