这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
- 了解完变量命名之后,再看一下函数命名 介绍具体规范 互动问题,可以直接输方法名server或者servehttp就行 大家可以考虑下调用方的实际使用情况,在调用http包的Server方法时,代码是http.Server,携带有http包名,所以函数名中无需添加包信息
- 比函数更高一层的就是包,如何对包进行更好的命名也有一些经验 标准库有很多地方在使用,同时使用时需要指定别名,比较麻烦 需要用多个单词表达上下文的命名可以使用缩写,例如使用 strconv 而不是 stringconversion 包名也涉及到项目代码结构的划分和层次安排,具体名称不同项目会有细微差异,实际保持项目内风格统一
- 总体来说,命名的核心在于降低阅读理解代码的成本 人们在阅读理解代码的时候会尝试模拟计算机运行程序,好的命名能让人把关注点留在主流程上,清晰地理解程序的功能,避免频繁切换到分支细节,增加理解成本 Dave有句话感觉很贴切
- 当我们能够给变量或者函数选择合适的名称后,接下来就是实现具体功能了,经常用到的就是if else这种条件控制语句,那么在使用中需要注意哪些点? 接下来就介绍控制流程的规范 首先是避免嵌套 从最简单的一个if else条件开始,如果两个分支都包含return语句,则可以去除冗余的else 方便后续维护,else一般是正常流程,如过需要在正常流程新增判断逻辑,避免分支嵌套
- 调整后的代码从上到下就是正常流程的执行过程 初步阅读代码时可以先忽略每一步的err情况,对整体流程有更清晰的了解 如果后续想排查问题可以针对具体某一步的错误详细分析 如果后续正常流程新增操作,可以放心地在函数中添加新的代码 右面是go仓库中的代码示例,也是优先处理err情况,保持正常流程的统一