这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
1.高质量简介
- 正确性:是否考虑各种边界条件,错误的调用是否能够处理
- 可靠性:异常情况或者错误的处理策略是否明确,依赖的服务出现异常是否能够处理
- 简洁:逻辑是否简单,后续调整功能或新增功能是否能够快速支持
- 清晰:其他人在阅读理解代码的时候是否能清楚明白,重构或者修改功能是否不会担心出现无法预料的问题
2.编程原则
简单性
消除"多余的复杂性”,以简单清晰的逻辑编写代码 在实际工程项目中,复杂的程序逻辑会让人害怕重构和优化,因为无法明确预知调整造成的影响范围难以理解的逻辑,排查问题时也难以定位,不知道如何修复
可读性
可读性很重要,因为代码是写给人看的,而不是机器在项目不断迭代的过程中,大部分工作是对已有功能的完善或扩展,很少会完全下线某个功能,对应的功能代码实际会生存很长时间。已上线的代码在其生命周期内会被不同的人阅读几十上百次听课时老师经常说的在课堂上不遵守纪律影响全班同学的时间,难以理解的代码会占用后续每一个程序员的时间生产力。编程在当前更多是团队合作,因此团队整体的工作效率是非常重要的一方面。为了降低新成员上手项目代码的成本,Go语言甚至通过工具强制统一所有代码格式 编码在整个项目开发链路中的一个节点,遵循规范,避免常见缺陷的代码能够降低后续联调、测试、验证、上线等各个节点的出现问题的概率,就算出现问题也能抉速排查定位
3.注释
首先是注释应该解释代码作用,这种注释适合说明公共符号,比如加对外提供的函裁注释描述它的功能和用途.只有在函数的功能简单而明显时才能省路这些注释例如,简单的取值和设值丞数另外注释要避免啰嗦,不要对显而易见的内容进行说明.下面的代码中注释就没有必要加上,通过名称可以很容易的知道作用
4。控制流程
线性原理(参考资料里有详细说明),处理逻辑尽量走直线,避免复杂的嵌套分支 Go语言代码不是成功的路径越来越深地嵌套到右边,而是随着函数的执行,正常流程代码会沿着屏幕向下移动 一个功如果可以通过多个功能的线性结合来实现,那它的结构就会非常简单。反过来,用条件分支控制代码、毫无章法地增加状态数等行为会让代码变得淮以理解。需要避免这些行为,提高代码的可读性如果能让正常流程自上而下、简单清晰地进行处理,代码的可读性就会大幅提高,与此同时,可维护性也将提高,添加功能等改良工作将变得更加容易 故障问题大多出现在复杂的条件语句和循环语句中,在维护这种逻辑时,添加功能会变成高风险的操作,很容易遗漏部分条件导致问题