5

私は今Liftを学んでいます。テンプレートについて読んだとき、コンパイル時にタイプチェックされないものがたくさんあることを理解しました。

  • テンプレートには、存在しないスニペットへの参照が含まれている可能性があります
  • サイトマップは存在しないページを参照している可能性があります
  • スニペットディスパッチメソッドは、タイプミスを簡単に作成できる文字列パラメータを取ります

この問題をそれほど深刻にしないための代替手段はありますか?つまり、外部コードチェッカーまたはライブラリ内のオプションで、同じことをタイプセーフな方法で実行できますか?または、この関係でより厳密な別のWebフレームワークがある可能性があります(他の言語である可能性があります)。

4

1 に答える 1

1

型チェックは、Scala や Java などの厳密に型指定された言語のコンパイル時の機能であり、署名と型間の関係を検証できます。このようなチェックにより、Meat 型のパラメーターが予期される場合に Banana 型のパラメーターを渡すことや、Int 型の変数に String を代入することが防止されます。通常、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 に答える