Go高质量编程简介及性能调优 | 青训营笔记

30 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 3 天 通过此次课程可以学到:

  • 如何编写更简洁清晰和高质量代码的代码
  • 常用Go语言程序优化手段
  • 熟悉Go程序性能分析工具
  • 了解工程中性能优化的原则流程

高质量编程

常见编码规范
  1. 高质量代码是什么?

    • 编写的代码能够达到正确可靠、简洁清晰、无性能隐患的目标就能称之为高质量代码

      • 各种边界条件是否考虑完备

      • 异常情况处理,稳定性保证

      • 易读易维护

    • 实际应用场景千变万化,各种语言的特性和语法各不相同,但是高质量编程遵循的原则是相通的

    • 高质量的编程需要注意以下原则:简单性、可读性、生产力

  2. 为什么要写高质量代码?

    • 提升可读性,风格一致的代码更容易维护、需要更少的学习成本、团队合作成本,同时可以降低 Review 成本

性能优化

  • 使用 Benchmark 进行基准测试;

  • 尽可能为 slice 和 map 预分配内存(通过在 make 时指定容量信息);

  • 注意为切片创建切片不会创建新的底层数组,这可能会导致内存泄漏发生,此时可用 copy 代替 re-slice;

  • 多个字符串拼接时,使用 strings.Builder 比直接使用 + 或使用 bytes.Buffer 更快(这和 Java 倒是十分相似,Java 也推荐使用 StringBuilder 拼接多个字符串;其实他们的底层逻辑都是类似的);

  • 当需要占位符时,可使用空结构体(struct{})代替,其不会占据镇和内存空间;

  • 使用 atomic 包代替锁修改变量;