关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »提高代码质量的12个技巧

    提高代码质量的12个技巧

    2014-10-22 00:00:00 出处:外刊IT评论
    分享

    正如我曾在以前的帖子中提到过,我最近正在教授学生有关于精益软件开发的课程。其中一个我提出的观点就是:质量免费(或者至少能变得便宜)的前提是,我们得先致力于提高质量。

    1.测试驱动开发(TDD)

    要是说要找一个最能提高代码质量同时还要减少bug的实践练习恐怕就非TDD莫属了。它的优点是适用于任何类型的项目和敏捷开发。其历史可以追溯到很早以前,但是直到XP的普及它才渐渐为人所知。当作为能自动化构建和测试实践的持续集成周期的一部分运作的时候,它被称为单元测试。

    很多开发人员并不知道该怎么提高这方面的能力,这需要培训和教育。而且这是一个学习和积累的过程,不要想着能一夜吃成个胖子。

    2.验收测试驱动开发(ATDD)

    这是基于TDD单元测试之后的一个新的水平。这不但表明了验收标准,而且还能在开发工作开始之前自动执行开发需求。在很多情况下,需要专业测试人员和客户携手共同参与到测试中去。

    3.持续集成(CI)

    这能确保新代码不会干扰到已经存在的代码。要是再加上TDD和ATDD一起创建一个自动化、可重复的的测试套件,将会大幅度提高其使用价值。

    4.结对编程

    有关于结对编程的争论似乎已经偃旗息鼓了,同样的人们实际应用的例子也越来越少。这不可谓不是一个遗憾。因为在即时的代码审查上,两个脑袋总比一个管用。它也允许开发人员将注意力全部灌注到手头的工作上——不必分心于电话、邮件、短信等等,因为我们的partner会搞定。

    5.代码审查

    要是没办法结对编程,那么退而求其次,至少得进行一次代码审查。最好代码一写好就能落实到位一个轻量级流程的代码审查。我们在学校里学的那种又大又正规的流程其实并不实际——只有NASA( 美国宇航局)这种不差钱的土豪才买得起。所以换个轻量级的流程,意味着只需20%的成本就能享受80%的相同效果。

    6.静态分析工具

    以前人人都不看好所谓的静态分析工具。现在则好了很多,虽然它们仍然并不能真正替代代码审查,但是其使用成本比较低。当然可能需要购买许可证,但是一旦将它们设置进系统中之后,以后每一次我们输入代码,它们都会一丝不苟兢兢业业地检查并且快速提示发现的所有错误。

    7.编码标准

    老实说我并不怎么喜欢编码标准。从我的经验来看,很多团队在讨论编码标准上面浪费了太多的时间,而且一旦确定了某种标准,这往往会损害一部分开发人员的利益。不过要是我们能克服这些问题,那么绝对会有意想不到的效果。

    首先建立一个讨论小组——应该以一种面对面的形式,不要通过电子邮件和电话——讨论出编码标准里应该包含哪些内容。找到需要讨论的地方,规分为不同的类别:少许定位为必选项目,推荐项目的数量可以较前者多点,候选项目则可以更多。在候选组里的需要经过深思熟虑之后才能放到推荐组和必选组中。剩下的第四组则是明确不能成为编程标准的内容。

    每隔三至四个月检查一下这些标准,看看有没有需要从候选组提升到推荐组,或者从推荐组放到必选组的,要是发现什么已经不适应当前工作的项目,那就尽快删除或者降级。

    此外,我们不应该将编码标准当做代码审查的一部分,而是两手都要抓,两手都要硬,万一不得不遗漏其中之一,可以借助自动化工具,例如运行静态分析工具,自动执行代码标准来检查代码。

    8.自动化

    其实就目前而言,我们提出的大多数意见和建议,是能够自动化执行而且也应该被自动化执行的,但是可惜的是这个概念还没有深入人心。从长远看,非自动化就意味着需要耗费大量的时间,而且成本更高。虽然自动化看似在短期内需要投入大量的成本,但是从整体上而言,其实是节约了成本的。

    9.重构(以及重构工具)

    重构的目的就在于提高代码质量,当然更重要的是,改善整体的设计。要是重构之后不能达到上述目的,那么说明你的思路错了。我们可以在重构的时候摒弃自动化单元测试,而且很多人也是这么做的,但是这等同于高空走钢丝的时候下面没有安全防护网——一旦失足便万劫不复。要是是装备了“安全防护网”的重构不但毋须占用大量时间,而且还能频繁运行。

    以上这些对于能提高代码质量显然是显而易见的。还有一些虽然也在图片名单上,但是并不那么为大家所认可,不过我认为它们也值得包括进去。

    10.展示和说明(早期)

    也许你会奇怪这怎么能提高代码质量呢,请不要怀疑,It does。因为定期展示相关潜在客户对于软件的要求,能促使开发人员不断地将他们的代码保持在最接近发布的状态,这也使得开发进程更快、更细致。

    第二个原因则是能收集更多周期性的反馈,指引我们正确的方向。

    最后,要是一个开发人员害怕将他的工作展现给用户和客户看,这是一个非常危险的信号,最好停下来好好自我检查一番。

    11.用户测试

    用户测试能让我们从另一角度进行测试,以便尽早发现问题。

    与第10点相同,碎片化的处理模式能提供更为细致的步骤。无论是在工作规划上还是在改进代码上面,这都给了我们一个机会,能在做每一个决定之前都可以重新调整和矫正航向。

    12.团队凝聚力

    关于团队的凝聚力其重要性不言而喻,因为一个团队一旦失去了凝聚力,那么大家就会各执己见,各施其力。要想不如此,我们就必须要在开发目标和如何设计代码以及如何改进代码上面的观点达成一致。

    上述12点可能并不详尽,欢迎大家群策群力,提出宝贵的意见和建议,谢谢。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    67款移动应用存在违法违规收集使用个人信息情况

    高通、联发科、汇顶科技等“芯”助力,vivo X200 Ultra及X200s发布

    微软CTO凯文·斯科特:未来AI行业将涌现大量专业智能体

    《中国AIGC产业峰会——万物皆可AI》在北京圆满落幕

    威联通科技推出 16 颗硬盘 SAS 双主动控制器 ES1686dc R2 3U 机架式 NAS,具备 HA 及最佳存储效率

    当漏洞攻击遇上腾讯混元超能力:EdgeOne的Web安全赛博决斗

    上海外骨骼机器人亮相消博会,万元起售引关注,加速研发个人版

    深耕智能文档处理领域,合合信息《智能文档技术与应用白皮书》正式发布

    RootPhone:开启RWA代币化时代的Web3智能终端革命

    华为Mate 80系列全曝光:将出厂预装原生鸿蒙操作系统

    IT头条

    平替CUDA!摩尔线程发布MUSA 4性能分析工具

    00:43

    三起案件揭开侵犯个人信息犯罪的黑灰产业链

    13:59

    百度三年开放2.1万实习岗,全力培育AI领域未来领袖

    00:36

    工信部:一季度,电信业务总量同比增长7.7%,业务收入累计完成4469亿元

    23:42

    Gartner:2024年全球半导体营收6559亿美元,AI助力英伟达首登榜首

    18:04

    技术分享

    iOS 8 中如何集成 Touch ID 功能

    windows7系统中鼠标滑轮键(中键)的快捷应用

    MySQL数据库的23个特别注意的安全事项

    Kruskal 最小生成树算法

    Ubuntu 14.10上安装新的字体图文教程

    Ubuntu14更新后无法进入系统卡在光标界面解怎么办?

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。