问题描述
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 (将#修改为@)