微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据用户表单输入创建自定义报告的最佳做法?

如何解决根据用户表单输入创建自定义报告的最佳做法?

我的问题


根据用户表单输入创建自定义报告的最佳做法是什么?具体来说,我如何创建一个易于维护的系统,该系统接受以表单形式收集的用户输入并生成解释分析结果的多个段落。

背景


我正在与一家初创公司(谁是我的客户)合作开展一个非常大的多年期项目。我的工作是编程分析并向用户生成报告。数据管道如下所示:

用户将信息输入表单 -> 根据用户输入计算结果 -> 向共享分析的用户显示报告。

对我的客户来说,以非正式的用户友好语气在段落中显示一些分析结果非常重要。挑战在于表格和分析非常复杂,而且随着时间的推移只会变得更加复杂。段落模板类型的示例如下所示:

resultsParagraphText=`Hi ${userName}. We found that the best ice cream flavour for you is ${bestIceCreamFlavor}. These other flavors ${otherFlavors} might be good for you. Here are the reasons why you might enjoy these flavors: ${reasonsWhyGoodFlavors}.
However we would not recommend these other flavors ${badFlavors}. Here are the reasons you should avoid this bad flavors: ${reasonsWhyBadFlavors}.`

这些结果段落,其中有很多,有几个小问题,这些小问题结合起来很重要:

  • 如果代码中存在错误,最终用户会看到轻微的视觉错误(大写错误、缺少/多余的逗号等)。
  • 生成结果段落需要进行大量字符串比较(例如if answers.prevIoUsFlavors.includes("Vanilla"))。表单中的小错误(例如,表单中的 vanilla 没有大写,因此即使用户输入原版,answers.prevIoUsFlavors.includes("Vanilla") 也会返回 false。)可能会导致结果段落中出现错误
  • 项目不同部分(形式、分析)的变化直接影响结果段落的制作方式。错误类型、字符串值差异、未直接捕获空值或未定义值都会影响结果段落的制作方式。
  • 有很多边缘情况(例如,如果用户没有其他适合他们的好口味怎么办?需要排除句子 These other flavors ${otherFlavors} might be good for you.)。
  • 很难写出使用模板并具有非正式语气的段落。
  • 等等。

我有图表和其他类型的方法显示结果,并向客户解释了以段落形式共享信息的挑战。

我在找什么


我需要有关如何构建可维护系统以根据用户输入生成自定义段落的示例、操作方法和最佳实践。我知道如何解决每个单独的问题(因为它们相当简单),但在大型项目中,这将变得非常难以维护。

注意事项

  • 我不知道该帖子使用什么标签。如果您知道更合适的标签,请随时编辑/添加标签
  • 该项目计划在未来的其他部分使用机器学习。如果有有用的 ML/AI 解决方案,请告诉我。
  • 我主要使用 JavaScript、Python、C 和 R 语言工作,但如果有任何其他语言的库或工具,请告诉我。找到解决方案对我来说非常重要,我愿意学到很多东西来找到最佳解决方案。
  • 为了避免这个问题被删除,因为我已经改写了它以避免征求个人意见,而是询问现有的例子或如何做。我也可以想象其他人可能会发现一个相当有用的解决方案。如果您可以对其进行编辑以使问题不那么主观,请这样做。
  • 如果您有任何问题或需要澄清,请随时提出。任何帮助表示赞赏。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?