goland2022 使用教程(GoLand实用技巧)
goland2022 使用教程(GoLand实用技巧)新增文件添加注释比较简单,在GoLang->Perferances->Editor->File and Code Templates中,对Go File进行修改即可。func Show(ctx context.Context) (resp *baseinfo.ShowResponse err error) { req := &baseinfo.ShowRequest{ } resp err = .Show(ctx req) if err != nil { logs.CtxError(ctx "[rpc] Show err: % v" err) return nil err } logs.CtxInfoKvs(ctx "[rpc] Show resp:%v" re
工欲善其事必先利其器,把GoLand调教的符合自己的习惯,也是能够节省大量时间的。本篇文章主要记录自己常用的一些配置内容。
1.代码前进后退功能查看代码时,经常会在多个文件或者函数间跳转,如果想回到上一个查看位置,可以使用此功能
该栏默认不显示,需要进行配置,配置位置为:View->Appearance->Toolbar
Go代码需要配套写单元测试,但单元测试的框架是定的,如果每次重复写架子很浪费时间,GoLand提供了自动生成单元测试功能。在Code->Generate中,可以按照需求选择生成哪些测试代码。
有些代码只是名字不同,但是结构是完全相同的,对于这种代码也没有每次编写拷贝的必要。我们可以使用代码模板功能。在GoLang->Perferances->Editor->Live Templates->Go中进行配置。
配置过程中需要起名(用于调用使用)、写描述、写模板内容,模板中需要设置变量,变量的获取可以通过Edit variables配置。
func $FUNC$(ctx context.Context) (resp *$BASE$.$FUNC$Response err error) {
req := &$BASE$.$FUNC$Request{
}
resp err = $CLIENT$.$FUNC$(ctx req)
if err != nil {
logs.CtxError(ctx "[rpc] $CLIENT$ $FUNC$ err: % v" err)
return nil err
}
logs.CtxInfoKvs(ctx "[rpc] $CLIENT$ $FUNC$ resp:%v" resp)
if resp.BaseResp.StatusCode != 0 {
logs.CtxError(ctx "[rpc] $CLIENT$ $FUNC$ status error: % v" resp.BaseResp)
err = fmt.Errorf(resp.BaseResp.StatusMessage)
return nil err
}
return resp nil
}
配置完成后,只要粘贴板里有内容,就能自动生成代码,如粘贴板内容为Show,调用rpccreate后的结果:
func Show(ctx context.Context) (resp *baseinfo.ShowResponse err error) {
req := &baseinfo.ShowRequest{
}
resp err = .Show(ctx req)
if err != nil {
logs.CtxError(ctx "[rpc] Show err: % v" err)
return nil err
}
logs.CtxInfoKvs(ctx "[rpc] Show resp:%v" resp)
if resp.BaseResp.StatusCode != 0 {
logs.CtxError(ctx "[rpc] Show status error: % v" resp.BaseResp)
err = fmt.Errorf(resp.BaseResp.StatusMessage)
return nil err
}
return resp nil
}
3.注释
写代码写注释是个好习惯,讲一下如何方便添加文件注释和函数注释。
3.1新文件注释新增文件添加注释比较简单,在GoLang->Perferances->Editor->File and Code Templates中,对Go File进行修改即可。
GoLand自身对于函数注释支持的不是很好,但好在市面上有很多不错的插件,这里推荐goanno,在GoLang->Perferances->Plugins中可以安装
安装完成之后,在函数上方使用快捷键control commond / 便能自动生成函数注释,如:
/**
* @Author: ***
* @Description:
* @param a
* @return b
*/
func test(a int) (b int) {
return 0
}
如果对于自动生成的内容不满意,可以进行编辑,修改位置为Tools->Goanno Setting:
- https://blog.csdn.net/u010243725/article/details/110726943
- https://www.jianshu.com/p/964e5b0c4b7a
- https://blog.csdn.net/wzbwzh/article/details/105859498
大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)
我的个人博客为:https://shidawuhen.github.io/
往期文章回顾:
招聘
- 字节跳动|抖音电商服务端技术岗位虚位以待
- 字节跳动招聘专题
设计模式
- Go设计模式(6)-单例模式
- Go设计模式(5)-类图符号表示法
- Go设计模式(4)-代码编写优化
- Go设计模式(4)-代码编写
- Go设计模式(3)-设计原则
- Go设计模式(2)-面向对象分析与设计
- Go设计模式(1)-语法
语言
- Go工具之generate
- Go单例实现方案
- Go通道实现原理
- Go定时器实现原理
- Beego框架使用
- Golang源码BUG追查
- Gin框架简洁版
- Gin源码剖析
架构
- 支付接入常规问题
- 限流实现2
- 秒杀系统
- 分布式系统与一致性协议
- 微服务之服务框架和注册中心
- 浅谈微服务
- 限流实现1
- CDN请求过程详解
- 常用缓存技巧
- 如何高效对接第三方支付
- 算法总结
存储
- MySQL开发规范
- Redis实现分布式锁
- 事务原子性、一致性、持久性的实现原理
- InnoDB锁与事务简析
网络
- HTTP2.0基础教程
- HTTPS配置实战
- HTTPS连接过程
- TCP性能优化
工具
- 根据mysql表自动生成go struct
- Markdown编辑器推荐-typora
读书笔记
- 原则
- 资治通鉴
- 敏捷革命
- 如何锻炼自己的记忆力
- 简单的逻辑学-读后感
- 热风-读后感
- 论语-读后感
- 孙子兵法-读后感
思考
- 为动员一切力量争取抗战胜利而斗争
- 反对自由主义
- 实践论
- 评价自己的标准
- 服务端团队假期值班方案
- 项目流程管理
- 对项目管理的一些看法
- 对产品经理的一些思考
- 关于程序员职业发展的思考
- 关于代码review的思考