我在一个应用程序上工作,其核心是一组非常复杂的 Web 表单。这种复杂性的根源
- 规模,有些表格包含大约 50 页,每页最多 30 个问题
- 复杂的规则,例如如果用户对问题 4 回答“否”,则问题 5-15 不适用,因此应从表格中删除
目前我们对表单使用Angular Schema Form,但它没有提供一种引人注目的方式来管理表单字段之间的大量复杂规则。
我在基于规则的编程方面没有太多经验,但在我看来,这可能会提供一种更好的方式来管理表单字段之间的规则。例如,使用基于规则的方法,我们可以定义与每个表单字段关联的规则,并且规则引擎可以使用这些规则来决定接下来要显示哪些字段。使用我们当前的方法,我们使用大量几乎不可能测试和维护的命令式 JavaScript 来实现这一点。
如果有人有开发如此复杂的网络表单的经验,我很想听听他们的经验,例如他们可以推荐的工具/库。我们当前的堆栈基于 JDK(Java、Groovy、Grails)和 JavaScript(Angular、Node),因此在这些平台上运行的工具/库/框架将特别有趣。