管理复杂的Web表单

Dón*_*nal 20 javascript forms rule-engine angular-schema-form

我在一个应用程序上工作,其核心是一组非常复杂的Web表单.这种复杂性的来源

  1. 缩放,一些表格包含大约50页,每页最多30个问题
  2. 复杂的规则,例如,如果用户对问题4回答"否",则问题5-15不适用,因此应从表格中删除

目前,我们对表单使用Angular Schema Form,但它没有提供一种在表单字段之间管理大量复杂规则的引人注目的方法.

我对基于规则的编程没有多少经验,但在我看来,这可能提供了一种更好的方法来管理表单字段之间的规则.例如,使用基于规则的方法,我们可以定义与每个表单字段关联的规则,规则引擎可以使用它们来决定下一个要显示的字段.使用我们当前的方法,我们通过大量的命令式JavaScript来实现这一点,这几乎是不可能测试和维护的.

如果有人有开发这种复杂网页表单的经验,我会有兴趣了解他们的经验,例如他们可以推荐的工具/库.我们当前的堆栈基于JDK(Java,Groovy,Grails)和JavaScript(Angular,Node),因此在这些平台上运行的工具/库/框架将特别令人感兴趣.

Tra*_*ain -1

如果您想使用规则引擎,请问自己这些问题。如果答案适用,请使用它。

你的算法是一堆计算还是涉及主要的决策能力?

  • 如果您有很多条件或者您的规则不是非常表格化(您可能能够将规则存储在数据库中),您甚至可以采取混合方法,但维护起来有点困难,因为您在不同的部分中有规则,但更容易编程,因为您只是编写特定的规则。

您的决定有多复杂?

  • 如果您有多个条件语句

  • 您可以清楚地定义规则

你的规则有多不稳定?

  • 您还不知道您的规则,或者您的规则需要灵活并且会随着时间的推移而改变。

您的算法需要自定义调整吗?

  • 如果您不需要调整性能等问题,请使用规则引擎