- 博客(70)
- 收藏
- 关注
原创 《Go语言年薪50W必须掌握的10个实战技巧》
《Golang实战进阶:年薪50W开发者必备的10大核心技能》摘要:本文总结了Golang企业级开发的关键实战技巧,包含10个年薪50W开发者必备的核心能力:正确使用goroutine和channel实现高性能并发分层包装的错误处理机制工程化的项目结构设计接口抽象与测试驱动开发标准库的高效应用ORM与SQL的性能优化规范的日志和配置管理中间件开发与限流实现并发安全与性能分析工具自动化测试与CI/CD部署。这些技能体现了从基础编码到工程架构的综合能力,是Golang开发者进阶的关键路径
2025-06-09 09:36:32
597
原创 《为什么面试官都爱问这5个Golang问题?》
本文解析了面试官最爱问的5个Golang问题及其考察重点。这些问题不仅测试语法掌握程度,更能评估工程化思维和实战能力:1) Goroutine与Channel原理及内存泄漏防范;2) interface{}的陷阱与类型断言;3) map的线程安全与并发控制;4) defer的执行机制与性能影响;5) Go Modules包管理实践。文章强调面试不是单纯考语法,而是考察思维方式与解决问题能力,建议准备时要结合实际代码案例、踩坑经验和调优思路,体现工程化思维。
2025-06-09 09:34:54
451
原创 Golang 为什么需要接口(interface)
Len() int标准库使用的排序接口,适用于任意自定义数据类型。原则说明最小接口原则一个接口只负责一件事,越小越灵活实现优先原则先有具体实现,再提取接口面向行为而非数据接口定义行为,不定义状态组合大于继承用接口组合构建复杂功能接口用于解耦与测试提高模块可替换性、可测试性。
2025-06-01 10:41:20
841
原创 从入门到精通:多课网 Golang 系列教程助你快速成长
想从零开始学 Go,还是提升项目实战能力?多课网为你准备了系统化的教程路径,涵盖基础、算法、设计模式、并发编程、GORM、源码分析等,适合所有想深入 Go 的开发者。
2025-06-01 10:40:09
427
原创 Air:Go热重载工具
Air 是一个 Go 项目的热重载工具,作用是在你修改代码文件后自动重新编译并重启程序,从而大幅提升开发效率,避免手动重启程序的繁琐操作。
2025-05-18 10:17:53
731
原创 如何使用go写一个cli工具
使用 Go 编写 CLI(命令行界面)工具是 Go 的常见应用之一,得益于其编译后单文件、跨平台的特点。下面我将分步骤介绍如何用 Go 编写一个 CLI 工具,包括示例代码、项目结构以及常用库。
2025-05-17 14:48:05
418
原创 goreleaser 自动打包发布
交叉编译:支持构建多个操作系统和架构的二进制文件。打包:将构建的二进制文件打包成归档文件,如.tar.gz.zip等。发布:自动将构建的制品发布到 GitHub Releases、GitLab 等平台。生成校验和:为发布的制品生成校验和文件,确保文件完整性。生成 Homebrew 公式:方便 macOS 用户通过 Homebrew 安装。生成 Snap 包:支持在 Linux 系统上通过 Snap 安装。
2025-05-17 14:45:33
996
原创 使用 Go 开发 RESTful API 的最佳实践与规范
Go(Golang)是 Google 开发的静态强类型、编译型语言,天生适合构建高性能、高并发的后端服务。选择它开发 RESTful API 的主要理由有:内置并发模型(goroutine/channel):轻量高效,适合高并发处理。编译执行效率高:接近 C 语言性能。丰富的标准库:无需依赖大量第三方库。部署便捷:编译为单个二进制文件。生态成熟:如 Gin、GORM、wire、Zap 等库非常实用。
2025-05-16 11:19:18
1078
原创 Golang —— 反序列化额外的 XML 属性
Go 的 encoding/xml 包提供了 xml.Attr 类型来表示 XML 属性。你可以通过添加一个字段来接收这些“多余的”或未指定的属性。
2025-05-15 20:00:19
559
原创 《Go开发者必看!最全ORM框架对比分析,GORM居然不是最强?》
Go语言作为近年来快速发展的后端编程语言,其生态系统中的ORM(Object-Relational Mapping)框架也日趋成熟。本文将全面对比Golang中最主流的ORM框架,包括GORM、XORM、Beego ORM、QBS、BeeORM和Gorp等,从功能特性、性能表现、易用性、社区支持等多个维度进行深入分析,帮助开发者根据项目需求选择最合适的数据库操作工具。
2025-05-14 21:00:43
970
原创 Go项目可观测性:Metrics、Logging、Tracing全面指南
在现代Go应用中,可观测性(Observability)是确保系统可靠性和可维护性的关键。它主要包含三个支柱:Metrics(指标)、Logging(日志)和Tracing(追踪)。下面我将详细介绍如何在Go项目中实现完整的可观测性方案。
2025-05-14 10:18:22
464
原创 golang flag库详解
flag 是 Go 标准库中用于命令行参数解析的库,适合用于 CLI 程序。它提供了简洁的接口来定义、解析和使用命令行标志(flags)。
2025-05-12 19:41:10
604
原创 《告别核心类型——迎接我们所熟知和喜爱的 Go》
这篇文章《告别核心类型——迎接我们所熟知和喜爱的 Go》由 Robert Griesemer 撰写,发表于 2025 年 3 月 26 日,介绍了 Go 语言在 1.25 版本中移除“核心类型(core types)”概念的背景、原因和影响。
2025-05-12 19:39:14
337
原创 《使用 testing/synctest 测试并发代码》
这篇文章《使用 testing/synctest 测试并发代码》由 Damien Neil 撰写,发表于 2025 年 2 月 19 日,介绍了 Go 1.24 中引入的实验性包 testing/synctest,旨在简化并发代码的测试。
2025-05-12 19:38:11
419
原创 Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本
Go 团队于 2025 年 2 月 11 日正式发布了 Go 1.24 版本,带来了多项语言特性、性能优化、工具增强和标准库扩展。
2025-05-12 19:36:23
426
原创 Golang 性能调优超详细讲解
Go语言(Golang)自发布以来,凭借其高效的并发性、简洁的语法和丰富的标准库,迅速成为了开发高性能系统的热门选择。尽管Go语言本身在设计上注重性能,但在开发过程中,性能调优依然是一个重要的环节。如何优化Go程序的性能,提升其执行效率,是每个开发者都需要掌握的技能。本文将详细介绍如何对Go程序进行性能调优,包括从代码、内存、并发模型、I/O、垃圾回收等多个维度进行分析和优化。
2025-05-10 20:18:22
796
原创 Golang接口与多态超详细讲解
Go语言(Golang)是一门具有简单、并发、内存管理自动化等特点的系统编程语言。Go语言中没有传统面向对象编程语言中的类和继承机制,但它通过**接口(Interface)\**和\**组合**机制实现了类似于其他语言中的**多态**特性。本文将详细讲解Go语言中的接口(Interface)以及如何通过接口实现多态,深入理解其原理、使用方式及最佳实践。
2025-05-10 20:14:10
811
原创 Golang内存分配与对象生命周期超详细讲解
Go语言作为一门现代化的系统编程语言,提供了自动垃圾回收(Garbage Collection, GC)机制,使得开发者无需手动管理内存分配和回收。这一机制极大地提高了开发效率,但与此同时,深入理解Go的内存管理和对象生命周期对于编写高效且稳定的程序至关重要。本文将从多个方面详细讲解Go语言的内存分配、对象生命周期、垃圾回收的工作原理以及如何优化内存管理等内容。
2025-05-10 20:08:39
832
原创 golang 并发与共享内存的同步
Go语言是一种并发友好的语言,具有原生支持并发编程的强大功能。它的并发模型基于goroutines和channels,提供了高效的并发执行机制。同时,Go语言也提供了多种同步原语来保证在并发环境下数据的一致性和安全性,尤其是在共享内存的情况下。本文将深入探讨Go语言中的并发与共享内存同步,详细讲解其机制、使用场景、常见问题及解决方案。
2025-05-10 20:02:42
990
原创 Go的接口方法集和类型嵌入
在Go语言中,接口(interface)和类型嵌入(type embedding)是非常重要的概念,它们不仅仅是Go编程的核心特性之一,而且它们在Go语言的设计哲学中占据了非常重要的位置。理解它们的细节对于掌握Go的面向对象特性、设计模式以及编写高效的代码至关重要。
2025-05-10 19:57:40
673
原创 Go开发者必读!六大Web框架优缺点全曝光,别再盲目选型了!
以下是主流 Golang Web 框架的综合对比,涵盖性能、功能、适用场景及优缺点,帮助开发者根据项目需求选择合适的框架:
2025-05-07 10:34:36
443
原创 Golang源码分析 - scan.go
scan.go 是 Go 标准库 text/scanner 包的核心文件,实现了一个高效的文本扫描器,用于将输入文本分解为一系列 token(标记)。这个扫描器被广泛用于 Go 语言工具链中,如 go/parser 等。
2025-05-06 18:58:19
696
原创 Golang源码分析-bufio.go
bufio.go 是 Go 标准库 bufio 包的核心文件,它主要实现了带缓冲的 I/O 操作,如 Reader 和 Writer。这在性能优化中非常关键,能显著减少系统调用次数,提高 I/O 效率。
2025-05-06 18:52:26
329
原创 Golang源码分析-io/fs包
定义 文件系统(File System)的抽象接口,使得不仅仅是 OS 文件系统(os 包)能被操作, 还包括:内存中的文件系统、打包文件系统(如 embed)、只读文件系统、虚拟文件系统等。简单说,它就是把“文件系统”从具体实现里抽象出来,让你可以用一套接口操作各种文件系统。
2025-05-06 08:09:55
1077
原创 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
762
原创 Golang源码分析-io.go
在 Go 源码中,io.go 位于标准库 io 包下(src/io/io.go)。 io 包是 输入输出的核心抽象层,它定义了统一的接口,屏蔽了具体数据源(文件、网络、内存缓冲区等)的差异。也就是说,Go 里无论是操作文件、网络、内存,底层用的都是 io 包里定义的接口,确保代码 可组合、可替换、可扩展。
2025-05-06 07:57:43
896
原创 Golang Mutex(互斥锁)讲解
Mutex 全称是 Mutual Exclusion(互斥)。 在并发编程中,它是一种锁机制, 用来: ✅ 保护共享资源, ✅ 保证同一时间 只有一个 goroutine 能访问资源, ✅ 避免竞态条件(race condition)。
2025-05-02 19:31:23
1361
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人