- 博客(57)
- 收藏
- 关注
原创 《Go开发者必看!最全ORM框架对比分析,GORM居然不是最强?》
Go语言作为近年来快速发展的后端编程语言,其生态系统中的ORM(Object-Relational Mapping)框架也日趋成熟。本文将全面对比Golang中最主流的ORM框架,包括GORM、XORM、Beego ORM、QBS、BeeORM和Gorp等,从功能特性、性能表现、易用性、社区支持等多个维度进行深入分析,帮助开发者根据项目需求选择最合适的数据库操作工具。
2025-05-14 21:00:43
492
原创 Go项目可观测性:Metrics、Logging、Tracing全面指南
在现代Go应用中,可观测性(Observability)是确保系统可靠性和可维护性的关键。它主要包含三个支柱:Metrics(指标)、Logging(日志)和Tracing(追踪)。下面我将详细介绍如何在Go项目中实现完整的可观测性方案。
2025-05-14 10:18:22
297
原创 golang flag库详解
flag 是 Go 标准库中用于命令行参数解析的库,适合用于 CLI 程序。它提供了简洁的接口来定义、解析和使用命令行标志(flags)。
2025-05-12 19:41:10
519
原创 《告别核心类型——迎接我们所熟知和喜爱的 Go》
这篇文章《告别核心类型——迎接我们所熟知和喜爱的 Go》由 Robert Griesemer 撰写,发表于 2025 年 3 月 26 日,介绍了 Go 语言在 1.25 版本中移除“核心类型(core types)”概念的背景、原因和影响。
2025-05-12 19:39:14
184
原创 《使用 testing/synctest 测试并发代码》
这篇文章《使用 testing/synctest 测试并发代码》由 Damien Neil 撰写,发表于 2025 年 2 月 19 日,介绍了 Go 1.24 中引入的实验性包 testing/synctest,旨在简化并发代码的测试。
2025-05-12 19:38:11
380
原创 Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本
Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本,带来了多项语言特性、性能优化、工具增强和标准库扩展。
2025-05-12 19:36:23
286
原创 Golang 性能调优超详细讲解
Go语言(Golang)自发布以来,凭借其高效的并发性、简洁的语法和丰富的标准库,迅速成为了开发高性能系统的热门选择。尽管Go语言本身在设计上注重性能,但在开发过程中,性能调优依然是一个重要的环节。如何优化Go程序的性能,提升其执行效率,是每个开发者都需要掌握的技能。本文将详细介绍如何对Go程序进行性能调优,包括从代码、内存、并发模型、I/O、垃圾回收等多个维度进行分析和优化。
2025-05-10 20:18:22
756
原创 Golang接口与多态超详细讲解
Go语言(Golang)是一门具有简单、并发、内存管理自动化等特点的系统编程语言。Go语言中没有传统面向对象编程语言中的类和继承机制,但它通过**接口(Interface)\**和\**组合**机制实现了类似于其他语言中的**多态**特性。本文将详细讲解Go语言中的接口(Interface)以及如何通过接口实现多态,深入理解其原理、使用方式及最佳实践。
2025-05-10 20:14:10
789
原创 Golang内存分配与对象生命周期超详细讲解
Go语言作为一门现代化的系统编程语言,提供了自动垃圾回收(Garbage Collection, GC)机制,使得开发者无需手动管理内存分配和回收。这一机制极大地提高了开发效率,但与此同时,深入理解Go的内存管理和对象生命周期对于编写高效且稳定的程序至关重要。本文将从多个方面详细讲解Go语言的内存分配、对象生命周期、垃圾回收的工作原理以及如何优化内存管理等内容。
2025-05-10 20:08:39
809
原创 golang 并发与共享内存的同步
Go语言是一种并发友好的语言,具有原生支持并发编程的强大功能。它的并发模型基于goroutines和channels,提供了高效的并发执行机制。同时,Go语言也提供了多种同步原语来保证在并发环境下数据的一致性和安全性,尤其是在共享内存的情况下。本文将深入探讨Go语言中的并发与共享内存同步,详细讲解其机制、使用场景、常见问题及解决方案。
2025-05-10 20:02:42
969
原创 Go的接口方法集和类型嵌入
在Go语言中,接口(interface)和类型嵌入(type embedding)是非常重要的概念,它们不仅仅是Go编程的核心特性之一,而且它们在Go语言的设计哲学中占据了非常重要的位置。理解它们的细节对于掌握Go的面向对象特性、设计模式以及编写高效的代码至关重要。
2025-05-10 19:57:40
657
原创 Go开发者必读!六大Web框架优缺点全曝光,别再盲目选型了!
以下是主流 Golang Web 框架的综合对比,涵盖性能、功能、适用场景及优缺点,帮助开发者根据项目需求选择合适的框架:
2025-05-07 10:34:36
346
原创 Golang源码分析 - scan.go
scan.go 是 Go 标准库 text/scanner 包的核心文件,实现了一个高效的文本扫描器,用于将输入文本分解为一系列 token(标记)。这个扫描器被广泛用于 Go 语言工具链中,如 go/parser 等。
2025-05-06 18:58:19
661
原创 Golang源码分析-bufio.go
bufio.go 是 Go 标准库 bufio 包的核心文件,它主要实现了带缓冲的 I/O 操作,如 Reader 和 Writer。这在性能优化中非常关键,能显著减少系统调用次数,提高 I/O 效率。
2025-05-06 18:52:26
311
原创 Golang源码分析-io/fs包
定义 文件系统(File System)的抽象接口,使得不仅仅是 OS 文件系统(os 包)能被操作, 还包括:内存中的文件系统、打包文件系统(如 embed)、只读文件系统、虚拟文件系统等。简单说,它就是把“文件系统”从具体实现里抽象出来,让你可以用一套接口操作各种文件系统。
2025-05-06 08:09:55
1055
原创 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
740
原创 Golang源码分析-io.go
在 Go 源码中,io.go 位于标准库 io 包下(src/io/io.go)。 io 包是 输入输出的核心抽象层,它定义了统一的接口,屏蔽了具体数据源(文件、网络、内存缓冲区等)的差异。也就是说,Go 里无论是操作文件、网络、内存,底层用的都是 io 包里定义的接口,确保代码 可组合、可替换、可扩展。
2025-05-06 07:57:43
888
原创 Golang Mutex(互斥锁)讲解
Mutex 全称是 Mutual Exclusion(互斥)。 在并发编程中,它是一种锁机制, 用来: ✅ 保护共享资源, ✅ 保证同一时间 只有一个 goroutine 能访问资源, ✅ 避免竞态条件(race condition)。
2025-05-02 19:31:23
1317
原创 Golang 并发编程详解
并发编程基础概念进程和线程及协程并行和并发Golang协程创建一个协程停止一个协程协程休眠协程状态协程安全共享变量和临界区协程优先级协程安全数据类型如何解决协程安全问题Golang通道通道通道缓冲通道同步通道方向通道选择器超时处理非阻塞通道通道关闭通道的遍历Golang定时器TimerTickerGolang协程同步与通信协程同步协程通信对协程支持的包和类等待和通知生产者消费者模型多协程窗口卖票协程同步共享内存的方法Golang锁锁..
2025-05-02 11:43:15
561
原创 Go 接口(interface)
一句话解释:接口就是一种行为的抽象,它定义了一组方法,而不是具体的实现。任何类型只要实现了接口定义的方法,就被视为实现了该接口。
2025-05-01 10:00:05
868
原创 Golang 结构体构造函数(Constructor Function)
Go 语言没有像 Java、C++ 那样内建的构造函数机制(即没有 constructor 关键字),但我们可以用普通函数模拟“构造”的功能。通常用 NewXxx 命名来返回结构体的实例(指针或值)。
2025-05-01 09:53:03
959
原创 Go select详解
select 是 Go 中用于 多路 channel 操作 的控制结构,它可以监听多个 channel 的发送与接收操作,当其中某一个可以进行时就执行对应的语句,从而实现非阻塞并发通信。
2025-04-30 07:57:38
752
原创 Go channel(通道)详解
Channel 是 Go 语言中用于 goroutine 之间通信的核心机制。它允许一个 goroutine 安全地将数据发送给另一个 goroutine,实现“通信共享内存”,而非“共享内存通信”。
2025-04-30 07:53:22
1047
原创 Go 垃圾回收机制详解
Go 语言的垃圾回收(GC)是其运行时系统的核心组件之一,它自动管理内存分配和回收,使开发者从手动内存管理的负担中解放出来。下面我将从多个维度深入讲解 Go 的垃圾回收机制。
2025-04-29 09:02:31
899
原创 优雅处理 Go 中的错误:全面指南
在 Go 语言中,错误处理是一个核心特性,与许多其他语言的异常处理机制不同。Go 采用显式错误处理的方式,这要求开发者更加关注错误的产生和处理。下面我将详细介绍如何在 Go 中优雅地处理错误。
2025-04-29 08:55:51
557
原创 Go语言 init函数详解
你好,我今天想跟你聊聊 Go语言里面一个很有趣、很重要的小机制 —— init函数。 init虽然平时用得不多,但每次用到,它都是救场王。 我尽量用很自然的方式告诉你,到底`init`是干什么的,它的规则又是什么。
2025-04-28 09:08:34
881
原创 Go语言 defer 详解
在Go语言中,defer用于注册延迟执行的函数。 这些被推迟的函数会在外层函数返回之前按照后进先出(LIFO)的顺序执行。一句话总结: 👉 defer就是安排好“临走前要做的事”
2025-04-28 08:57:27
835
原创 Go语言函数(Function)详解
函数(Function)是封装好的一段可以被重复调用的代码块。 它可以 接收输入(参数),返回输出(返回值)。函数的核心作用封装:把复杂的逻辑打包成一个名字,方便复用。抽象:隐藏实现细节,只暴露输入输出。组织代码:让程序结构更清晰。
2025-04-28 08:53:43
723
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人