5

我现在正在学习电梯。当我阅读模板时,我了解到它们有很多在编译时没有进行类型检查的东西:

  • 模板可能包含对不存在的片段的引用
  • 站点地图可能引用不存在的页面
  • 片段调度方法采用字符串参数,我们可以很容易地打错字

是否有任何替代方法可以使此问题不那么严重,即库中的外部代码检查器或选项允许以类型安全的方式执行相同操作?或者可能有另一个在这种关系上更严格的 Web 框架(可能是其他语言)。

4

1 回答 1

1

类型检查是 Scala 或 Java 等强类型语言的编译时特性,它允许验证签名和类型之间的关系。此类检查将阻止您在需要 Meat 类型的参数时传递 Banana 类型的参数,或者将 String 分配给 Int 类型的变量。通常,在 Ruby 或 Javascript 等动态语言中,这是不可能的

您正在寻找的不是类型检查器。您不想验证您的程序在语法上是否正确,而是要验证它的行为是否正确,解决方案称为自动化测试。

您完全能够编写语法正确但行为错误的代码:

public boolean isTrue(boolean value){
        return !value;
}

如果您反过来想,您将如何在编译时测试需要填充一些数据的模板的正确性?

 <!-- importing a snippet depending on the value of a variable -->
 <import src="${snippetName}.xml"/>

你不能,因为你在编译时的所有变量都绝对没有价值。这就是为什么自动化测试很重要并且为您的应用程序编写测试用例不能被编译时检查取代的原因。

于 2012-07-11T12:43:12.590 回答