黑马程序员技术交流社区

标题: 如何提升代码质量 [打印本页]

作者: 黑妞~    时间: 2014-8-15 14:32
标题: 如何提升代码质量
本帖最后由 立姐 于 2014-8-15 14:33 编辑

人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的。有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行。代码永远会有Bug,在这方面没有最好只有更好。模块化与面向对象是实现高效无错代码的方法。高效无错代码需要思想与实践的不断反复。如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢?
一、代码质量

软件是交付给用户,并由用户体验的产品;代码则是对软件正确且详细的描述,所以代码质量关系到软件产品的质量。虽然软件质量不等于代码质量,但是代码上的缺陷会严重的影响到软件产品的质量。因此,为提高代码质量的投入是值得的。

二、软件产品质量通常可以从以下六个方面去衡量

功能性,即软件是否满足了客户业务要求;

可用性,即衡量用户使用软件需要付出多大的努力;

可靠性,即软件是否能够一直处在一个稳定的状态上满足可用性;

高效性,即衡量软件正常运行需要耗费多少物理资源;

可维护性,即衡量对已经完成的软件进行调整需要多大的努力;

可移植性,即衡量软件是否能够方便地部署到不同的运行环境中;

三、提高代码质量的具体经验

1. 永远不要复制代码

不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事 在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。

2. 测试你完成的代码

你知道你的代码能做什么,而且试了一下,它确实好用,但你实际上需要充分的验证它。分析所有可能的边界情况,测试在所有可能的条件下它都能如期的工作。如果有参数,传递一些预期范围外的值。传递一个null值。如果可能,让同事看看你的代码,问他们能否弄坏它。单元测试是到达这种目的的常规方法。

3. 代码审查

提交你的代码之前,找个同事一起坐下来,向他解释你做了哪些修改。通常,这样做的过程中你就能发现代码中的错误,而不需要同事说一句话。这比自己审查自己的代码要有效的多得多。

4. 编写不言自明的代码

勿庸置疑,注释是编程中很重要的一部分,但能够不言自明的代码跟胜一筹,因为它能让你在看代码时就能理解它。函数名变量名要慎重选择,好的变量/方法名字放到语言语义环境中时,不懂编程的人都能看懂。

5. 不要使用纯数字

直接把数字嵌入代码中是一种恶习,因为无法说明它们是代表什么的。当有重复时更糟糕——相同的数字在代码的多个地方出现。如果只修改了一个,而忘记了其它的。这就导致bug。一定要用一个命名常量来代表你要表达的数字,即使它在代码里只出现一次。

6. 不要做手工劳动

当做一系列动作时,人类总是喜欢犯错误。如果你在做部署工作,并且不是一步能完成的,那你就是在做错事。尽量的让工作能自动化的完成,减少人为错误。当做工作量很大的任务时,这尤其重要。

7、不要试图死磕代码加快速度,找个更加有效的算法可能更加有效。

8、代码要先做对,在弄快。先使其可靠,再让其更快。先把代码弄干净,再让它变快

9、当发现一个函数具有以下特征时,需要考虑抽取函数

(1)、过长

(2)、嵌套层数过深。

(3)、自然分块,需要使用注释描述该程序块

(4)、判断条件过于复杂

(5)、函数的某些判断分支不断变化

(6)、参数过于复杂

(7)、逻辑重复

10、局部变量应当用途单一

11、程序员应当将整洁的代码风格作为一种习惯,时刻意识到整洁代码的重要性并不断地提高重构技巧

12、关于注释

(1)、如果能用短小函数描述,则使用子函数替代注释本身。

(2)、确保注释和代码表达的意图一致,否则就失去了注释的意义。

(3)、在重要的地方写注释,不要注释满天飞,简单的重复代码的功能是毫无意义的。要让每一处注释都有价值。不要过分注释。

13、关于何时重写代码

开发团队要预留20% 的时间用作保持对原有系统的重构。剩余的时间用作开发新功能。

只要有可能,所要重构的部分进行递增修改,让用户切身感受到产品的改进,哪怕将工作时间延长。

黑马微信扫一扫生活更美好





作者: czwanglei    时间: 2014-8-15 14:34
你是哪位?
作者: 黑妞~    时间: 2014-8-15 14:39
czwanglei 发表于 2014-8-15 14:34
你是哪位?

你猜
作者: czwanglei    时间: 2014-8-15 14:44
立姐 发表于 2014-8-15 14:39
你猜

这怎么可以猜到,新报道的吧
作者: 轩辕苍穹    时间: 2014-8-16 12:21
楼主威武!!!!!!!!!!!!!
作者: yds35400829    时间: 2014-8-17 01:49
长知识了,很多精华啊,谢谢楼主无私奉献
作者: 低调小邦    时间: 2014-8-17 06:48
谢谢楼主!
作者: 菜鸟一号    时间: 2014-8-19 09:26
谢谢立姐的分享
作者: adsl    时间: 2014-8-19 10:50
收藏了!
作者: 不淡定,小学生    时间: 2014-8-21 19:42
嗯呢。。
作者: 静水流深2014    时间: 2014-8-23 13:38
我感觉首先还是要对流程有很好的认识,然后再是架构设计比较好才行。
作者: 许愿じ☆VE杰    时间: 2014-8-25 12:34
留着以后学习
作者: clevergump    时间: 2014-9-21 17:04
多谢分享
作者: H._张_♂    时间: 2014-9-26 00:11
受教了.楼主
作者: chuck_heima    时间: 2014-11-10 11:07
说的不错,收了!
作者: 李运岚    时间: 2014-11-13 09:34
很有帮助。。。。。。
作者: 怪物军师    时间: 2014-12-3 19:04
很有帮助
作者: l763631191    时间: 2014-12-5 12:59
很好 很有帮组
作者: sunspot    时间: 2014-12-20 23:41
收藏了,谢谢分享
作者: 古月哥欠    时间: 2014-12-23 01:35
很给力,看完后觉得自己需要改进的地方有好多,Thanks
作者: alston    时间: 2014-12-23 07:26
非常不错的经验,学习了!

作者: 六悦唯夏    时间: 2015-1-7 09:38
好的东西需要收藏
作者: 怪物军师    时间: 2015-1-11 22:23
敲代码技巧还有待提高!
作者: HHFSpeed    时间: 2015-1-13 21:21
以后必须做的
作者: qiezhiyi    时间: 2015-1-15 09:29
喜欢立姐发布的帖子
作者: jyl3203217    时间: 2015-1-24 00:20
说的很好,需求这东西最难玩!!
作者: jyl3203217    时间: 2015-1-24 00:24
有理有理!!!
作者: xyycici    时间: 2015-1-29 01:11
关注细节。
作者: 我jiu是wo    时间: 2015-1-30 23:05
666666666666666
作者: 木子轩    时间: 2015-2-7 11:15
珍惜做猿的机会....
作者: 骑士向前    时间: 2015-2-17 09:30
fighting!fighting!
作者: qiezhiyi    时间: 2015-3-5 15:38
路过啦!
作者: DK_bai    时间: 2015-3-15 21:04
谢谢楼主分享
作者: 378939632    时间: 2015-3-19 20:15
很给力,看完后觉得自己需要改进的地方有好多
作者: zhaotiao3080    时间: 2015-3-24 08:33
有效的方法啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2