关闭 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点可能并不详尽,欢迎大家群策群力,提出宝贵的意见和建议,谢谢。

    上一篇返回首页 下一篇

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

    别人在看

    苹果将发布第三财季财报,很可能会超预期

    25 年第三季度 NAND Flash 合约价格预计将上涨 5-10%

    亚马逊网络服务 (AWS) 已裁员数百人

    邦彦邦彦云PC”新一代云上真机解决方案重磅亮相

    苹果Mac book产品线未来两年大升级:M5、M6系列芯片来袭

    净网—2025|代抢?录入?小心 “票圈陷阱”!

    脱下皮衣,英伟达 CEO 黄仁勋穿唐装亮相中国国际供应链促进博览会

    ATTO360 Storage 软件通过单一智能平台重新定义存储管理

    DigitalOcean 推出 DigitalOcean Gradient AI 平台

    网传华为盘古大模型疑似抄袭通义千问,盘古团队否认

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术分享

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

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

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