提升和类型安全

Kon*_*tov 5 scala lift

我现在正在学习Lift.当我阅读有关模板的内容时,我知道他们有许多在编译时没有进行类型检查的东西:

  • 模板可能包含对不存在的代码段的引用
  • SiteMaps可能引用不存在的页面
  • 片段调度方法采用字符串参数,我们可以轻松地输入拼写错误

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

Edm*_*984 1

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

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

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

public boolean isTrue(boolean value){
        return !value;
}
Run Code Online (Sandbox Code Playgroud)

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

 <!-- importing a snippet depending on the value of a variable -->
 <import src="${snippetName}.xml"/>
Run Code Online (Sandbox Code Playgroud)

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

  • 对我来说,类型检查就是在编译时发现错误。而且很多电梯里没有托运的东西,理论上都是可以托运的。 (2认同)
  • 类型检查是静态分析的一种轻量级形式。康斯坦丁想要的东西是相当可行的。 (2认同)