Golang Go语言中的代码生成器 gogen
Golang Go语言中的代码生成器 gogen
最近写项目时老是要用 Set 这个结构,但是 Go 没有 Generics,每次都得重复写一些东西。所以写了个带 WebUI 界面的代码生成器: https://creatcodebuild.github.io/gogen/
代码在: https://github.com/CreatCodeBuild/gogen
弱弱地说一句,我平时也在教课。想学编程的同学加我微信:we1070494510
更多关于Golang Go语言中的代码生成器 gogen的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang Go语言中的代码生成器 gogen的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
……老实说,我觉得这个项目浪费了这个名字呀。
乐于当老师挺好的,但是这个水平做老师,感觉早了点
我还以为是这种…
https://github.com/dave/jennifer
不过楼主你也可以看看人家的代码生成器是啥样的
项目应该叫 gogenset
既然写 go,用户名还是别用驼峰吧,看着太难受了,也容易遇到问题
虽然不知道什么场景会用到,但是收藏了。
很多地方能用啊,比如不想用反射,需要泛型什么的
哲的王?好像 B 站上刚看到这个
我在写这个之前看了的。和我的需求不吻合。我写这个是完全为了融入到我的 workflow。
没懂什么意思?你是说我的 V2EX 用户名?
一开始我觉得,不能随意诋毁别人的劳动成果,直到我点开源码,看到全是字符串拼接
多说一句,最近好多 B 站的编程教学,看得我想砸电脑 :)
基于 js 字符串格式化的代码生成,不但不能保证生成的代码符合 Go 词法不说,正常情况下还线程不安全😂😂😂
我大概看了一遍 都是生成 golang 代码的 暂时还不知道 怎么实现你说的,替代反射。
#14 随便举个例子,把一个特定的结构体序列化成 json 字符串最高效的办法是啥?肯定是硬编码,硬编码直接手写很麻烦,维护性也不高。这个时候代码生成器就可以用了。
我想了下,代码生成器一个是需要性能比较重要的场景。不然大部分语言内部逻辑跟反射应该都可以实现。 还有一个就是比较成熟的框架,大部分增删改查模式比较固定的时候,也可以用代码生成器生成大量重复代码。
嗯 第一点 golang 结构体 json 化 后面加 tag 的确很麻烦,而且多数变量首字母还得大写(不知道是不是你的意思)
第二点 php 反射就很流弊 一个文件的类 函数 变量都能通过反射获得并打印(据我目前的 golang 水平 go 这点貌似不好实现)
第三点 这一点很好理解 就是我前面说的 生成代码。
另外,多谢解答。
多谢你的解答。是的,我写这个工具的应用场景几乎和你说的一模一样。
另外几位站友说的也没错,这个工具目前就是 JS 字符串生成而已。然后我再复制粘贴,但是对于我来说已经够了。就类似于 https://mholt.github.io/json-to-go/ , 也是 JS 生成而已。但是已经足以起到提高工作效率的作用。它并不是 automation 的一部分。
因为工具是从我本身的 App 的一部分抽出来的( App 本身的测试是完全过关的),所以作为独立工具来说,当然还没有测试和语法检索等。所以我先放出来,如果真的其他人有这个需求,或者我自身的需求变多变频繁,我也会提高这个工具的工程质量。
在Golang(Go语言)生态系统中,代码生成器 gogen
是一种强大的工具,它能够通过自动化手段生成Go代码,从而提高开发效率,减少手动编码的错误。尽管 gogen
本身不是一个官方或广泛认可的特定工具名(可能指的是一类工具或自定义脚本),但代码生成的概念在Go社区中非常受欢迎。
通常,代码生成器会基于模板、注解(annotations)或特定的配置文件来生成代码。例如,它们可以从数据库模式生成数据访问层(DAL)代码,或从接口定义生成服务端和客户端代码。
使用代码生成器的优势包括:
- 提高生产力:自动生成重复性的代码,让开发者专注于业务逻辑。
- 减少错误:避免了手动编写模板化代码时可能出现的错误。
- 一致性:确保生成的代码风格一致,符合项目规范。
- 快速迭代:在API或数据模型变化时,可以快速重新生成代码,减少维护成本。
在Go语言中,实现代码生成通常依赖于反射、模板引擎(如 text/template
或 html/template
包)以及解析和处理注解的能力。如果你想在项目中引入代码生成,可以考虑使用现有的工具如 protoc-gen-go
(用于Protocol Buffers)、swagger-codegen
(用于OpenAPI规范)或自定义脚本,以满足特定需求。
总之,代码生成器是Go开发中提升效率和质量的重要工具,值得根据项目需求进行探索和采用。