Go Web框架Gin源码结构解析
阅读本文之前,可以先读上一篇文章,对Web框架的核心组件有个了解。源代码的目录结构以v1.7.4版本为例,Gin的源码目录结构如下图所示 {代码...} 使用cloc工具对源码做一个扫描,总共代码行数不到1.2W。 {代码...} 目录结构说明目录作用根目录整个Web框架的核心都在根目录下面,包括server, router, middleware。binding...
2021-11-26
Golang-使用gvm进行版本控制
当你想为每个项目切换 go 版本时,gvm (Go Version Manager) 很方便。这里,我将介绍“如何在Mac上安装gvm”和“如何使用gvm”使用准备仅适用于 Mac 的准备工作按照MacOSX 要求中的说明执行以下命令。 {代码...} gvm安装我使用 zsh 作为我的 shell。 {代码...} 对于 zsh,您可以这样安装: {代码...} ~/.zshrc 以下行被添加...
2023-08-31
几种Go版本管理工具
缘起:编译下面这段代码时,在Mac上没有什么问题,正常运行,<details><summary>点击查看代码:</summary> {代码...} </details>但到了Linux上,就会报错: {代码...} 而在Mac上进行交叉编译: {代码...} (如果出现GOROOT blabla之类的,执行go env -w GO111MODULE=off )也没有什么问题导致这种情况的原...
2023-08-30
GO系列 | 常见错误集合01
本文是基于mac,安装go1.14版本之后,执行一个基本的go文件报错了。错误现象:执行下面的go的文件报下面的错误了 {代码...} {代码...} 原因:由于安装新版本的时候,没有删除旧版本,导致安装包的有些关联发生错误解决方案:先手动删除之前安装的包,再重新按照 {代码...} 如果你喜欢我的文章,请关注我的公众号哈~ 我...
2020-04-07
go-watcher 一个热重载工具
Golang编写的热重载工具,自定义命令,支持监视文件及路径配置,环境变量配置。这是一个重复的轮子~地址在:github.com/yeqown/go-watcher,欢迎fork和PR。 安装使用 {代码...} 命令行 {代码...} 配置文件 {代码...} 使用范例日志 {代码...}
golang版本管理gvm
按照github上面指示,我们这里按照命令行进行下载gvm-installer进行安装,终端执行有问题的同学也可以到gvm-installer页面进行clone安装。
2022-07-26
golang项目 配置Gitlab CI
pipeline流程 使用golangci-lint 检查代码 编译代码 部署二进制 before_script 设置环境变量 主要 GOPROXY设置 {代码...} golangci-lint 默认集成了很多开箱即用的linter [链接] {代码...} allow_failure 表示失败了可以继续跑后续的job 编译 {代码...} 缓存 go mod {代码...} full example {代码...}
聊聊go-bank-transfer项目对Clean Architecture的实践
序本文主要赏析一下go-bank-transfer对于Clean Architecture的实践项目结构 {代码...} 这里分为adapter、domain、infrastructure、usecase四层domainaccount {代码...} account定义了AccountRepository接口及Account类型,同时还提供了Withdraw、Deposit方法transfer {代码...} transfer定义了TransferRepository接口及T...
2021-03-21
go mod tidy 报错
go mod报错 go mod tidy -go=1.16 && go mod tidy -go=1.17报错信息如下 {代码...} 报错原因我是之前有的项目用的go 1.17的版本然后升级到1.20后一直没管这些项目,有一次用了发现版本不兼容了,就用go mod tidy尝试更新版本甚至把go.mod的go版本换成1.20 结果都g了参阅了网上的办法,有说清楚包缓存的,有说升级go版本...
2023-12-09
【GO】go.mod
go module 使用前置条件: GO111MODULE 设置为 on在当前文件夹下初始化一个新的 module,创建 go.mod 文件; go mod init name拉取缺少的模块,移除不用的模块 : go mod tidy将依赖复制到 vendor 下 : go mod vendor下载依赖 : go mod download检验依赖: go mod verify显示模块依赖图: go mod graph解释为什么需要依赖: ...
2021-05-24
Go 语言常用命令
从Go 1.5开始,编译器、链接器都已经完全用Go语言重写了。好处就是,编译器和链接器都将是跨平台的了。简要来说,Go 1.5版本的目录中的文件compile即是统一后的编译器,而文件link则是统一后的链接器。
2021-04-26
Timer, Ticker的区别引出变量的逃逸情况.引发的思考
Timer Timer 定义后固定只执行一次,使用Reset会再触发一次. {代码...} Ticker Ticker一但被定义, 每隔一段时间会自动触发 {代码...} 以上go func(){}另一种写, 不使用形参. go tool compile -m timer.go 以下是编译的过程, 看不太懂. 只知道变量逃逸了. 望高手指教. {代码...} 扩展学习 关于堆栈和指针上的语言力学 [链接]
2019-08-13
go run main.go undefined? golang main包那点事
最近把我的ss项目做了一下结构调整,一顿重构后,输入go run main.go,编译报错function undefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。之前也遇到过这个问题不过没用深究,下面我们来说说go main包那点事。
go1.4 bootstrap 源码安装新版go
1.下载go1.4-bootstrap {代码...} 2.配置GOROOT_BOOTSTRAP {代码...} 3.安装go1.4-bootstrap {代码...} 4.源码安装go {代码...} 5. 配置环境变量 {代码...}
2021-03-28
执行 go vendor 时第三方包 go 版本冲突问题的解决方法
该步骤将以 go.mod 文件中写明的包和版本为准下载第三方依赖并保存到本地的 vendor 目录。下载过程中将校验 go.sum 中的 hash 值是否同文件 hash 一致。
2022-07-14
你的首个golang语言详细入门教程 | your first golang tutorial
本文首发于个人博客[链接],欢迎阅读最新内容! your first golang tutorial<!--more--> go tutorial versions: go: 1.13.1 install {代码...} zsh uses env profile ~/.zshrc, bash use env profile ~/.bashrc. check version {代码...} uninstall just delete /usr/local/go set GOPATH Create your workspace d...
2019-12-16
Go 1.16 中关于 go get 和 go install 你需要注意的地方
Go (golang) 已于 18 日发布了 1.16 beta1 版本,至此其主体功能已经基本确定。我看大多数人都在关注 Go 在苹果(Apple) M1 上的支持,甚至 Go 官方博客中也有一篇专门的说明 Go on ARM and Beyond ,来介绍 Go 在此方面的支持。
《go入门grpc》第三章:从 proto 文件自动生成go代码
在第二章,我们介绍了,如何写一个.proto文件。当我们有了一个.proto文件,揭晓来,我们就是使用protoc命令编译.proto文件,生成对应go文件。
Go安装
Go官网 {代码...} 下载地址 {代码...} 安装环境 {代码...} 假定你想要安装Go的目录为 $GO_INSTALL_DIR {代码...} GOROOT只有在自定义安装目录时,才需要设置。 执行命令 {代码...} Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: {代码...} Use "go help [command]" for m...
2014-07-01
记一次 go mod vendor 报错排查经过
该步骤将以 go.mod 文件中写明的包和版本为准下载第三方依赖并保存到本地的 vendor 目录。下载过程中将校验 go.sum 中的 hash 值是否同文件 hash 一致。
2022-10-21