一个好的 curd 代码生成器,应该长什么样

2020-03-10 10:27:45 +08:00
 vevlins

用来 curd 的代码生成器有很多,我觉得有以下问题比较难解决:

  1. 很多业务逻辑需要在 curd 之外做一点修改,比如加一个参数校验,在完成后做一些后置操作,或者满足某种条件才可以进行,甚至于多表事务。很难预留出灵活的插口。

  2. 如果进行了一定程度的修改,再跑一次会覆盖掉修改的代码。其实我想表达的意思是这些修改后的代码往往就不再具备创建时的结构性的,不利于后续的拓展。

你们有接触过比较好的工具吗,或者一些 web 框架自带 /第三方生成器也可以作为参考。

5541 次点击
所在节点    程序员
30 条回复
maichael
2020-03-10 10:39:16 +08:00
人肉生成器
vevlins
2020-03-10 10:40:14 +08:00
@maichael 只需要圈养几个码农,成本偏低😂
zhaorunze
2020-03-10 10:46:47 +08:00
封装,借助 mybatis-plus,单表增删改查文件不需要新建,sql 语句不需要自己写
lhx2008
2020-03-10 10:49:18 +08:00
业务逻辑也能生成?如果楼主说的是 mybatis 那种,用个真正的 ORM 框架就可以了
aaaafei
2020-03-10 10:57:10 +08:00
一个鼻子,两个眼睛,一张嘴,两只手,大概像个人样
vevlins
2020-03-10 10:58:56 +08:00
作为一个兼职做管理端后台的前端,没学过 java,现在都是用 go,看来从生态上 go 落后 java 好几个年代
967182
2020-03-10 11:04:04 +08:00
能不能生成五彩斑斓的黑啊?不能就不算好 [狗头]
ggicci
2020-03-10 11:09:46 +08:00
让产品经理写接口文档,然后从接口文档生成代码。
codeloster
2020-03-10 11:11:48 +08:00
小爱同学,生成注册表单,详情参考某某网站
baobao1270
2020-03-10 11:16:23 +08:00
class BaseController{
function Create(args){ Model.Create(args) }
function Update(args){ Model.Update(args) }
function Read(args){ Model.Read(args) }
function Delete(args){ Model.Delete(args) }
}

(开个玩笑,别当真)
leechen
2020-03-10 11:23:50 +08:00
为什么要生成代码,直接生成接口不是很好么~~~~~taiwutech.com
guxingke
2020-03-10 11:25:23 +08:00
生成的代码需要有扩展点 , 提供默认的扩展实现, 但是允许开发者扩展.

func dosomething(args) {
// pre hook
doSomethingHook.preHook(args)

{
generate biz code.
}

// post hook
doSomethingHook.postHook(args)
}
zjsxwc
2020-03-10 11:26:21 +08:00
参考各种语言的 web admin 框架
ericls
2020-03-10 11:57:02 +08:00
应该不生成代码。生成代码 你维护吗? 就算别人改了你也能维护吗?
nl101531
2020-03-10 12:18:53 +08:00
我来帮你写个 JB 插件吧。。。话说有的话,你愿意付费吗?
lululau
2020-03-10 12:24:02 +08:00
Rails ActiveRecord 这样的吧
vevlins
2020-03-10 12:27:01 +08:00
@nl101531 不愿意,本来就是想通过写一个或者研究一个提升自己的能力,花钱买来干啥
liukangxu
2020-03-10 14:47:59 +08:00
Bond -> Logic -> Service

在 Bond 中用注释控制是否生成对应 CURD Logic 和 Service
lidashuang
2020-03-10 14:56:06 +08:00
rails
passerbytiny
2020-03-10 15:01:56 +08:00
curd 生成器无所谓好坏,因为它总是坏的,原因你自己都分析出来了。

curd 生成器并不是 Java 的亮点,而是污点,不要羡慕。

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

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

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

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

© 2021 V2EX