先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注go)
正文
使用 gen service 自动生成代码
注意:该功能特性从goframe v2.1版本开始提供。
基本介绍
设计背景
在业务项目实践中,业务逻辑封装往往是最复杂的部分,同时,业务模块之间的依赖十分复杂、边界模糊,无法采用Golang包管理的形式。
如何有效管理项目中的业务逻辑封装部分呢?对于每个采用Golang开发的项目都是必定会遇到的难题。
设计目标
增加logic分类目录,将所有业务逻辑代码迁移到logic分类目录下,采用包管理形式来管理业务模块。
业务模块之间的依赖通过接口化解耦,将原有的service分类调整为接口目录。这样每个业务模块将会各自维护、更加灵活。
可以按照一定的项目规范,从logic业务逻辑代码生成service接口定义代码。
同时,也允许人工维护这部分service接口。
命令使用
gf gen service
命令通过分析给定的logic业务逻辑模块目录下的代码,自动生成service目录接口代码。
需要注意:
- 由于该命令是根据业务模块生成service接口,因此只会解析二级目录下的go代码文件,并不会无限递归分析代码文件。以logic目录为例,该命令只会解析logic/xxx/*.go文件。因此,需要logic层代码结构满足一定规范。
- 不同业务模块中定义的结构体名称在生成的service接口名称时可能会重复覆盖,因此需要在设计业务模块时保证名称不能冲突。
手动模式
手动执行(不建议)
如果是手动执行命令行,直接在项目根目录下执行 gf gen service 即可。
$ gf gen service -h
USAGE
gf gen service [OPTION]
OPTION
-s, --srcFolder source folder path to be parsed. default: internal/logic
-d, --dstFolder destination folder path storing automatically generated go files. default: internal/service
-f, --dstFileNameCase destination file name storing automatically generated go files, cases are as follows:
Case | Example |
---|---|
Lower | anykindofstring |
Camel | AnyKindOfString |
CamelLower | anyKindOfString |
Snake | any_kind_of_string |
SnakeScreaming | ANY_KIND_OF_STRING |
SnakeFirstUpper | rgb_code_md5 |
Kebab | any-kind-of-string |
KebabScreaming | ANY-KIND-OF-STRING |
-w, --watchFile used in file watcher, it re-generates all service go files only if given file is under | |
srcFolder | |
-a, --stPattern regular expression matching struct name for generating service. default: ^s([A-Z]\w+)$ | |
-p, --packages produce go files only for given source packages | |
-i, --importPrefix custom import prefix to calculate import path for generated importing go file of logic | |
-l, --clear delete all generated go files that are not used any further | |
-h, --help more information about this command |
EXAMPLE
gf gen service
gf gen service -f Snake
参数说明:
自动模式(强烈建议)
如果你是使用的GolandIDE,那么可以使用官方提供的配置文件:watchers.xml 自动监听代码文件修改时自动生成接口文件。使用方式,如下图:
自动模式配置教程
1. 引入官方提供的配置文件
建议在使用Goland IDE时,使用官方提供的配置文件:watchers.xml
watchers.xml下载地址:https://goframe.org/pages/viewpage.action?pageId=49770772&preview=/49770772/49770777/watchers.xml
2. 编写业务逻辑代码
3. 生成接口及服务注册文件
如果你已经按照步骤1做好了watchers.xml
的配置,那么这一步可以忽略。因为在我们编写代码的时候,service便同时生成了接口定义文件。
如果没有配置,我们每次编写logic业务模块后,都需要手动执行一下 gf gen service
命令。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
p1024b (备注Go)**
[外链图片转存中…(img-fymox5LB-1713435490450)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!