• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Hanggi
V2EX  ›  程序员

你们在实际工作中用过哪些代码自动生成技术?

  •  
  •   Hanggi · Oct 26, 2020 · 8009 views
    This topic created in 2200 days ago, the information mentioned may be changed or developed.

    感觉越来越多的项目在使用代码自动生成技术。

    Dart 用 bult_value 自动生成 JSON 数据解析代码, Angular 为了简化自身概念的复杂提供了大量生成组建或模块的方法, 很多 Java 工程也在使用逆向工程技术直接生成一个模块再进行修改。

    感觉代码自动生成已经成为提高效率的重要手段,你们都用过哪些 code generation 技术?

    42 replies  •  2020-10-27 16:24:58 +08:00
    37Y37
    37Y37
    Oct 26, 2020
    1
    woodensail
    woodensail
    Oct 26, 2020
    2
    自己用 python 写的,逆向数据库生成从 moda-dtol-dao-service-controller 的全流程增删改查 java 代码。
    EscYezi
    EscYezi
    Oct 26, 2020 via iPhone
    3
    mybatis generator
    yizmaoaa
    yizmaoaa
    Oct 26, 2020
    4
    Kotlin Kapt 生成过类似 Record 的那种数据库操作的.....

    Vert.x 项目的 CodeGen,Vert.x 的多语言都是使用 CodeGen 生成的 API 。。
    monsterxx03
    monsterxx03
    Oct 26, 2020❤️1
    5
    用 yacc 做一个 sql 子集
    eason1874
    eason1874
    Oct 26, 2020
    6
    好像只做过一些循环展开
    lemonTreeTop
    lemonTreeTop
    Oct 26, 2020
    7
    用 ftl 算不算🤗
    hccsoul
    hccsoul
    Oct 26, 2020 via iPhone
    8
    人人开源
    wysnylc
    wysnylc
    Oct 26, 2020
    9
    idea get/set
    wmhx
    wmhx
    Oct 26, 2020
    10
    我见过最早的代码生成器 rapid-framework , 已经是非常好用了, 只是有些时日不更新了, 作者也不知道干啥去了.
    tikazyq
    tikazyq
    Oct 26, 2020
    11
    crawlab 中的可配置爬虫就是用 golang 来生成的 scrapy 爬虫[doge]

    其实吧,从广义来看,将高级语言编译成底层语言或机器码,也可以算做是 code generation 。在 js 中 code generation 多了去了,各种 ts 、vue 、jsx 转原生 js,现代前端基本就是建立在 code generation 上的。为什么会需要 code generation,因为需要抽象、复用、提升代码效率,KISS 原则是编写代码的基本要领。
    iseki
    iseki
    Oct 26, 2020
    12
    vert.x 自带的 Service codegen 有点简陋(?) 所以自己做了一个
    momocraft
    momocraft
    Oct 26, 2020
    13
    protobuf/grpc
    openapi
    各种宏
    isir1234
    isir1234
    Oct 26, 2020❤️1
    14
    魔改了一下 start.spring.io, 根据 sql 生成 domain, mapper, service, controller

    http://start.jiangy.me/
    Sapp
    Sapp
    Oct 26, 2020
    15
    根据接口文档自动生成 typescript 的 interface 和调接口的函数
    ReinerShir
    ReinerShir
    Oct 26, 2020
    16
    同 2 楼,目前能想到自动生成的东西也就这些
    qwerthhusn
    qwerthhusn
    Oct 26, 2020
    17
    WSDL 生成 Stub
    coderxy
    coderxy
    Oct 26, 2020
    18
    grpc 的 protoc-gen 插件
    lawler
    lawler
    Oct 26, 2020❤️1
    19
    说个认知。需要代码生成的系统(库),一定是不够抽象的系统(库)。
    可生成,意味着可模板化 -> 可抽象 -> 可动态(配置)。

    我有些自己的库,当要完成一些常用(常见)的功能时,直接调参数就能达到我想要的功能,不需要编程。
    DoctorCat
    DoctorCat
    Oct 26, 2020
    20
    @woodensail 兄弟牛逼, 能否开源出来白嫖一下子?
    Takamine
    Takamine
    Oct 26, 2020 via Android
    21
    用 python 写的直接读 excel 生成 Java 文件。_(:з」∠)_
    zunceng
    zunceng
    Oct 26, 2020
    22
    简单点的 template 复杂的上 ast
    EdwardXia
    EdwardXia
    Oct 26, 2020
    23
    @DoctorCat 哈哈哈哈哈哈问出了我想问的
    SaigyoujiYuyuko
    SaigyoujiYuyuko
    Oct 26, 2020
    24
    getter setter constructor (
    Asuka0947
    Asuka0947
    Oct 26, 2020
    25
    jpa 算吗?
    bleepbloop
    bleepbloop
    Oct 26, 2020
    26
    flask-admin, flask-graphql, grpc, openapi, orm......
    DoctorCat
    DoctorCat
    Oct 26, 2020
    27
    anltr 生成一套简单的规则语言算么。btw 我突然想起了 thrift 的 code generation 过程…
    ho121
    ho121
    Oct 26, 2020 via Android
    28
    excel
    changwei
    changwei
    Oct 26, 2020 via Android
    29
    我用 idea 的 file template,自动生成一些脚手架代码(比如 react 里面的 with router,redux 的 connect,我改好文件模板以后,新建 tsx 文件会自动包裹好这些 hoc 高阶组件然后 export )
    loshine1992
    loshine1992
    Oct 26, 2020
    30
    Android apt 生成统计代码
    yplam
    yplam
    Oct 26, 2020 via Android
    31
    后端 crud 顺便提供了 pro table 初始模板生成接口,然后顺便把简单的 crud 前端也做了。。。
    secondwtq
    secondwtq
    Oct 26, 2020 via iPhone
    32
    那可多了,包括且不限于 GCC,Clang,Babel,tsc,javac,HotSpot……
    woodensail
    woodensail
    Oct 26, 2020
    33
    @DoctorCat 还是刚工作的时候写的,早丢了。没啥技术含量。基本上就是模板生成,然后把字段名替换一下就行。
    h3nng
    h3nng
    Oct 26, 2020 via iPhone
    34
    codemodel 、gandiva
    no1xsyzy
    no1xsyzy
    Oct 26, 2020
    35
    @lawler 异议!
    抽象到极致的也可以是通过代码生成实现的,比如 Lisp 宏
    dbskcnc
    dbskcnc
    Oct 26, 2020
    36
    从 protobuf 生成 sql,grpc crud 接口
    nuk
    nuk
    Oct 26, 2020
    37
    从 sql 还有注释,生成一大堆存储过程,还是我第一次用 peg 来做语法分析
    missdeer
    missdeer
    Oct 26, 2020
    38
    jinja2, swig 做胶水层
    raaaaaar
    raaaaaar
    Oct 27, 2020 via Android
    39
    IDE 自带的算么,感觉挺好用的。
    dany813
    dany813
    Oct 27, 2020
    40
    自己定义模板
    threeEggs123
    threeEggs123
    Oct 27, 2020 via Android
    41
    shuianfendi6
    shuianfendi6
    Oct 27, 2020
    42
    tscfg
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4945 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 06:18 · PVG 14:18 · LAX 22:18 · JFK 01:18
    ♥ Do have faith in what you're doing.