GoLand实用技巧

工欲善其事必先利其器,把GoLand调教的符合自己的习惯,也是能够节省大量时间的。本篇文章主要记录自己常用的一些配置内容。

1.代码前进后退功能

查看代码时,经常会在多个文件或者函数间跳转,如果想回到上一个查看位置,可以使用此功能

在这里插入图片描述
该栏默认不显示,需要进行配置,配置位置为:View->Appearance->Toolbar

在这里插入图片描述

2.代码自动生成

2.1单元测试代码

Go代码需要配套写单元测试,但单元测试的框架是定的,如果每次重复写架子很浪费时间,GoLand提供了自动生成单元测试功能。在Code->Generate中,可以按照需求选择生成哪些测试代码。

在这里插入图片描述
在这里插入图片描述

2.2函数代码

有些代码只是名字不同,但是结构是完全相同的,对于这种代码也没有每次编写拷贝的必要。我们可以使用代码模板功能。在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进行修改即可。

在这里插入图片描述

3.2函数注释

GoLand自身对于函数注释支持的不是很好,但好在市面上有很多不错的插件,这里推荐goanno,在GoLang->Perferances->Plugins中可以安装

plugin.png
安装完成之后,在函数上方使用快捷键control + commond + / 便能自动生成函数注释,如:

/**
 * @Author: ***
 * @Description:
 * @param a
 * @return b
 */
func test(a int) (b int) {
   return 0
}

如果对于自动生成的内容不满意,可以进行编辑,修改位置为Tools->Goanno Setting:
在这里插入图片描述
在这里插入图片描述

资料

  1. https://blog.csdn.net/u010243725/article/details/110726943
  2. https://www.jianshu.com/p/964e5b0c4b7a
  3. https://blog.csdn.net/wzbwzh/article/details/105859498

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

招聘

  1. 字节跳动|抖音电商服务端技术岗位虚位以待
  2. 字节跳动招聘专题

设计模式

  1. Go设计模式(6)-单例模式
  2. Go设计模式(5)-类图符号表示法
  3. Go设计模式(4)-代码编写优化
  4. Go设计模式(4)-代码编写
  5. Go设计模式(3)-设计原则
  6. Go设计模式(2)-面向对象分析与设计
  7. Go设计模式(1)-语法

语言

  1. Go工具之generate
  2. Go单例实现方案
  3. Go通道实现原理
  4. Go定时器实现原理
  5. Beego框架使用
  6. Golang源码BUG追查
  7. Gin框架简洁版
  8. Gin源码剖析

架构

  1. 支付接入常规问题
  2. 限流实现2
  3. 秒杀系统
  4. 分布式系统与一致性协议
  5. 微服务之服务框架和注册中心
  6. 浅谈微服务
  7. 限流实现1
  8. CDN请求过程详解
  9. 常用缓存技巧
  10. 如何高效对接第三方支付
  11. 算法总结

存储

  1. MySQL开发规范
  2. Redis实现分布式锁
  3. 事务原子性、一致性、持久性的实现原理
  4. InnoDB锁与事务简析

网络

  1. HTTP2.0基础教程
  2. HTTPS配置实战
  3. HTTPS连接过程
  4. TCP性能优化

工具

  1. 根据mysql表自动生成go struct
  2. Markdown编辑器推荐-typora

读书笔记

  1. 原则
  2. 资治通鉴
  3. 敏捷革命
  4. 如何锻炼自己的记忆力
  5. 简单的逻辑学-读后感
  6. 热风-读后感
  7. 论语-读后感
  8. 孙子兵法-读后感

思考

  1. 反对自由主义
  2. 实践论
  3. 评价自己的标准
  4. 服务端团队假期值班方案
  5. 项目流程管理
  6. 对项目管理的一些看法
  7. 对产品经理的一些思考
  8. 关于程序员职业发展的思考
  9. 关于代码review的思考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值