
golang
文章平均质量分 86
gopher.guo
全栈工程师 / 技术布道者 / Golang 爱好者
专注后端开发、分布式系统、微服务架构设计,热爱技术,也热衷分享。
️ 坚持技术写作,每一篇文章都力求通俗易懂、干货满满。
更多原创教程、实战项目、免费视频课程,欢迎访问我的技术社区 → [多课网](https://www.duoke360.com/)
关注我,持续输出优质内容,让我们一起进阶高薪技术人!
展开
-
OpenTelemetry-Go:统一的可观测性框架,支持追踪、指标和日志
OpenTelemetry-Go 是一个开源的可观测性框架,旨在为 Go 应用提供统一的追踪(Tracing)、指标(Metrics)和日志(Logs)收集能力。它通过标准化的 API 和 SDK,帮助开发者在分布式系统中实现一致的遥测数据采集和导出。以下是对 OpenTelemetry-Go 的详细介绍,包括其核心概念、使用方法和示例原创 2025-05-19 13:52:34 · 803 阅读 · 0 评论 -
go-metrics:收集和报告应用程序指标的库
go-metrics 是一个用 Go 编写的应用性能度量(Metrics)库,提供对系统或程序内部运行状态的实时监控能力。原创 2025-05-19 13:51:06 · 571 阅读 · 0 评论 -
Task:Go简化构建流程的任务运行器
Task 是一个用 Go 编写的任务运行器和构建工具,旨在提供比 GNU Make 更简单易用的替代方案。原创 2025-05-18 10:19:03 · 662 阅读 · 0 评论 -
Air:Go热重载工具
Air 是一个 Go 项目的热重载工具,作用是在你修改代码文件后自动重新编译并重启程序,从而大幅提升开发效率,避免手动重启程序的繁琐操作。原创 2025-05-18 10:17:53 · 639 阅读 · 0 评论 -
如何使用go写一个cli工具
使用 Go 编写 CLI(命令行界面)工具是 Go 的常见应用之一,得益于其编译后单文件、跨平台的特点。下面我将分步骤介绍如何用 Go 编写一个 CLI 工具,包括示例代码、项目结构以及常用库。原创 2025-05-17 14:48:05 · 382 阅读 · 0 评论 -
goreleaser 自动打包发布
交叉编译:支持构建多个操作系统和架构的二进制文件。打包:将构建的二进制文件打包成归档文件,如.tar.gz.zip等。发布:自动将构建的制品发布到 GitHub Releases、GitLab 等平台。生成校验和:为发布的制品生成校验和文件,确保文件完整性。生成 Homebrew 公式:方便 macOS 用户通过 Homebrew 安装。生成 Snap 包:支持在 Linux 系统上通过 Snap 安装。原创 2025-05-17 14:45:33 · 951 阅读 · 0 评论 -
使用 Go 开发 RESTful API 的最佳实践与规范
Go(Golang)是 Google 开发的静态强类型、编译型语言,天生适合构建高性能、高并发的后端服务。选择它开发 RESTful API 的主要理由有:内置并发模型(goroutine/channel):轻量高效,适合高并发处理。编译执行效率高:接近 C 语言性能。丰富的标准库:无需依赖大量第三方库。部署便捷:编译为单个二进制文件。生态成熟:如 Gin、GORM、wire、Zap 等库非常实用。原创 2025-05-16 11:19:18 · 1054 阅读 · 0 评论 -
Golang —— 反序列化额外的 XML 属性
Go 的 encoding/xml 包提供了 xml.Attr 类型来表示 XML 属性。你可以通过添加一个字段来接收这些“多余的”或未指定的属性。原创 2025-05-15 20:00:19 · 545 阅读 · 0 评论 -
《Go开发者必看!最全ORM框架对比分析,GORM居然不是最强?》
Go语言作为近年来快速发展的后端编程语言,其生态系统中的ORM(Object-Relational Mapping)框架也日趋成熟。本文将全面对比Golang中最主流的ORM框架,包括GORM、XORM、Beego ORM、QBS、BeeORM和Gorp等,从功能特性、性能表现、易用性、社区支持等多个维度进行深入分析,帮助开发者根据项目需求选择最合适的数据库操作工具。原创 2025-05-14 21:00:43 · 902 阅读 · 0 评论 -
Go项目初始化、组件编排与优雅退出指南
通过这种方式,你可以构建一个结构清晰、易于维护且能够优雅处理退出的Go应用程序。原创 2025-05-14 10:21:10 · 481 阅读 · 0 评论 -
Go项目可观测性:Metrics、Logging、Tracing全面指南
在现代Go应用中,可观测性(Observability)是确保系统可靠性和可维护性的关键。它主要包含三个支柱:Metrics(指标)、Logging(日志)和Tracing(追踪)。下面我将详细介绍如何在Go项目中实现完整的可观测性方案。原创 2025-05-14 10:18:22 · 441 阅读 · 0 评论 -
golang flag库详解
flag 是 Go 标准库中用于命令行参数解析的库,适合用于 CLI 程序。它提供了简洁的接口来定义、解析和使用命令行标志(flags)。原创 2025-05-12 19:41:10 · 545 阅读 · 0 评论 -
《告别核心类型——迎接我们所熟知和喜爱的 Go》
这篇文章《告别核心类型——迎接我们所熟知和喜爱的 Go》由 Robert Griesemer 撰写,发表于 2025 年 3 月 26 日,介绍了 Go 语言在 1.25 版本中移除“核心类型(core types)”概念的背景、原因和影响。原创 2025-05-12 19:39:14 · 329 阅读 · 0 评论 -
《使用 testing/synctest 测试并发代码》
这篇文章《使用 testing/synctest 测试并发代码》由 Damien Neil 撰写,发表于 2025 年 2 月 19 日,介绍了 Go 1.24 中引入的实验性包 testing/synctest,旨在简化并发代码的测试。原创 2025-05-12 19:38:11 · 412 阅读 · 0 评论 -
Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本
Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本,带来了多项语言特性、性能优化、工具增强和标准库扩展。原创 2025-05-12 19:36:23 · 356 阅读 · 0 评论 -
Golang 性能调优超详细讲解
Go语言(Golang)自发布以来,凭借其高效的并发性、简洁的语法和丰富的标准库,迅速成为了开发高性能系统的热门选择。尽管Go语言本身在设计上注重性能,但在开发过程中,性能调优依然是一个重要的环节。如何优化Go程序的性能,提升其执行效率,是每个开发者都需要掌握的技能。本文将详细介绍如何对Go程序进行性能调优,包括从代码、内存、并发模型、I/O、垃圾回收等多个维度进行分析和优化。原创 2025-05-10 20:18:22 · 776 阅读 · 0 评论 -
Golang接口与多态超详细讲解
Go语言(Golang)是一门具有简单、并发、内存管理自动化等特点的系统编程语言。Go语言中没有传统面向对象编程语言中的类和继承机制,但它通过**接口(Interface)\**和\**组合**机制实现了类似于其他语言中的**多态**特性。本文将详细讲解Go语言中的接口(Interface)以及如何通过接口实现多态,深入理解其原理、使用方式及最佳实践。原创 2025-05-10 20:14:10 · 798 阅读 · 0 评论 -
Golang内存分配与对象生命周期超详细讲解
Go语言作为一门现代化的系统编程语言,提供了自动垃圾回收(Garbage Collection, GC)机制,使得开发者无需手动管理内存分配和回收。这一机制极大地提高了开发效率,但与此同时,深入理解Go的内存管理和对象生命周期对于编写高效且稳定的程序至关重要。本文将从多个方面详细讲解Go语言的内存分配、对象生命周期、垃圾回收的工作原理以及如何优化内存管理等内容。原创 2025-05-10 20:08:39 · 822 阅读 · 0 评论 -
Go的接口方法集和类型嵌入
在Go语言中,接口(interface)和类型嵌入(type embedding)是非常重要的概念,它们不仅仅是Go编程的核心特性之一,而且它们在Go语言的设计哲学中占据了非常重要的位置。理解它们的细节对于掌握Go的面向对象特性、设计模式以及编写高效的代码至关重要。原创 2025-05-10 19:57:40 · 664 阅读 · 0 评论 -
Go开发者必读!六大Web框架优缺点全曝光,别再盲目选型了!
以下是主流 Golang Web 框架的综合对比,涵盖性能、功能、适用场景及优缺点,帮助开发者根据项目需求选择合适的框架:原创 2025-05-07 10:34:36 · 375 阅读 · 0 评论 -
字节微服务框架 Kitex
基础入门:原创 2025-05-07 09:42:36 · 271 阅读 · 0 评论 -
Go-Zero 实战教程
原创 2025-05-07 09:39:41 · 263 阅读 · 0 评论 -
Golang源码分析-bufio.go
bufio.go 是 Go 标准库 bufio 包的核心文件,它主要实现了带缓冲的 I/O 操作,如 Reader 和 Writer。这在性能优化中非常关键,能显著减少系统调用次数,提高 I/O 效率。原创 2025-05-06 18:52:26 · 318 阅读 · 0 评论 -
Golang源码分析 - scan.go
scan.go 是 Go 标准库 text/scanner 包的核心文件,实现了一个高效的文本扫描器,用于将输入文本分解为一系列 token(标记)。这个扫描器被广泛用于 Go 语言工具链中,如 go/parser 等。原创 2025-05-06 18:58:19 · 669 阅读 · 0 评论 -
Golang源码分析-io/fs包
定义 文件系统(File System)的抽象接口,使得不仅仅是 OS 文件系统(os 包)能被操作, 还包括:内存中的文件系统、打包文件系统(如 embed)、只读文件系统、虚拟文件系统等。简单说,它就是把“文件系统”从具体实现里抽象出来,让你可以用一套接口操作各种文件系统。原创 2025-05-06 08:09:55 · 1060 阅读 · 0 评论 -
Golang源码分析-ioutil.go
ioutil.go 位于标准库 io/ioutil 包下(src/io/ioutil/ioutil.go)。 它原本是 提供便捷 I/O 工具函数的集合,比如一次性读写文件、读写 Reader/Writer 等。在 Go 1.16 之后,这些函数被迁移到更合理的位置(os、io 包)以减少冗余,ioutil 仍然保留但标记为 deprecated(弃用)。原创 2025-05-06 08:03:10 · 747 阅读 · 0 评论 -
Golang源码分析-io.go
在 Go 源码中,io.go 位于标准库 io 包下(src/io/io.go)。 io 包是 输入输出的核心抽象层,它定义了统一的接口,屏蔽了具体数据源(文件、网络、内存缓冲区等)的差异。也就是说,Go 里无论是操作文件、网络、内存,底层用的都是 io 包里定义的接口,确保代码 可组合、可替换、可扩展。原创 2025-05-06 07:57:43 · 891 阅读 · 0 评论 -
Golang源码分析-strconv
提供字符串与基本数据类型(int、uint、float、bool)之间的双向转换。原创 2025-05-04 13:01:34 · 955 阅读 · 0 评论 -
Golang源码分析strings.go
strings.go 是 Go 标准库 strings 包的主文件,定义了大量用于字符串操作的函数原创 2025-05-04 12:58:42 · 928 阅读 · 0 评论 -
Golang源码分析bytes.go
Golang源码分析bytes.go原创 2025-05-04 10:18:12 · 1000 阅读 · 0 评论 -
Golang源码分析builtin.go
Golang源码分析builtin.go原创 2025-05-04 10:14:59 · 714 阅读 · 0 评论 -
Golang Mutex(互斥锁)讲解
Mutex 全称是 Mutual Exclusion(互斥)。 在并发编程中,它是一种锁机制, 用来: ✅ 保护共享资源, ✅ 保证同一时间 只有一个 goroutine 能访问资源, ✅ 避免竞态条件(race condition)。原创 2025-05-02 19:31:23 · 1331 阅读 · 0 评论 -
Go 语言单例设计模式
单例(Singleton)是一种创建型设计模式, 它的目标是:一个类只有一个实例,并且提供全局访问点。原创 2025-05-02 19:27:13 · 615 阅读 · 0 评论 -
GORM 超详细总结
GORM 是一个功能强大且灵活的 ORM 库,通过合理使用可以大大提高 Go 语言开发中数据库操作的效率和可维护性。原创 2025-05-02 11:49:34 · 1131 阅读 · 0 评论 -
Golang 并发编程详解
并发编程基础概念进程和线程及协程并行和并发Golang协程创建一个协程停止一个协程协程休眠协程状态协程安全共享变量和临界区协程优先级协程安全数据类型如何解决协程安全问题Golang通道通道通道缓冲通道同步通道方向通道选择器超时处理非阻塞通道通道关闭通道的遍历Golang定时器TimerTickerGolang协程同步与通信协程同步协程通信对协程支持的包和类等待和通知生产者消费者模型多协程窗口卖票协程同步共享内存的方法Golang锁锁..原创 2025-05-02 11:43:15 · 564 阅读 · 0 评论 -
Go语言面试宝典:从基础到进阶,全面掌握必考题,轻松突破技术面试!
Go语言面试宝典:从基础到进阶,全面掌握必考题,轻松突破技术面试!原创 2025-05-01 10:14:08 · 1205 阅读 · 0 评论 -
Go 接口(interface)
一句话解释:接口就是一种行为的抽象,它定义了一组方法,而不是具体的实现。任何类型只要实现了接口定义的方法,就被视为实现了该接口。原创 2025-05-01 10:00:05 · 870 阅读 · 0 评论 -
Golang 结构体构造函数(Constructor Function)
Go 语言没有像 Java、C++ 那样内建的构造函数机制(即没有 constructor 关键字),但我们可以用普通函数模拟“构造”的功能。通常用 NewXxx 命名来返回结构体的实例(指针或值)。原创 2025-05-01 09:53:03 · 968 阅读 · 0 评论 -
Golang大型微服务电商项目
Golang大型微服务电商项目-从零搭建大型企业级golang微服务项目原创 2025-04-30 11:53:39 · 472 阅读 · 0 评论 -
Go select详解
select 是 Go 中用于 多路 channel 操作 的控制结构,它可以监听多个 channel 的发送与接收操作,当其中某一个可以进行时就执行对应的语句,从而实现非阻塞并发通信。原创 2025-04-30 07:57:38 · 761 阅读 · 0 评论