golang
-
Golang 专题
Golang 是由 Google 开源的编程语言,可以大规模地构建快速、可靠和高效的软件。Golang 是云原生的首选编程语言。
-
Beego ORM 使用
Beego ORM 使用介绍,也可使用gorm作为Beego项目的数据库模块。
-
Go 网络爬虫
Golang中网络爬虫主要使用goquery包,它提供了发起HTTP请求、并对返回HTML解析的功能。
-
Go RPC
Golang RPC 实现介绍。
RPC(Remote Procedure Call Protocol, 远程过程调用协议)是一种通过网络从远程计算机程序上请求服务。 -
Go 反射示例
Go 反射示例项目,由于该部分比较复杂,仅从网上摘抄了一部分。
-
Golang 基础知识
本文通过 Golang helloworld 示例开始,介绍 Golang 的标识符、关键字、操作符、常量、变量、指针等基础概念。
-
Go Client 框架 Cobra 介绍
Cobra是一个用于创建强大的、基于Golangclient 的 lib 库,常见的hugo、kubernetes均基于其创建。 -
Go strings 包使用介绍
Golang 字符串操作示例,字符串函数主要集中在 strings 包中,本文介绍使用方法,给出一个函数接口,然后匹配相关example。
-
Go Struct Tag 类型介绍
Go语言中的StructTag类型介绍,基于Go reflect 反射实现
-
Golang gRPC Gateway 使用
grpc-gateway 用来遵循 gRPC HTTP 规范的 gRPC 至 JSON 代理生成器
-
Golang 使用 protobuf 实现 grpc 通信
gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。本文介绍 Golang 使用 protobuf 实现 gRPC 通信示例。
-
堆
堆(heap)是一棵完全二叉树,堆满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值。 -
logrus 日志示例
logrus是使用Golang开发的日志库,支持日志文件的压缩和分隔
-
Go 模板
Go的
text/template、html/template包用于处理使用字符串模板和数据驱动生成目标字符串,并可以在字符串模板中使用显示数据、流程控制、函数、管道、子模板等功能。 -
Go struct 结构体
Golang使用
struct关键字声明结构体。结构体是由一些列属性组成的复合数据类型,每个属性都有名称、类型组成。 -
Go strconv 包使用介绍
Golang 字符串转化介绍,字符串与其他类型相互转化主要在 strconv 包中,本文介绍使用方法,给出一个函数接口,然后匹配相关 example。
-
Go 环境部署、常用开发工具介绍
本文介绍在 Windows、Linux 环境中安装部署 Go 环境;Go 常用命令;Go 语言开发工具; Go 部分包安装无法下载问题及解决方法
-
Go 实现 SSH-Server
使用 Golang 实现 SSH-Server 服务端
-
Go MySQL 数据库操作
本文介绍如何使用Go
database/sql包操作MySQL数据库执行的增、删、改、查。 -
Go sync 锁
介绍Golang中sync库中的各种锁的使用。
-
Go IO与文件
本文主要介绍使用Golang如何操作文件的读和写。
-
Go interface 接口
Golang
interface(接口)是一种对其他类型行为进行抽象的自定义类型。接口定义使用interface标识符,用来声明一系列函数签名(函数名、参数、参数类型、函数返回值)。 -
Go Pkg 编译介绍
Golang 支持交叉编译,即在一个平台编译,在另一个平台运行,本文介绍 Golang Pkg 编译相关。
-
Go context 上下文
golang
context用来传递上下文的信息,该类型可跨 API 和进程间传输截止日期、取消信号和其他请求范围值,一般用作函数的第一个参数。 -
viper 读取配置文件
viper是使用Golang开发的读取配置文件库
-
gorm 使用介绍
本文介绍 go 中
grom的使用。ORM(Object Relation Mapping, 关系对象映射)可以把 Golang Struct 模型对象映射到关系型数据库结构中。 -
Go runtime 运行时
Golang 提供 runtime 库用来获取和设置 golang 的运行时环境
-
Go reflect 反射
反射是指在运行时动态的访问和修改任意类型对象的结构和成员,在golang中提供reflect包提供反射功能,每一个变量都有两个属性:类型(Type)和值(Value)
-
Go 数组与切片
Golang数组与切片使用介绍,通过示例演示Golang语言中如何使用数组、切片,以及介绍数组与切片异同,最后介绍排序模块。
-
WebAssembly 使用介绍
WebAssembly简称wasm,是下一代 web 技术,实质是体积小且加载快的二进制(新的字节码)格式,目的是充分发挥硬件能力已达到原生执行效率。本文除介绍 wasm 外,还提供基于 golang/tinygo 的示例,示例涵盖htm、vue2、vue3、quasar的使用场景。 -
gomail 邮件示例
gomail 邮件示例
-
Go net 网络模块
Golang 提供 net 库用来处理网络相关协议
-
Go goroutine 协程
goroutine是Go编程语言中的一个轻量级执行线程(golang中称为协程),是一个与程序其他部分同时执行的函数。 -
Go map 映射/字典
Golang中使用Map来存储一系列的key/value键值对,可以使用key来对value进行操作(增、删、改、查),map的零值为nil。
-
Redigo 示例
redis 在 golang 中采用来做缓存,下面提供 golang 操作 redis 实例。
-
Go Time 时间
Time 时间lib
-
Go string 字符串
本文介绍在 Golang 中与字符串和字节切片相关的使用,并提供相应的示例供初学者参考。
-
Go channel 信号量
本文介绍
golang中channel常见的使用方式,go关键字用来开启一个goroutine(协程)进行任务处理,多个任务之间如果需要通信,需要用到channel。 -
如何 Golang 代码编译成 C 语言兼容的静态库和头文件
Go 语言支持使用
go build -buildmode=c-archive编译命令将 Go 代码编译成 C 语言兼容的静态库 (.a文件) 和对应的 C 头文件 (.h文件)。这使得 Go 代码可以被其他语言(如 C/C++、Python、Java 等)通过 C 接口调用,实现了 Go 和其他语言的互操作性。 -
golangci-lint: Golang 快速 lint 工具
golangci-lint 支持并行运行 lint、缓存、YAML 配置,且支持与主流集成开发环境集成,并包含一百多个 lint 程序
-
Goreleaser 使用介绍
GoReleaser 是快速、轻松地发布 Go 项目的首选工具,支持与 github actions 集成
-
Let’s Encrypt 私有部署方案
Let’s Encrypt 是免费 SSL 证书的签发机构,但签发时效太短十分不方便。本文结合自签署CA,介绍如何在内部搭建一个私有 CA。
2022-05-25 http/https ssl,CA,golang,acme -
Go 网络编程
golang的
net库可以实现socket编程 -
Golang 开发中的热加载工具
Golang 热加载工具介绍,监听代码变更,自动编译并重新执行
-
Go Web 开发
Golang Web 开发基础介绍
-
Redis GEO Radius 的实现原理
GEO 是 Redis 在 3.2 版本之后新增的地理位置模块,用来实现查找附近的地点功能。
-
Casdoor 升级 Beego 到 v2
使用 shell 脚本,快速升级 Casdoor 依赖的 Beego 到 v2 版本
-
Go func 函数
Golang 函数包含函数名、形参列表、函数体和返回值列表,使用 func 进行声明,函数无参数或返回值时则形参列表和返回值列表省略。
-
Go 标准库
介绍 Golang 尝使用的库函数。
-
Redis 令牌桶限流实现
使用 Redis 实现令牌桶限流是一个常见且高效的方法。它的核心思想是利用 Redis 的原子性操作来管理
令牌的生产和消费,从而保证在高并发场景下的正确性。 -
深入解析 Golang 中的 http.RoundTripper:HTTP 客户端的引擎
在 Go 语言的
net/http标准库中,http.RoundTripper是一个至关重要但又常常被忽视的接口。它构成了http.Client的核心,是实际执行 HTTP 请求的引擎。2025-08-17 golang golang,http,net,RoundTripper -
Go package 包
Golang中包(Package)是函数和数据(如常量)的集合,它将相关特性的函数和数据放在统一的文件或文件夹中进行管理。
-
Go io.Pipe 介绍与示例
Go 语言中的
io.Pipe是一个非常强大且常用的工具,它在内存中创建一个同步的管道,可以将一个io.Writer(写入端)和一个io.Reader(读取端)连接起来,实现数据的边写边读,而不需要中间的临时文件或巨大的内存缓冲区。 -
Go ReverseProxy 代理示例
验证当 golang
httputil.ReverseProxy代理的后端服务(Backend Server)没有启动或无法连接时,发往代理的请求是否会被代理服务缓存,等待后端恢复后再转发?结论是:不会。 -
使用 ko 构建 golang docker 镜像
ko是一个为 Go 应用程序设计的简单、快速的容器镜像构建器。它非常适合以下用例:镜像中只包含一个 Go 应用程序,并且对操作系统基础镜像的依赖很少或没有(例如,没有 cgo,没有操作系统软件包依赖)。 -
Golang lodash 库使用
Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库,封装了常用的函数实现,本文介绍 golang 版本的 lodash 实现。
-
Go 第三方库
汇总 Golang 经常使用的第三方库,比如 cobra 等
-
Go dep 包管理器
Golang 包管理器 dep 使用介绍。
-
TinyGo 介绍
TinyGo是针对嵌入式应用和webassembly的Go编译器2021-10-01 golang golang,tinygo,wasm,webassembly -
Go Modules 包管理工具介绍
go modules是官方推出的依赖管理工具,go modules本质是一种GOPATH之外包管理工具。出现的目的是替代 go dep 时代 -
Beego 使用
Beego是一个Go开发的,开源的、高性能的web框架,常用于Web和Restfull API开发。
-
Go Modules 代理仓库服务
go module 公共代理仓库,代理并缓存 go 模块,利用该代理来避免 DNS 污染导致的模块拉取缓慢或失败的问题,加速你的构建。
-
Go Ent 数据库 GROM 框架
Ent 是 Facebook 开源的,一个简单而又功能强大的 Go 语言实体框架,ent 易于构建和维护应用程序与大数据模型
-
Go pprof 性能分析工具
golang中,pprof是一款可视化和分析剖析数据的工具(pprof is a tool for visualization and analysis of profiling data.) -
Gin 使用
Gin是一个使用 Go 语言开发的 Web 框架,它提供类似 Martini 的 API,但性能更佳,速度提升高达 40 倍(基于 httprouter 实现)。
-
Go testing 测试包
Go testing包用来为Golang提供单元测试、性能测试的功能。
-
Go Workspace 工作空间
golang多个子项目可以使用工作空间(workspace)组织在一起。
-
Go FaQ
汇总介绍Go开发使用过程中的问题
-
Go 泛型
Go中泛型的抽象数据类型
-
Go Trace 介绍
Go使用
tracer跟踪器捕获各种执行事件,如 goroutine 创建/阻塞/解阻塞、系统调用进入/退出/阻塞、GC 相关事件、堆大小变化、处理器启动/停止等,并以紧凑的形式将其写入缓冲区。 -
Go delve 调试工具介绍
delve是 Go 编程语言的调试器。
-
golang 日志库:uber-go/zap
uber-go/zap 是 Go 中的快速、结构化、分级日志记录方案。
-
RocksDB:使用 Flash 和 RAM 存储的持久键值 Key-Value
RocksDB 是由 Meta (原 Facebook) 开发的一款高性能、嵌入式键值(Key-Value)存储引擎。它基于 Google 的 LevelDB 开发,专为多核 CPU 和快速存储设备(如 SSD/NVMe)进行了深度优化。
-
UPX 压缩 Golang 二进制文件
UPX 是一种非常流行的、针对 Golang 构建产物的压缩工具,它的压缩率通常很高。
-
Golang 二进制文件 Symbol 符合分离和 GDB 调试
golang 二进制分离符号文件和 GDB 调试总结
-
Gin 框架中实现请求绑定和验证的通用方法
在 Golang 的 Gin 框架中,高效地将传入的 HTTP 请求数据绑定到结构体并进行验证,是构建健壮 API 的核心环节。本文将介绍一个通用方法,该方法能够根据传递的
gin.Context获取用户所需的struct,并利用github.com/go-playground/validator进行数据校验。如果验证失败,它将抛出异常或返回统一格式的错误信息;如果成功,则返回一个指向该struct的指针,方便后续的业务逻辑处理。 -
gorm-paginate 基于 gorm 的分页插件
gorm-paginate 基于 gorm 的分页插件,支持分页,条件搜索,排序等
2025-03-30 open-sources open-sources,golang,gorm,paginate -
Go statsviz 支持浏览器实时可视化 Go 程序运行指标库
Go statsviz 是一个支持在浏览器中可视化 Go 程序运行时指标的实时图表,包括堆、对象、goroutines、GC 暂停、调度器等指标
-
Golang gops 程序性能诊断工具
gogs 是一个用于列出和诊断当前系统上运行的 Go 进程的工具,支持命令行和 agent 两种使用方式
-
Go asynq 异步任务队列
asynq 是 Go 实现的一种简单、可靠、高效的分布式任务队列
-
grpc-web 介绍
grpc/grpc-web gRPC for Web Clients,浏览器客户端 gRPC 的 JavaScript 实现
-
Unicode 和 UTF-8 介绍
Unicode标准(The Unicode Standard)是由Unicode联盟维护,整理、编码了世界上大部分的文字系统,使得电脑能以通用的字符集来处理和显示文字。 -
Go 服务如何优雅地重启或停止
Go 服务如何优雅地重启或停止
-
Gin 项目框架设计思考
在构建一个可持续维护和扩展的 Go Gin 项目时,如何优雅地处理
Request、Response和GORM Model这三类结构体以及它们之间的关系,是架构设计的基石。 -
Github 仓库自动同步/镜像到 Gitee
利用 Github Action,将 Github 仓库自动同步/镜像到 Gitee,支持 Github 私有仓库的同步。
2022-06-03 open-sources open-sources,golang,git,mirrors,github,action -
go-ca:SSL 证书私有签署工具
go-ca使用 golang 开发的,SSL自签名客户端,自动生成Root CA、二级CA、域名证书。2022-05-24 open-sources open-sources,golang,CA,ssl -
godeepl 客户端
支持翻译markdown文档,并跳过使用代码块
2022-04-26 open-sources open-sources,golang,deepl -
Hugo 博客 SEO 优化 - 自动调用 Google Search Console API
Google Search Console 会为博客推荐 SEO 关键字,gseo 工具能自动调用其API并将对应页面的关键字自动注入由 gohugo 渲染的 markdown 中。
2022-04-05 open-sources open-sources,golang,gohugo,hugo,seo,markdown+1 -
Go Wasm 示例
本开源项目提供基于 golang/tinygo 的示例,示例涵盖htm、vue2、vue3、quasar的使用场景。
2021-09-25 open-sources open-sources,golang,tinygo,vue,wasm -
JSON to Go Struct 在线转换器
粘贴 JSON 到左侧,自动生成可嵌套的 Golang Struct。
-
同步文件到OSS工具
同步文件到阿里云OSS,已经发布到Marketplace,支持文件增量同步。
2020-01-27 open-sources open-sources,golang -
Websocket 介绍
WebSocket 是基于 TCP 的网络协议,对应
TCP Socket,可以使用 HTTP(Web)上的 Socket 通信规范。2017-05-05 http/https http,websocket,golang,gorilla -
Windows 下 gdb 的安装
在 Windows 下 gcc/g++ 的安装 这篇文章中已经提到,用MinGW Installation Manager可以方便地管理 MinGW 组件,因此使用该软件安装 gdb 。
-
Windows 下 gcc/g++ 的安装
Windows 下玩 gcc/g++,安装就是首要问题。
2017-02-18 golang golang,gcc,g-plus-plus -
Makefile 使用介绍
Makefile 示例