前言 第一篇:项目布局 项目布局 第二篇:代码风格 1.格式化 2.代码行 3.字符串 4.依赖管理 5.初始化 6.错误处理 7.注释 8.命名 9.流程控制 10.函数 11.单元测试 12.日志 13.杂项 第三篇:功能设计 1.常用数据结构 1.不需要指向 interface 的指针 2.编译期验证 interface 合理性 3.在边界处拷贝 slice 和 map 4.枚举从 1 开始 2.函数 1.方法接收器为值和指针的区别 2.使用 defer 释放资源 3.不要在 for 循环中使用 defer 3.并发编程 1.零值 Mutex 是有效的 2.channel size 要么是 1 或 0 4.错误处理 1.错误处理 5.包的使用 1.使用 time 包处理时间 2.使用第三方 atomic 包 6.程序设计 1.避免使用可变全局变量 2.避免在公共结构中嵌入类型 第四篇:最佳性能 0.导语 1.常用数据结构 1.反射虽好,切莫贪杯 2.避免重复转换字符串到字节切片 3.指定容器容量 4.字符串拼接方式 5.[]struct{} 遍历方式 6.切片删除指定元素 7.struct使用指针传递 2.内存管理 1.使用空结构体节省内存 2.struct 布局考虑内存对齐 3.减少逃逸,将变量限制在栈上 4.sync.Pool 复用对象 3.并发编程 1.关于锁 2.限制协程数量 3.使用 sync.Once 避免重复执行 4.使用 sync.Cond 通知协程 第五篇:安全编码 安全编码 参考文献