A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑妞~ 金牌黑马   /  2014-8-15 14:32  /  3421 人查看  /  34 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 立姐 于 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% 的时间用作保持对原有系统的重构。剩余的时间用作开发新功能。

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

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




34 个回复

倒序浏览
你是哪位?
回复 使用道具 举报

你猜
回复 使用道具 举报

这怎么可以猜到,新报道的吧
回复 使用道具 举报
楼主威武!!!!!!!!!!!!!
回复 使用道具 举报
长知识了,很多精华啊,谢谢楼主无私奉献
回复 使用道具 举报
谢谢楼主!
回复 使用道具 举报
谢谢立姐的分享
回复 使用道具 举报
adsl 中级黑马 2014-8-19 10:50:34
9#
收藏了!
回复 使用道具 举报
嗯呢。。
回复 使用道具 举报
我感觉首先还是要对流程有很好的认识,然后再是架构设计比较好才行。
回复 使用道具 举报
留着以后学习
回复 使用道具 举报
多谢分享
回复 使用道具 举报
受教了.楼主
回复 使用道具 举报
说的不错,收了!
回复 使用道具 举报
很有帮助。。。。。。
回复 使用道具 举报
怪物军师 来自手机 中级黑马 2014-12-3 19:04:29
17#
很有帮助
回复 使用道具 举报
很好 很有帮组
回复 使用道具 举报
收藏了,谢谢分享
回复 使用道具 举报
很给力,看完后觉得自己需要改进的地方有好多,Thanks
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马