Go 1.17 新特性:Go Module 的变化

自从 Go1.11 增加 Go Module 以来,每个版本都在不断改进 Module。Go1.17 也不例外。这次最主要的变化有两点:

  • Module graph pruning:Module 依赖图修剪
  • Lazy Loading:Module 延迟加载阅读全文→

smarteng 发布于 2021-09-23 14:20

golang怎么会变成这么火

程序员始终在寻找一种更加高效,安全的开发语言,高效表现在开发高效和运行高效,安全在于程序要要较少的去关注底层安全问题。当然还有其它的原因,比如:ide,构建,部署难易程度。简单说就是开发者体验。阅读全文→

标签: golang

smarteng 发布于 2021-09-23 14:11

Golang后台单元测mock网络测试

这是Go语言单元测试从零到溜系列教程的第1篇,介绍了如何使用httptest和gock工具进行网络测试。
在上一篇《Go单测从零到溜系列——0.单元测试基础》中,我们介绍了Go语言编写单元测试的基础内容。
而实际工作中的业务场景往往会比较复杂,无论我们的代码是作为server端对外提供服务或者还是我们依赖别人提供的网络服务(调用别人提供的API接口)的场景,我们通常都不想在测试过程中真正的建立网络连接。本文就专门介绍如何在上述两种场景下mock网络测试。阅读全文→

标签: golang test

smarteng 发布于 2021-09-15 08:59

Golang后台单元测基础

这是Go语言单元测试从零到溜系列教程的第0篇,主要讲解在Go语言中如何做单元测试以及介绍了表格驱动测试、回归测试,并且介绍了常用的断言工具。阅读全文→

标签: golang

smarteng 发布于 2021-09-15 08:53

一文读懂go mod依赖管理

早期 Go 语言单纯使用 GOPATH 管理依赖,但 GOPATH 不方便管理依赖的多个版本,后来增加了 vendor,允许把项目依赖连同项目源码一起管理。
但是 vendor 也有不足,就是项目依赖关系不清楚,依赖包升级困难,这也催生了众多依赖管理的工具,呈现百家争鸣之势。
直到 GO 1.11,官方才推出了依赖管理工具 Go Module,逐渐一统江湖,从此 GO 依赖管理走向第3个时代。阅读全文→

标签: golang Module

smarteng 发布于 2021-09-14 19:37

Go语言中的程序实体

Go语言中的程序实体包括变量、常量、函数、结构体和接口。 Go语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予足够的信息,这样才可以让Go语言能够推导出它们的类型。阅读全文→

标签: golang

smarteng 发布于 2021-09-09 15:33

使用 Delve 调试远程 Go 应用

Delve 是 Go 语言的一个调试器。其目标是为 Go 语言提供一个易用,拥有完整功能的调试工具。阅读全文→

标签: golang

smarteng 发布于 2021-09-08 16:28

理解真实项目中的 Go 并发 Bug

本文内容源于论文《Understanding Real-World Concurrency Bugs in Go》,从 6 个非常流行的开源项目中,收集了 171 个并发 bug,从传统的共享内存访问、Go 语言新的并发原语的特性方面入手,研究了并发 bug 产生的原因以及修复的方法,以便使 Go 研发人员更好的理解 Go 并发模型以及使用 Go 语言编写出更稳定、健壮的软件系统。阅读全文→

标签: golang

smarteng 发布于 2021-09-08 16:26

Go应用中优雅处理Error的几个技巧方法

Go语言很强大并且现在也十分流行 — 许多项目都是用Go语言来实现的,如Kubernetes。Go语言的一个有趣特性是它的多值返回功能提供了一种与其他编程语言不同的错误处理方法。Go将error视为具有预定义类型的值,其本身是一个interface类型。然而,编写大型应用时需要有包含更多上下文信息的error才有价值,而不仅仅是一个值。本文我们将探讨如何封装Go的error类型以在应用程序中带来更大的价值。阅读全文→

标签: golang error

smarteng 发布于 2021-09-08 16:22

学习Go语言-GOPATH有多工作区的问题

学习Go语言-GOPATH有多工作区的问题阅读全文→

标签: golang gomod

smarteng 发布于 2021-09-06 17:17

学习Go语言-组织源码文件

上一节我们讲到go语言的工作区和GOPATH,这一节来说说代码文件的组织。阅读全文→

标签: go golang

smarteng 发布于 2021-09-06 17:11