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

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

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

8917 次点击
所在节点    程序员
89 条回复
snowydec
2019-12-29 10:31:51 +08:00
spring data jpa
lhx2008
2019-12-29 10:40:25 +08:00
有 SAAS 层面的,像 ps 一样拖拖东西也能做网站。还有就是之前 v2 有个老哥一直在吹的 json 到 mysql 的框架。
其实问题主要是 curd 不是真的 curd,需求很多是细化的东西
wysnylc
2019-12-29 10:43:00 +08:00
curd 是解析产品业务后的基本实现,所有开发的痛点是实现业务而不是单纯的 curd,不要本末倒置
22yune
2019-12-29 10:43:58 +08:00
@snowydec 我想问的核心是业务模型的抽象方法,抽象出模型后,前后端是没有限制的,不一定是基于数据库的持久化。
vultr
2019-12-29 10:44:34 +08:00
工具可以简化 CURD boys 的工作,但是代掉 CURD boys,应该是行不通的。

CURD boys 还是很重要的,他们决定了细节。
22yune
2019-12-29 10:48:34 +08:00
@lhx2008
@wysnylc
我想问的核心是业务模型的抽象方法。模型不是单纯的 curd,还有业务逻辑(模型之前互动关系?)我就是想解析出产品业务,描述出业务模型,产品就实现了。不需要 curd 重复再做一遍。
22yune
2019-12-29 10:50:28 +08:00
@vultr
我是希望能细节形式标准化,同一种形式的细节不用为这个业务实现一遍,为另一个又重复实现。
22yune
2019-12-29 10:51:47 +08:00
@22yune 就像是主题一样 细节可以改 但标准的或者说 典型的能默认适配。
gowk
2019-12-29 10:53:18 +08:00
低代码开发平台?
loading
2019-12-29 10:56:28 +08:00
你可能是忽略了后端安全的部分问题,我觉得 orm 已经很好地简化了 crud。
3dwelcome
2019-12-29 11:01:19 +08:00
@22yune 业务逻辑如果是可批量复制的,那么 curd boy 自己都能抽象出来一套快速开发流程。
可惜,外包多了,你就会发现客户需求千奇百怪。并不是查询数据显示数据那么简单。
有外包公司人统计过,只有 50%的前端页面是可批量抽象的,剩下一半还是需要人海战术。
hantsy
2019-12-29 11:01:41 +08:00
大部分业务系统不止是 CRUD 那么简单。

这个以前建模为基础的开发方式,十几前的确很流行,比如 MDA 架构等,有太多的工具可以做这些事,比如 IBM,Borland 等都提供这方面的可视工具。但现在几乎这些大厂都放弃这些产品。

自从我放弃建模工具(比如 Rational,Together,Powerbuilder 等)后,我对这些 MDA 不再有兴趣,它们根本带不来开发效率,生成一堆垃圾代码,看似节约了时间,后期要在生成的代码上加上自己的逻辑就有吃屎的感觉,如果要清理那些垃圾代码需要大量时间。

目前基于 Spring 代码生成器还有一个比较流行,Jhipster,可以用来快速的建产品原型。真正长期的产品开发,还是慎用吧。
676529483
2019-12-29 11:04:33 +08:00
控制逻辑好复制,像 admin、各种静态生成器、被喷的 apijson,都在做这个层面的事情;还有一个目前不好取代的是,业务逻辑,这个可能需要像耗子哥说的那种更加高级的语言,简单操作就能生成代码的来做了
vanillaxxx
2019-12-29 11:05:10 +08:00
感觉业务模型千变万化这个得先抽象出来才能搞一个这样的东西吧……然而现实中几乎做不到
22yune
2019-12-29 11:12:44 +08:00
@loading 安全可能是个问题。但现阶段还在思考可行性,安全性还未做考虑。我觉得这个场景下安全性对可行性不会造成阻碍。
cedoo22
2019-12-29 11:12:53 +08:00
参考 lombok, 能够根据注释, 自定义添加生成你要的 crud 的 java class 文件。
比如,lombok 中:
@Data 可以把 public class User{private String name,private Integer age;} 自动转换成包含 getter setter toString()的 POJO 类的 class 文件。
具体到项目中, 就需要你自定义一套实用于自己项目的 lombok 了。
Java 6 开始,支持 JSR 269: Pluggable Annotation Processing API ( https://www.jcp.org/en/jsr/detail?id=269)
这个 JSR 可以支持编译过程中,修改抽象语法树,进而修改最终生成的 class。
22yune
2019-12-29 11:15:45 +08:00
@3dwelcome 额。。感谢回复!但我觉得你说的话 好像某种模式----那种没有实际内容的
chenshun00
2019-12-29 11:17:27 +08:00
数据流引擎,这种已经出现了 ,flowable , 但是这个只是一个引擎,如果你需要给用户使用还是需要做一些改造的,如果仅仅是 curd,其实很简单,用户建表,用户输入数据,用户查数据,改数据,只要实现这个就可以了,但是你要加入业务的规则就相对麻烦了。
tt67wq
2019-12-29 11:19:23 +08:00
CURD boys 想打死你!
WildCat
2019-12-29 11:27:49 +08:00
Rails Scaffold

https://guides.rubyonrails.org/v3.2/getting_started.html#getting-up-and-running-quickly-with-scaffolding

同样的框架上面诞生了 Basecamp, GitHub, Airbnb, Twitter, Product Hunt...

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

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

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

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

© 2021 V2EX