对适合交互式表单的技术堆栈的建议?

问题描述

tl dlr:为 SaaS 项目寻找技术堆栈,我可以在其中有效地为用户提供交互式表单,在他们与输入字段交互时更新字段。

我有一个关于 SaaS 项目的想法,但我在决定技术堆栈方面遇到了一些困难。我不是最有经验的 Web 开发人员,但我来自一个面向对象的世界,所以当我可以用类对东西建模时,我感到非常自在。我喜欢专注于最重要的“核心”功能,我想确保我可以有效地开发它。 为了提供一些上下文,该项目是一个计算工具,它接受大量输入并具有大量输出字段。如果你愿意的话,一份关于类固醇的电子表格。实际上,作为 PoC,计算是在电子表格中完成的,这就是我想在 SaaS 解决方案中呈现的内容 - 更好。

我没有设置任何特定的语言,但愿意听听哪种语言/框架对我最有益。我最关心的是在操作模型时不必做太多繁琐的工作。无论是在前端完全处理还是在前端和后端之间来回发送。我想要一些东西,我可以轻松定义表示字段的组件/视图,并在用户与表单/输入交互时更新计算。我不想在前端和后端都复制模型。

只是为了了解我一直在尝试建模的内容,这里有一些我一直在用 Java 进行试验的示例类(同样,我没有将 Java 设置为最终语言)。不要太担心类型。这只是为了了解我希望如何在结构上建模计算并将字段联系在一起。

public abstract class Field<T> {

    protected final String name;

    public Field(String name) {
        this.name = name;
    }

    public abstract T getValue();

    public String getName() {
        return this.name;
    }
}

public class InputField<T> extends Field<T> {

    protected T value;

    public InputField(String name) {
        super(name);
    }

    @Override
    public T getValue() {
        return this.value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

public class IntegerField extends InputField<Integer> {
    public IntegerField(String name) {
        super(name);
    }
}

public class IntegerSumField extends Field<Integer> {

    private final List<InputField> fields;

    public IntegerSumField(String name,InputField... fields) {
        super(name);
        this.fields = Arrays.asList(fields);
    }

    @Override
    public Integer getValue() {
        return fields.stream().mapToInt(f -> f.getValue()).sum();
    }
}

public class CalculationSection {
    private final IntegerField input1 = new IntegerField("User Input 1");
    private final IntegerField input2 = new IntegerField("User Input 2");
    private final IntegerSumField output1 = new IntegerSumField(input1,input2);
}

在这只是一个简单的例子 - 显然真正的交易有更多的字段和部分/子计算。如果能够为 CalculationSection 声明一个视图,并为各种 Fields 拥有视图被重用 - 并且在用户交互时更新模型,那就太好了。计算应该是持久的,所以一些后端必须处理模型。

我也在寻找 SaaS 样板(不介意付费)来帮助我前进 - 我只是不知道该寻找什么,因为我不知道哪种语言/框架最适合我的用例.

我知道这很麻烦,但我已经考虑了一段时间,现在我终于决定向 SO 提出这个问题 - 很想听听您对此的建议和想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)