五个goland进行go开发的小技巧
五个goland进行go开发的小技巧
本文译自5 Tips To Speed Up Golang Development With IntelliJ Or Goland 确实很实用.
1. 实现interface
比如我想为下面的结构体实现共识interface
type MyConensus struct {
}
通过右键generate->implement methods->搜索engine
一键生成下面代码:
type MyConensus struct {
	info string
}
func (m *MyConensus) Author(header *types.Header) (common.Address, error) {
	panic("implement me")
}
func (m *MyConensus) VerifyHeader(chain ChainReader, header *types.Header, seal bool) error {
	panic("implement me")
}
func (m *MyConensus) VerifyHeaders(chain ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error) {
	panic("implement me")
}
func (m *MyConensus) VerifyUncles(chain ChainReader, block *types.Block) error {
	panic("implement me")
}
func (m *MyConensus) VerifySeal(chain ChainReader, header *types.Header) error {
	panic("implement me")
}
func (m *MyConensus) Prepare(chain ChainReader, header *types.Header) error {
	panic("implement me")
}
func (m *MyConensus) Finalize(chain ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction,
	uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
	panic("implement me")
}
func (m *MyConensus) Seal(chain ChainReader, block *types.Block, results chan<- *types.Block, stop <-chan struct{}) error {
	panic("implement me")
}
func (m *MyConensus) SealHash(header *types.Header) common.Hash {
	panic("implement me")
}
func (m *MyConensus) CalcDifficulty(chain ChainReader, time uint64, parent *types.Header) *big.Int {
	panic("implement me")
}
func (m *MyConensus) APIs(chain ChainReader) []rpc.API {
	panic("implement me")
}
func (m *MyConensus) Close() error {
	panic("implement me")
}

提取接口
面向接口编程,有时候我们需要针对已经实现的struct提取接口.
方法:
struct->Refactor->Extract->interfac

2. 使用模板
3.1 forr 快速展开for range
forr 然后tab,就会自动展开
	for key, value := range collection {
	}

3.2 err 错误处理
err 然后tab,自动展开如下:

4. 填充Struct
这个相对不是很实用,

5. 自动生成测试代码
这个非常使用,单元测试,我们专注于测试本身就ok了.
在文件任意位置->Genreate->Test for File-> 自动生成该文件对应的测试文件

五个goland进行go开发的小技巧的更多相关文章
- 15个关于Chrome的开发必备小技巧[译]
		
谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...
 - 15个关于Chrome的开发必备小技巧
		
一.快速查找文件 如果你使用过Sublime,那么你会知道’Go to anything’的强大.没错,Chrome现在也有了这一功能. 操作如下: 1.F12打开你的Chrome调试器: 2.按下C ...
 - [译]15个关于Chrome的开发必备小技巧
		
谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...
 - Chrome的开发必备小技巧
		
谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...
 - iOS开发的小技巧
		
转自简书:http://www.jianshu.com/p/50b63a221f09 http://www.jianshu.com/p/08f194e9904c 原作者:叶孤城___ self.ta ...
 - iOS开发的小技巧(断点打印)
		
iOS开发中我们会碰到这样的需求:打印沙盒目录,打印对象信息,对象信息可以通过断点查看,有时候对象属性繁多时看起来又比较麻烦. 今天学到一个比较实用的方法: 在运行时打一个断点,当程序停在这个断点后, ...
 - android rss阅读器开发一点小技巧
		
这几天一直在学习开发Rss阅读器,遇到一个很坑的问题,InputSource这里总是出错.弄了好久,终于让我找到一个解决方法----看代码: new Thread(){ @Override publi ...
 - OOP,WEB开发实用小技巧
		
偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...
 - Android开发的小技巧,在Android Studio中使用Designtime Layout Attributes
		
在编写xml文件时,为了预览效果,经常会使用默认填上一些内容,比如TextView时,随便写上一个text <TextView ... android:text="Name:" ...
 
随机推荐
- oracle批量新增更新数据
			
本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...
 - Extra:Cg Math Functions
			
常用Cg函数 数学函数 abs(x):绝对值 // float类型的实现 float abs(float x) { return max(-a, a); } sin(x):正弦,输入为弧度 // fl ...
 - Linux启动/停止/重启gitlab
			
# Start all GitLab components sudo gitlab-ctl start # Stop all GitLab components sudo gitlab-ctl sto ...
 - nodejs anywhere 搭建本地静态文件服务
			
一.背景 工作中有时候往往会遇到下述场景:例如需要将新打好的安装包等文件临时性的给到同事,可能还需要给到多个同事.这时,我们往往有如下几种方案: 1,一般都会有公司内部的文件系统,上传文件后将对应的地 ...
 - Xamarin vs React Native vs Ionic vs NativeScript: Cross-platform Mobile Frameworks Comparison
			
CONTENTS Reading time: 14 minutes Cross-platform mobile development has long been a viable alternati ...
 - Java自学-I/O Stream流
			
Java的流 Stream 什么是流(Stream),流就是一系列的数据 步骤 1 : 什么是流 当不同的介质之间有数据交互的时候,JAVA就使用流来实现. 数据源可以是文件,还可以是数据库,网络甚至 ...
 - git操作:撤销更改的文件
			
在没有git add之前: #撤销所有更改 git checkout . #撤销指定文件的更改 git checkout -- myfile.txt 在git add之后: git reset HEA ...
 - tp5.0在控制器中和在模板中调用配置文件中的常量
			
框架配置文件config.php中定义 'view_replace_str' => [ '__MEMBER__'=> '/static/member', '__uplo ...
 - windows下搭建vue+webpack的开发环境
			
1. 安装git其右键git bash here定位比cmd的命令行要准确,接下来的命令都是利用git bash here.2. 安装node.js一般利用vue创建项目是要搭配webpack项目构建 ...
 - WDA基础十八:Select option配置
			
为了省代码...为了方便管理WDA的查询条件... 首先建配置表: 说明: 上面的KEY基本都是维护的维度,可以根据销售组织,根据用户组,根据组件,根据SELECT OPTION的不同...等等,可以 ...