我思考创造一种替代掉 CURD boys 来提高质量与效率的系统。请问有类似的系统吗?或这个想法可行吗?

2019-12-29 10:23:00 +08:00
 22yune

类似 class 与 jvm 的一种定义模型的规范。想象一下,定义一个 JAVA 对象,用 jvm 解释运行执行业务逻辑,用另一个解释器运行生成前端显示。将这两个解释器合成一个解释器就可以生成前端显示同时能驱动业务逻辑。 class 是一种类比,就像上面想象的形式。如果有一种模型定义规范,将业务的模型定义出来,在上面的前后端一体的解释器下就等于定义了业务系统。 https://www.v2ex.com/t/632780#reply11 请查看我前两天的一个提问,这个问题是一个变形。

8930 次点击
所在节点    程序员
89 条回复
hantsy
2019-12-29 11:34:44 +08:00
我想起以前一个 Spring 子项目,Spring Roo,超强的代码生成器,后来 Spring 官方放弃了,有第三方接手,不过现在看来也是没有什么进度。
https://github.com/hantsy/spring-sandbox/blob/master/roo/log.roo

另外 JBoss 下也有一个类似的工具,Forge,现在关注的人也不多。
hantsy
2019-12-29 11:38:17 +08:00
@WildCat Rails 影响了太多的软件工具,Spring Roo,JBoss Forge 本身可以说是克隆。 这类工具,对于早期的产品原型构建可能有一定的作用。现在的 Twitter,Github,Airbnb 等,我相信和这个 Scaffold 工具没一毛钱的关系。
leishi1313
2019-12-29 11:46:03 +08:00
计算机也开始有民科了?
22yune
2019-12-29 11:52:29 +08:00
@hantsy 感谢回复!我的想法与 mda 非常类似,甚至可以说一样--模型驱动。我粗略看了一下,mda 的模型与我设想的不太一样,我想的模型包括业务逻辑,逻辑基于模型之间的关系,与显示相关的也应该是模型内部的形式。
就像指令集基于几种类型的指令就可以完全表达各种各样的程序过程,我思考有没有可能基于模型表达业务逻辑的类似指令集(不一定是指令,可能是一种声明,指令我觉得有一种过程性的动作含义),如果能建立,那模型表达应该会是明确的清晰的。如果业务逻辑不是基于模型的,或者定义规则复杂难明的,我理解会出现你说的生成代码形式的问题。
FeifeiJin
2019-12-29 11:55:40 +08:00
很多的,比如现在流行的 low code 平台。
氚云,简道云,airtable 等。
把 curd 和通用业务逻辑封装后,普通业务员拖拽实现需求。
22yune
2019-12-29 11:57:51 +08:00
@676529483 是的 我也感觉最大的难点可能就在于基于模型的业务逻辑表达抽象。
22yune
2019-12-29 12:05:23 +08:00
@cedoo22 感谢回复!你说的 lombok 和 jsr 我接触过(不喜欢 lombok )。我想的是一个 class 经过 jvm 能解释成前台显示也能驱动里面的方法。或者经过不同的 jvm,有些解释成某种的前端显示,有些是另一种前端显示,有些是某种后端技术(包括持久化支持),有些是另一种后端技术。
22yune
2019-12-29 12:20:28 +08:00
@WildCat 感谢回复!看了一点,虽然 model 中有基础的 curd,但感觉跟其它语言的框架(上面有些回复说的)思想或方法类似。
cedoo22
2019-12-29 12:23:36 +08:00
@22yune jvm 生成前端,这个要自定义 jvm 吧。 目前,我是用 freemarker 根据数据库表 自动生成的前端页面。
wangkun025
2019-12-29 12:26:46 +08:00
砸场子啊。
无脑回复:不可行。
cedoo22
2019-12-29 12:28:28 +08:00
@22yune class 经过 JVM ,这不就是 servlet 吗?只不过 controller 加个 判断, 是产生 servlet 还是或者是交给 处理类。
alvinbone88
2019-12-29 12:39:52 +08:00
GWT?这东西早就被 Google 放弃了
otakustay
2019-12-29 12:40:24 +08:00
wordpress ?
22yune
2019-12-29 12:41:10 +08:00
@cedoo22 感谢回复!
你说的是我类比中表达的意思。
只是这么做是行不通的,因为用 JAVA 写的还是面向对象或面向过程的思维方式。我想的业务模型定义更多可能是声明式定义(也有面向模型的过程)。这样写出来的 JAVA 代码是没办法反向出业务模型的。就算能反向也不行,这个模式转换太复杂。我想的是基于业务模型的定义即用于显示也用于驱动业务逻辑,就像你说的 servlet 一样。我想要的是通用的,servlet 不是通用的。
qinglizi4869
2019-12-29 12:52:02 +08:00
crud boy 做错了什么,就要丢饭碗 o(╥﹏╥)o
22yune
2019-12-29 12:53:16 +08:00
@FeifeiJin
@gowk
是的 基于这种平台的启发,想更进一步的方法。我在形式上看到了可能,简单情况可能就是这种平台的通用版。我在思考一种可扩展、通用规范的实现方案。
wolfie
2019-12-29 12:53:41 +08:00
非开发人员鼠标点点拖拖配置的 CRUD 功能,还能集成流程还有表关联,市面上很多这种平台,通病就是性能极差。
cedoo22
2019-12-29 13:00:45 +08:00
@22yune 这种需求 , 确实无法做成通用的 , 只能是项目内部定制化, 细化一下、做成工具包。
如果是实现功能,更多的还是通过生成 代码,而不是生成 ‘处理器’。
takemeh
2019-12-29 13:07:11 +08:00
@qinglizi4869 #35 把他们解救出来从事更有意义的事
22yune
2019-12-29 13:14:04 +08:00
@cedoo22 最终应该还是不同技术的代码,'处理器'是另一个层面的解释器或者说可能是代码生成器,处理器支持的语义多一点,模型定义就更丰富一点。抽象出形式,使形式能复用。处理器就能解释成各种具体技术实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/633251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX