当前位置:首页 > 文章列表 >golang

golang
golang专题下共有 14013 篇文章
  • Golang实现RPC服务监控与追踪一体化
    Golang实现RPC服务监控与追踪一体化
    可观测RPC服务构建需关注指标、日志与追踪。1.指标方面:使用prometheus/client_golang库,为各RPC接口注册调用次数与耗时统计,采用Histogram记录延迟分布,并通过HTTP接口暴露指标数据,便于Prometheus抓取;2.日志方面:选用logrus或zap等结构化日志库,记录请求ID、方法名、状态等上下文信息,便于问题排查与流程串联;3.追踪方面:引入OpenTelemetrySDK并配置exporter,利用gRPC拦截器记录span信息,自动注入traceID与span
    Golang· Go教程   |  7个月  |   golang 可观测RPC 341浏览 收藏
  • Golang结构体方法与接收者区别解析
    Golang结构体方法与接收者区别解析
    在Go语言中,定义结构体方法时可使用值接收者或指针接收者,1.值接收者用于无需修改结构体状态的方法,操作的是副本;2.指针接收者用于需修改结构体字段的方法,直接作用于原始数据;3.指针接收者方法只能由结构体指针调用(Go可自动取地址),而值接收者方法可由实例或指针调用;4.选择依据包括是否需要修改结构体、结构体大小及性能考量;例如,计算面积适合值接收者,缩放尺寸适合指针接收者。
    Golang· Go教程   |  7个月  |   golang 结构体方法 501浏览 收藏
  • Golangcontext并发控制实用技巧
    Golangcontext并发控制实用技巧
    Golang的context包通过接口和函数实现并发控制,其Value传递机制允许在goroutine间传递请求级数据,但应谨慎使用。1.Value主要用于传递框架级别数据如traceID、认证信息等,业务逻辑建议用参数传递;2.Value是只读的,确保安全性;3.自定义key类型避免冲突。Context取消机制基于channel,调用cancel()关闭channel通知监听的goroutine退出。监听通过ctx.Done()接收信号,结合select实现灵活控制。选择超时策略时,若需指定截止时间用c
    Golang· Go教程   |  7个月  |   golang context包 169浏览 收藏
  • Golang测试技巧:testmain包实用分享
    Golang测试技巧:testmain包实用分享
    集成测试是验证多个组件协同工作是否正确的测试方法,通过testmain包可统一初始化和清理资源。集成测试弥补单元测试无法覆盖真实场景的不足,Golang默认为每个测试文件生成独立程序导致资源重复初始化;testmain提供TestMain函数集中处理setup和teardown,如连接数据库、启动服务等;其优势包括统一入口、资源复用、提升效率;建议将testmain作为独立包供多个模块引用,结构上置于internal/testmain下并提供通用setup/teardown函数;注意事项包括不在TestM
    Golang· Go教程   |  7个月  |   golang 集成测试 468浏览 收藏
  • Golang函数参数为何用指针?性能与可变性解析
    Golang函数参数为何用指针?性能与可变性解析
    Golang函数参数使用指针主要为了修改外部变量和提升性能。当需要在函数内部修改调用方的数据时,应使用指针传递,因为值传递仅操作副本;处理大型数据结构时,指针避免了复制开销,提高效率。但需注意数据竞争问题,避免多goroutine同时修改同一指针指向的数据。若不需要修改原始数据且结构较小,值传递更安全清晰。此外,使用指针时必须检查nil以防止崩溃。接口存储指针副本时,方法调用会影响原始数据,需谨慎处理。
    Golang· Go教程   |  7个月  |   golang 函数参数 447浏览 收藏
  • Golangerrors包常用技巧:New、Wrap与Unwrap解析
    Golangerrors包常用技巧:New、Wrap与Unwrap解析
    在Go语言开发中,errors包的New、Wrap和Unwrap方法是构建清晰错误链的关键工具。使用errors.New可快速创建基础错误,适合参数校验等简单场景;通过Wrap(来自第三方包)可在错误基础上添加上下文信息,形成调用链,便于问题定位;而Unwrap用于提取原始错误,常结合errors.Is或errors.As进行类型判断与处理;建议优先使用fmt.Errorf配合%w标记包装错误,并在统一处理逻辑中判断错误类型,避免冗余包装以保持错误链清晰易读。
    Golang· Go教程   |  7个月  |   golang errors包 245浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    339次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    205次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    168次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码