标签:驱动开发 变异 覆盖率 高质量 拉取 lin 保护 点击 产品
摘要:快快建好质量墙,既能保护程序员,也保护项目。
程序员到底应该为所写软件的质量担负多大的责任?有人认为程序员应该为产品负责,也有人认为程序员的主要责任是交付速度,项目质量是项目要去考虑的问题。
程序员编写软件的过程中,会创造有缺陷代码或“Bug”。软件项目的主要目标之一就是在提升质量的同时减少Bug数量。手工测试和同行评审等常用方法都是等代码里已经出现了Bug才去寻找,过于被动。采取预防措施提升代码质量的代价更低,也更为人所青睐。
所有程序员都会犯错,但他们不应该因此而被责罚。该如何解开迷局呢?该怎么做才能够减少代码缺陷、同时允许程序员随意犯错呢?办法是有的。别为了代码质量责怪他们,让项目去关注质量、让程序员能够无所畏惧地全速编码,效果好得不是一点点。办法就是打造一面强大的、自动化的“质量墙”,守护其代码基。墙越强大,程序员就越觉得安全。
首先,他们将在自己的“特性分支”上修改代码和犯错误;
其次,向主代码基提出合并代码变更,建议采取拉取请求的方式;
第三,质量墙将验证这些变更,如果发现任何新错误就会拒绝合入;
最后,只要作者移除掉所有错误,质量墙就会合入这些变更。
软件项目可以采取如下一些技术性和组织性的措施来构建这样的质量墙,并保护源代码不被程序员们所破坏。
让程序员在合并前备受折磨的障碍还有很多。Nygard在他的《发布!软件的设计与部署》书中给出了建议。测试失败?拒绝。Lint有告警?拒绝。集成测试导致构建失败?拒绝。换句话说,拒绝变更的动作越快速越便宜,给项目带来的好处也越大。问题是,如果流程和代码仓有这么多限制,一个程序员怎么做到更快速地交付呢?如果质量墙已经罩住整个项目,那么如下这些技巧,不管谁用都能受益:
如果项目和程序员之间存在利益冲突,那就能创造出高质量的产品并迅速发展。项目可以强化质量,而程序员也可以提交代码向前进、快速频繁地完成变更。但不幸的是,大多数项目都与之背道而驰,他们将质量控制权交予程序员,满心期盼程序员们会“不作恶”。而这会导致沮丧、痛苦、对犯错的持久恐惧、长时间的拖延、责备和羞辱。最终,项目及其程序员两败俱伤。
快快建好质量墙吧,它既保护了程序员,也保护了项目。
标签:驱动开发 变异 覆盖率 高质量 拉取 lin 保护 点击 产品
原文地址:https://www.cnblogs.com/huaweiyun/p/13321651.html