07 高质量的编程简介及编码规范 | 青训营笔记

71 阅读2分钟

编程原则

  • 简单性
  • 可读性
  • 生产力

注释

1、公共符号始终要注释

包中声明的每个公共的符号:

2、变量、常量、函数以及结构都需要添加注释

3、任何既不明显也不简短的公

共功能必须予以注释

4、无论长度或复杂程度如何对库中的任何画数

都必须进行注释

代码规范

1、注释

应该解释代码的作用

应该解释代码是如何做的

代码实现的原因

代码什么情况会出错

细节:命名规范:要有更多的信息,比如 deadline 优于 time

函数编码规范

函数名不携带包名的上下文信息,因为包名和函数名都是成双成对的

函数尽量简短

如何命名 Serve(xxx,xxx) 或者 ServeHTTP(xxx,xxx)

包管理规范

不适用常量变量名作为包名

使用单数而不是复数

谨慎的使用缩写

小结:好的命名就像一个笑话,如果你必须解释它,它就不好笑了。

错误判定:使用errors.ls 可以判定错误连上的错误是否包含有特定的错误

pannic:业务代码中不推荐。但是当程序启动阶段发生不可逆转的错误的时候,可以在init或main函数中使用panic

要结合实际,灵活变通。

func main(){
    if true(){
        defer fmt.Printf("1")
    } else{
        defer fmt.Printf("2")
    }
    defer fmt.Printf("3")
}

defer语句会在函数返回前调用,多个defer语句是后进先出

最终输出结果:31

性能调优原则:

要依靠数据不是猜测

要定位最大瓶颈而不是细枝末节

不要过早优化

不要过度优化

性能分析工具:pprof-排查

topN

list

根据指定的正则表达式查找代码行

web

调用关系可视化

Heap-堆内存

适合图的展示来方便我们分析问题

mutex-锁

求一个关于“锁”的搞笑表情包,让我happy一下。

block-阻塞