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

golang
golang专题下共有 862 篇文章
  • GolangCLI测试:os/exec模拟命令交互
    GolangCLI测试:os/exec模拟命令交互
    使用os/exec测试Golang的CLI工具,需先创建Cmd对象并指定命令及参数,如cmd:=exec.Command("mycli","--version");接着通过Output()、CombinedOutput()或Run()执行命令并获取结果;检查退出状态码判断命令是否成功,0为成功,非0为失败;模拟用户输入可通过StdinPipe写入输入流;编写可维护测试建议封装函数并采用表格驱动测试;并发测试可用sync.WaitGroup协调;避免文件系统副作用可利
    Golang· Go教程   |  1星期  |   golang 测试技巧 os/exec 命令行交互 CLI工具测试 485浏览 收藏
  • Golang模块复用与内部库搭建实战
    Golang模块复用与内部库搭建实战
    复用Golang公共工具模块并创建内部共享库的解决方案包含以下步骤:1.模块化工具代码,将其封装为独立GoModule,如internal/utils,并按功能拆分为stringutil、timeutil等子包;2.使用Git进行版本控制,采用语义化标签管理版本;3.设计简洁接口,使用godoc编写文档注释;4.在项目中通过goget命令引入依赖,并在go.mod中记录;5.编写单元测试并集成至CI/CD流程。对于模块化策略,小型项目可统一存放,大型项目应按功能拆分以提高维护性但增加复杂度。版本冲突可通过
    Golang· Go教程   |  1星期  |   golang 共享库 485浏览 收藏
  • 手把手教你用Golang实现日志分割与压缩
    手把手教你用Golang实现日志分割与压缩
    日志文件过大会占用磁盘空间,影响系统性能并可能导致服务崩溃。解决方法包括:1.使用Golang标准库log结合os包实现按日期分割日志,但需手动压缩和清理;2.使用第三方库lumberjack实现自动按大小或时间分割、保留备份、压缩等功能;3.结合logrus与lumberjack输出结构化日志并管理日志文件;4.利用系统工具logrotate配置日志分割和压缩,无需修改代码;5.在Docker中使用日志驱动如json-file、syslog或fluentd管理容器日志;6.使用监控工具、脚本定期检查日志
    Golang· Go教程   |  3星期  |   golang 日志分割 lumberjack logrotate Docker日志驱动 484浏览 收藏
  • Golang二进制优化技巧全解析
    Golang二进制优化技巧全解析
    优化Golang二进制文件大小可从以下方面入手:1.使用-ldflags"-s-w"移除调试信息和符号表,减少30%-50%体积,但会增加调试难度;2.使用UPX压缩进一步减小体积,但可能影响启动速度与兼容性;3.通过-ldflags"-extldflags=-static"静态链接以简化部署,尽管体积可能增大;4.利用strip命令在构建后去除符号和调试信息;5.进行代码优化,删除冗余依赖,采用高效算法结构;6.若未使用CGO则设置CGO_ENABLED=0减少依赖;7.使用gotoolobjdump分
    Golang· Go教程   |  2星期  |   golang 二进制优化 484浏览 收藏
  • Golang迭代器模式与遍历技巧解析
    Golang迭代器模式与遍历技巧解析
    迭代器模式是一种设计模式,它将集合的遍历逻辑封装到独立对象中,从而解耦客户端代码与集合实现。在Golang中,虽然没有内置迭代器接口,但可通过结构体和方法自定义实现。1.它通过统一的接口遍历集合,隐藏内部结构;2.实现主要包括集合结构体和迭代器结构体,并定义HasNext()和Next()方法;3.使用迭代器的好处包括简化客户端代码、提高可扩展性、支持延迟加载、提供一致访问方式;4.适用场景有处理多种集合类型、隐藏复杂结构、新增遍历方式不修改原集合、性能敏感应用。例如开发文件系统工具时,可用不同迭代器统一
    Golang· Go教程   |  2星期  |   golang 迭代器模式 484浏览 收藏
  • GolangTCP粘包处理:自定义协议拆包教程
    GolangTCP粘包处理:自定义协议拆包教程
    TCP粘包问题的解决核心在于自定义应用层协议以标识消息边界,并在接收端正确拆包处理。1.TCP粘包是其正常行为,由发送方合并小包、接收方读取慢或数据过大被分片等原因引起。2.协议设计要点包括:消息头包含固定长度字段(如int32)标识消息体长度,结构清晰易编解码。3.Golang实现拆包流程为:持续读取数据至缓冲区,判断是否含完整消息头和消息体,满足条件则提取处理,否则等待后续数据。4.实际开发建议使用bufio.Reader、成熟框架如gRPC,注意字节序一致、缓冲区管理及拆包逻辑独立运行,同时处理连接
    Golang· Go教程   |  6天  |   golang TCP粘包 自定义协议 拆包 消息边界 484浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    338次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    167次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    128次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码