V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
myidea
V2EX  ›  推广

脱离 CRUD,我希望有一个开发助理

  •  5
     
  •   myidea · 2018-11-12 23:10:43 +08:00 · 6020 次点击
    这是一个创建于 2208 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写程序多年,面对工作中重复的 CRUD,我一直希望能有一个代码生成工具(开发助理),可以帮我:

    自动生成 CRUD 类的 PC 端 web 完整功能代码
    自动生成 CRUD 类的 rest 接口代码(和文档)
    自动生成 CRUD 类的移动端 web 代码
    自动生成 Excel 导入导出类的完整功能代码
    自动生成简单统计图表类的完整功能代码
    方便的维护数据库表结构及关联关系
    当数据表及关联变化时自动帮我同步修改对应代码
    

    我还希望:

    她生成的代码是高质量的,基于主流技术框架的,UI 是美观的
    她在生成功能代码前最好可以让我实时预览生成效果
    她是灵活的插件,按需启用,不侵入我的代码
    

    没有一个轮子是我们想要的,所以我们造了她: Diboot Devtools 开发助理 ( https://www.diboot.com) 。 有了她,你可以脱离重复的工作,专注于业务,提高开发质量和效率。

    历经两年的匠心打磨终于实现了初期的规划目标,今起正式上线试运行,您如何看待这样一个工具,欢迎各位 V 友留下您的宝贵建议,更欢迎有人愿意做我们的种子用户。

    37 条回复    2018-11-13 16:20:26 +08:00
    AllOfMe
        1
    AllOfMe  
       2018-11-12 23:14:53 +08:00   ❤️ 1
    只能和 MySQL 捆绑吗?是否有支持 PostgreSQL、Oracle 这一类的数据库呢?
    myidea
        2
    myidea  
    OP
       2018-11-12 23:16:43 +08:00
    @AllOfMe 目前版本仅支持 MySQL,其他数据库后续会支持。
    jin7
        3
    jin7  
       2018-11-13 00:14:23 +08:00   ❤️ 1
    不错
    jadec0der
        4
    jadec0der  
       2018-11-13 00:30:28 +08:00
    有意思,外包公司?好像很多外包公司都会自己做代码生成平台,通过配置生成系统
    masker
        5
    masker  
       2018-11-13 00:32:02 +08:00 via Android
    好像 yii 框架的脚手架 gii。
    acoin
        6
    acoin  
       2018-11-13 01:19:06 +08:00 via Android   ❤️ 1
    这么大岁数了,怎么还是 crud😜工作上有运用过 ddd,cqrs 么
    WildCat
        7
    WildCat  
       2018-11-13 05:31:27 +08:00 via iPhone
    Rails
    Cbdy
        8
    Cbdy  
       2018-11-13 06:51:29 +08:00 via Android   ❤️ 1
    代码生成是不合时宜的,比较合理的做法是:元编程,设计 DSL

    当选择代码生成的时候,说明这些代码是重复性的信息量很小的代码,甚至不应该进入版本管理仓库
    RYAN0UP
        9
    RYAN0UP  
       2018-11-13 07:59:48 +08:00 via Android   ❤️ 1
    不得不说,很赞
    zjsxwc
        10
    zjsxwc  
       2018-11-13 08:35:21 +08:00   ❤️ 2
    不太看好。。

    - 大部分 web 框架都能生成 crud

    - 也有不少专门干 crud 的框架,比如 sonata admin 抽象出了不少用于自动 crud 的概念

    - 每个公司都有自己的架构想引入楼主的框架比较难吧
    masker
        11
    masker  
       2018-11-13 08:39:21 +08:00 via Android
    @zjsxwc 赞同。
    passerbytiny
        12
    passerbytiny  
       2018-11-13 08:47:46 +08:00   ❤️ 1
    本来还想说“你长得真美”,然后看到了推广。

    @Livid 有人发错节点了,应该分享创造或者推广节点的
    wbrobot
        13
    wbrobot  
       2018-11-13 08:47:54 +08:00
    你能开发个 php 版的我就用!
    zongren
        14
    zongren  
       2018-11-13 08:50:58 +08:00
    @acoin 你说的跟 crud 冲突了吗?
    sagaxu
        15
    sagaxu  
       2018-11-13 08:55:35 +08:00 via Android
    没有 crud 需求
    ldbmcs
        16
    ldbmcs  
       2018-11-13 08:56:03 +08:00   ❤️ 1
    点击生成初始项目,填写了参数之后,点击提交,居然没得任何响应
    chocotan
        17
    chocotan  
       2018-11-13 09:10:35 +08:00   ❤️ 1
    支持,正缺这东西
    myidea
        18
    myidea  
    OP
       2018-11-13 09:24:45 +08:00
    @masker 是有参照 gii,php 开发挺好的代码生成框架,目前的自动化程度比 gii 要高不少了
    myidea
        19
    myidea  
    OP
       2018-11-13 09:25:59 +08:00   ❤️ 1
    @acoin cqrs 适合分布式的场景,我们目前版本只是单体应用的解决方案,分布式是下一步的规划
    airyland
        20
    airyland  
       2018-11-13 09:26:07 +08:00
    内部做了个 node 的,数据库主要用 postgres,服务端框架用 eggjs。
    myidea
        21
    myidea  
    OP
       2018-11-13 09:27:30 +08:00
    @zjsxwc 已有项目是不建议使用的,引入两个框架反而增加了复杂度,新的项目可以尝试一下
    myidea
        22
    myidea  
    OP
       2018-11-13 09:28:13 +08:00
    @wbrobot php 有 yii
    myidea
        23
    myidea  
    OP
       2018-11-13 09:36:20 +08:00
    @ldbmcs 感谢反馈,已修复
    TommyLemon
        24
    TommyLemon  
       2018-11-13 09:55:18 +08:00   ❤️ 2
    @Cbdy
    @zjsxwc
    对的,生成静态代码,那就会有很多不符合业务需求的代码要做二次开发了,而且也基本只能在新需求用。
    已经开发过的需求,如果再用新生成的代码覆盖肯定不行,往往因为业务逻辑也不能简单地替换已分散的代码。

    貌似真的只有 DSL 才能做到完全自动化了,后端不写代码就能自动化解析前端传的参数。
    https://github.com/TommyLemon/APIJSON/

    不过楼主的思考、总结、实践是很值得鼓励的。
    bk201
        25
    bk201  
       2018-11-13 09:57:40 +08:00   ❤️ 1
    这类东西太多了,其实真正需要的是组件化的产品,前端框架,后端框架等等都可以轻易替换的,而不是全家桶
    TommyLemon
        26
    TommyLemon  
       2018-11-13 09:59:18 +08:00
    @TommyLemon
    这两个功能看起来不错:
    自动生成 Excel 导入导出类的完整功能代码
    自动生成简单统计图表类的完整功能代码
    dany813
        27
    dany813  
       2018-11-13 10:01:21 +08:00   ❤️ 1
    看起来很不错
    TommyLemon
        28
    TommyLemon  
       2018-11-13 10:06:00 +08:00
    @TommyLemon 看了视频,UI 很棒
    TommyLemon
        29
    TommyLemon  
       2018-11-13 10:06:14 +08:00
    看了视频,UI 很棒
    myidea
        30
    myidea  
    OP
       2018-11-13 10:16:50 +08:00
    @Cbdy @TommyLemon 同意你的观点,完全的自动化要做再往上一层的抽象,接口换成类似 GraphQL 的实现,这个是我们下一步想做的。目前的自动生成和修改静态代码方案是给开发者的工具,让多数企业里的 Java 开发者能够掌控的这个方案。
    @TommyLemon APIJSON 也是类似 GraphQL 的实现方案吧,我们可以深入交流一下 :)
    myidea
        31
    myidea  
    OP
       2018-11-13 10:20:21 +08:00
    @bk201 目前生成代码只依赖我们的一个基础框架,没有框架生成代码相当于没有做任何封装的代码堆积,企业开发或多或多都有自己的封装的,我们的基础框架已经做到了不错的封装。
    mdluo
        32
    mdluo  
       2018-11-13 10:21:25 +08:00 via iPhone
    看到这个 UI 就已经没有兴趣了,参考一下 graphcool 和 prisma,同样是跟数据库和接口打交道的开源软件商业化产品
    TommyLemon
        33
    TommyLemon  
       2018-11-13 10:27:04 +08:00
    @myidea
    GraphQL 只是一个自动合并请求的工具,支持自动过滤字段,但 CRUD 还是得使用者自己实现的。
    两者协议确实比较像,但在 实现过程 和 使用效果 上差别巨大,在 CURD 上 APIJSON 远胜 GraphQL。
    https://juejin.im/post/5ae80edd51882567277433cf
    Livid
        34
    Livid  
    MOD
       2018-11-13 12:22:00 +08:00
    @passerbytiny 谢谢举报。已经移动到 /go/promotions
    looseChen
        35
    looseChen  
       2018-11-13 13:13:50 +08:00   ❤️ 1
    很 nice,ui 也喜欢
    looseChen
        36
    looseChen  
       2018-11-13 13:14:38 +08:00
    很好奇你们开发人员如何读这个 diboot ?!
    myidea
        37
    myidea  
    OP
       2018-11-13 16:20:26 +08:00
    @looseChen "嘀 boot" 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1392 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:34 · PVG 01:34 · LAX 09:34 · JFK 12:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.