golang
文章平均质量分 92
xiaoliizi
这个作者很懒,什么都没留下…
展开
-
go 语言介绍
关于 go 的起源,特点以及学习建议原创 2023-11-01 14:41:30 · 836 阅读 · 0 评论 -
golang 编程规范查漏补缺
一些golang规范的详解原创 2023-10-10 16:06:46 · 296 阅读 · 0 评论 -
开源项目观察8月报
开源项目新特性整理原创 2023-09-05 22:59:01 · 246 阅读 · 0 评论 -
golang-文章翻译-go常见的10种错误
文章目录一、枚举默认值和json反序列化二、BenchMarking和内联三、每次传参都应该用指针吗?四、break和条件控制语句五、错误管理六、数组初始化6.1 len 和 cap6.2 设置len 还是 cap 的效率高七、context 管理7.1 什么是context7.2 什么时候应该用context八、从来不用 -race 参数九、使用文件名作为输入(方法设计不满足SOLID原则)9.1 从问题出发9.2 SOLID 原则十、协程和循环中的局部变量10.1 协程共用循环的局部变量10.2 避免直原创 2021-07-18 10:54:23 · 554 阅读 · 1 评论 -
golang-文章翻译-go高效编程
原文地址文章目录背景格式化注释和godoc命名规范一、包命名二、getter三、Interface分号条件控制语句一、if二、再声明和再赋值(Redeclaration and Reassignment)三、for1、常见for 循环格式2、使用下划线忽略不需要关注的对象3、其他细节四、switch1、特点2、switch 中的 break3、实战:通过switch 实现更美观的字符串对比方法4、实战:type switch方法定义一、多个返回值二、返回值命名三、defer对象操作(声明、初始化等)一、n原创 2021-01-26 16:51:41 · 574 阅读 · 0 评论 -
golang-项目实践-实现一个封装后的redis client
文章目录一、背景介绍二、框架设计三、代码实现四、后续功能扩展1、redis 超时连接数管理一、背景介绍项目地址之前redis 客户端都是直接定义到pkg 的公共方法中(参考代码),这样做用起来确实方便,但是这样也把初始化redis 示例的权限直接开放出去了,业务想初始化几个客户端就初始化几个,显然不合理。另外:如果redis 服务出现故障,或者只是偶然的网络连接有问题,所产生的超时现象就全部都传到上层业务逻辑中了,上层如果没做好控制,服务质量肯定会显著地受影响。因此最终的目的肯定还是要让 redis原创 2021-01-14 11:37:01 · 969 阅读 · 0 评论 -
golang-单元测试结合web后台项目实战(重构和mock)
文章目录一、背景介绍二、测试框架选用三、实际实现一、背景介绍经过上一节 对单元测试框架的基本学习,我们已经掌握了 单元测试的基本写法但是 对一个web 后台项目来说,往往需要依赖一些基础服务(数据库、缓存等),实际生产环境当然是要连接这些基础服务的,但是测试环境不一定能连通这些服务(测试环境最好是要能),因此编写mock 也是一个比较必要的过程。如何让测试代码写得更好,结合业务代码更优雅,也让后人能够更方便地开发,是一个需要探索的过程。这篇文章将会通过我的一个测试项目的重构过程,介绍如何更好地从单测原创 2020-12-26 23:02:17 · 1540 阅读 · 1 评论 -
golang-单元测试和mock框架的介绍和推荐
文章目录一、单元测试框架介绍1、原生testing1.1 示例1.2 扩展:Table-Driven 设计思想1.3 并行测试2、convey2.1 示例2.2 双层嵌套二、mock背景介绍:探索golang 的单元测试框架,看一下哪种框架是结合业务体验更好的。一、单元测试框架介绍1、原生testing1.1 示例func TestModifyArr(t *testing.T) { arr := [3]int{0, 1, 2} modifyArr(arr) if 112233 == arr[原创 2020-12-26 20:47:07 · 3191 阅读 · 2 评论 -
golang-使用godoc 工具编写代码注释
文章目录一、本地安装godoc 工具二、查看本地项目的godoc三、简述godoc 规范1、package 注释2、结构体注释3、方法注释4、常量注释5、doc.go四、实战-给自己的项目添加godoc导语:良好的注释是代码可维护的基础之一,作为golang 开发者,更应该意识到go 官方已经提供了godoc 工具,只要我们代码的注释是按照规范来,最后也能生成比较直观的“文档”,因此平时开发 的时候也应该重视注释的细节。一、本地安装godoc 工具go get golang.org/x/tools/c原创 2020-12-20 20:12:04 · 1403 阅读 · 0 评论 -
golang-性能分析(原生工具)
文章目录一、编译阶段1、 go build –race2、go vet 分析程序静态问题3、解析汇编代码二、测试阶段2.1 引入pprof2.2 使用go tool profile 分析CPU 使用情况2.2.1 基本分析2.2.2 测试频繁占用CPU 资源2.3 使用 go tool pprof 分析内存使用情况2.3.1 直接查看内存使用情况2.3.2 测试频繁申请内存场景2.3.3 两个时间段的堆内存对比2.4 goroutine 分析2.4.1 查看当前进程的 goroutine 数2.4.2 分析原创 2020-11-28 21:41:35 · 1881 阅读 · 0 评论 -
golang-一些常用的静态检查工具
文章目录一、背景二、gofmt2.1 参数说明2.2 go fmt (常用)三、goimports3.1 安装3.2 goland 配置3.3 手动格式化代码/项目3.4 扩展:为什么格式规范化推荐用 goimports 而不是 go fmt四、go vet (静态代码检查)4.1 执行4.2 可以修复的问题4.2.1 语法4.2.2 循环 和 goroutine/defer4.2.3 其他语法问题五、附录-其他参考文章一、背景俗话说,工欲善其事,必先利其器。go 作为一个对基础功能封装非常好的语言,对原创 2020-11-22 15:54:09 · 5335 阅读 · 0 评论 -
golang-使用go mock编写业务测试
参考资料官方git地址和示例一、应用场景服务在进行单元测试的时候,由于测试环境和生产环境不同,可能第三方接口的返回也会不同,无法完全模拟生产环境的条件。这就需要通过模拟输入、输出来测试完整的业务逻辑了。二、基本用法1、安装 mockgen 工具Windows:SET GO111MODULE=ongo get github.com/golang/mock/[email protected]正常安装完成后,可在$GOPATH/bin 目录下找到 mockgen2、自动生成mock 代码只有Int原创 2020-08-01 21:17:40 · 1749 阅读 · 0 评论 -
golang-使用 go test 输出单元测试覆盖率
项目示例-码云一、背景单元测试覆盖率是衡量代码质量的一个重要指标,重要的代码文件覆盖率应该至少达到80%以上。Java 可以通过JaCoCo 统计覆盖率,那么go 项目如何进行代码覆盖率测试呢?二、统计方式1、生成覆盖率报告我们知道直接执行测试代码的指令: go test 指定文件名称 -run “测试方法”。项目工程是如下架构的,可以通过这种方式生成覆盖率报告:go test -mod=vendor -covermode=count -coverprofile=coverprofile.c原创 2020-07-24 19:36:08 · 12703 阅读 · 12 评论 -
golang-使用 gomodule 在公共测试环境管理go的依赖
文章目录一、go 工程配置二、服务器依赖管理背景:一、go 工程配置既然是协同开发,工程我们就建议使用 go module 对依赖包进行管理了。这样大家可以把依赖都放到统一的GOPATH,如果有新增依赖,直接放到GOPATH 目录即可。二、服务器依赖管理...原创 2020-07-01 20:11:58 · 553 阅读 · 0 评论