高质量编程与性能调优实践 | 青训营笔记

99 阅读2分钟

一、本堂课重点内容:

  • 高质量编程与性能调优实践
  • 性能优化指南
  • 性能调优实战案例

二、详细知识点介绍:

高质量编程与性能调优实践

编码规范

  • 代码格式

    使用gofmt格式化代码,使用goimports工具进行包导入管理(可以自动导入包,去除不适用的包,并按字典序排列,节省时间)

  • 注释

    • 代码是最好的注释
    • 注释应该提供代码未表达出的上下文信息
  • 命名规范

    • 核心目标是降低阅读理解代码的成本
    • 重点考虑上下文信息,设计简洁清晰的名称
  • 控制流程

    • 线性原理,处理逻辑尽量走直线,避免复杂的嵌套分支
    • 正常流程代码沿着屏幕向下移动
    • 提升代码可维护性和可读性
    • 故障问题多出在复杂的循环语句和条件语句中
  • 错误和异常处理

    • error尽可能提供简明的上下文信息链,方便定位问题
    • panic用于真正异常的情况
    • recover生效范围,在当前goroutine的被defer函数中生效

性能优化指南

  • 使用Benchmark来衡量性能表现

  • Slice预分配内存以减少内存申请,提高运行速度

  • Slice使用copy替代re-slice来减少内存占用,节省内存空间

  • Map预分配内存

  • 字符串处理使用strings.Builder

  • 空结构体节约内存,利用其语义特征,同时不耗费资源(利用map实现set)

  • atomic包原子化操作提高性能

性能调优实战案例

业务服务优化

  • 服务:能单独部署,承载一定功能的程序
  • 依赖:Service A的功能实现依赖Service B的响应结果,称为Service A依赖Service B
  • 调用链路:能支持一个接口请求的相关服务集合及其相互之间的依赖关系
  • 基础库:公共的工具包、中间件

三、课后个人总结:

本节课主要简要介绍了高质量编程的定义和原则,分享了代码格式、注释、命名规范、控制流程、错误和异常处理五方面的常见编码规范。