引言
优秀代码的评价标准是什么?
一直以来这个问题我都没认真思考过。今天刚好看到了一篇讨论该主体的文章,深有感触,特此记录一下自己的感悟。
结论
如果自己写的代码符合现阶段自己心中优秀代码的评价标准,那么就可以认为代码是优秀的。这里引出2个问题:1. 怎么定义自己心中优秀代码的标准;2. 为什么加入现阶段这个限定词。
问题1解答
俗话说:“一千个读者就有一千个哈姆雷特”,每个人对优秀代码的评价标准都不会完全相同。针对这个问题,我们可以把社会上被大部分人认可的标准来作为自己的评判依据,当然这些标准都是具有一定程度抽象性总结,具体还要看自己现有的专业技能水平和领悟力。如果自己编程过程中达到来这个水平,那么就可以任务自己的代码是优秀的。
问题2解答
编码水平会随着个人时间和阅历的增长而提高,以此推论无论今天我们写出来多么优秀的代码,过段时间再次审阅的时候多多少少都会发现有待提高的部分。这时不能说之前的编码不够优秀,而是现阶段自己对优秀的认知提高了,是一种可喜的进步,概括为一句话就是“重构的意义和重要性”。
延伸
下面主要记录一下哪些标准可以作为优秀代码评价依据。
1. 良好的可读性和可维护性
2. 代码运行的高效性和健壮性
3. 注重代码的质量
4. 优秀的文档风格
5. 谋定而后动
良好的可读性和可维护性
变量和函数命名要遵守:1. 命令可以望文生义;2. 不要出现错误拼写;3. 符合通用的命令规则,比如驼峰法等。
函数编写要简洁明了,尽量采用声明式编程,做了什么比怎么做更能表达意图。里面不要有复杂不清的逻辑,如果有一定要想办法优化。一个函数只赋予该层次上面一种职责,否则需要按层次进行抽象和重组。
类和接口的设计一定要具有合理的层次性,这里需要优秀的设计和抽象能力。既要考虑到现在的业务情况,也要给未来业务的增加和改动留出改动空间。
代码运行的高效性和健壮性
高效性非常重要,在一般的系统里体现不出来,可是在做高性能服务里就是一个核心指标,这个需要我们知道每个代码执行耗时,避免产出没有意义的中间变量,一般耗时比较多的有序列化、反射等
健壮性是指代码的设计考虑到了各种边界情况和可能产出的异常。异常分2类:1. 调用第三方可能出现的异常;2. 自身产出的异常。
注重代码的质量
质量主要包括测试模块的完整和良好的注释风格。测试需要涵盖函数、模块各种可能状态,测试代码里不要出现print之类的语句,应该调用assert来验证结果。在重要的类和函数的开头应该写明对应的功能,但是函数的逻辑就不需要写了,因为好的函数可以一眼看出里面的执行逻辑,如果注释也写了代码的执行逻辑那么就会违反dry原因。
优秀的文档风格
写文档和写代码并不冲突,文档分2类:1. 对内文档;2. 对外文档。对内文档是为编写代码服务的,良好的文档对代码有促进作用,代码只需简单的完成文档里的内容就好。对外文档是给外面人员调用的,需要简单易用,里面目录层级易于被他人接受,文档需要有统一的编写风格。
谋定而后动
写代码前一定要想清楚需要做什么,最好事先进行纸上谈兵,写画好架构和里面的类以及类里面需要实现的函数,和各种调用依赖,从写伪代码开始,不断细化到实现代码,中间多次重审代码,有了足够的把握在编码!
原文地址:https://www.cnblogs.com/guanyong/p/10990518.html