作者:苗现方

想要做好代码质量,咱们不得不提什么是代码质量?本文中讨论的代码质量一般是指代码的风格、重复率和复杂度等,代码是技能团队的价值产物,是宝贵的财富,同样代码质量的好坏可以直接体现出团队的注重程度和技能管理水平。

代码质量的下降是内在原因,通常会恶性循环,主要表现出以下两个特性:

感染性:坏代码总能在部分烘托着只需事务交给达成,代码质量不重要的负面气氛,严峻减低了研发人员的技能热心,破坏工作氛围,导致更多的坏代码呈现。

心思暗示性:在坏代码根底上继续生产坏代码的”罪过”减轻。

为什么会发生这样的成果,这里我与你举个生活中的栗子,我在上个周日拾掇房间,发现一个房间衣柜中的衣服很乱,花了很长时刻才叠放好,过两天晚上下班回家,我发现客厅沙发上也很乱,衣服、电脑、背包、零食几乎日常的小物件都会有,两件事情合在一起想,这确实是一个很有趣的考虑,为什么会是这样的?在一个相对封闭的空间中,任其无意识地随着时刻的开展,房间和沙发也必定很乱,留意,这里我说的是无意识,也便是我并没有刻意放,或许去刻意收拾。带着这个考虑的成果,我又观察了大家的工位、园区内景象,一段时刻内必定会呈现乱象,不过经过一顿管理之后很快康复到有次序,好,大家可以猜到这是什么规律,便是熵增规律,不了解的可以自行网络科普,那么在质量域中依然存在这样的规律,否则熵增规律也不会被古今中外的物理学家所推崇备至,它的界说是:在一个孤立体系里,假如没有外力做功,其总混乱度(即熵)会不断增大。

代码质量在软件项目是一种有序的状态,天然总是向着无序开展的,要想保持这种有序,需求自动投入资源,就像收拾房间,花草修剪一样。

回到咱们的大都开发工作中,咱们面对的现状是这样的:

1、事务交给压力大,需求优先上线,事务逻辑完成优先级最高,没时刻没精力关注代码质量,甚至终极目标便是需求上线,导致坏代码发生,开发功率逐渐下降,随着后续版本的迭代,事务交给压力越来越大。

2、呈现了1的情况后,咱们意识到压力越来越大,为了应付这种交给压力,常见的手段便是添加人力,但是一味的添加人数,沟通成本及风格的一致性无法得到保证,这将进一步发生更多的坏代码。

针对以上2个现状,咱们该怎样着手解决。

我的建议计划是多渠道,体系性解决问题,首先操控人力的很多投入,自动发起对代码质量进行管控,其次继续提高技能升级。但是,从减轻事务交给压力的成果来看,人们往往倾向于添加人力来快速解决问题,技能升级需求靠长期的投入才干有所收成,所以,咱们需求在质量方面添加强有力的管控。

假如做好代码质量管控?

代码质量管控首先应解决两个问题,库存坏代码和增量坏代码。

想解决这两个问题,咱们要对现有的体系、人员、东西、流程整合形成一套体系化的计划。

想要做好代码质量,如何破局?


对代码质量管控,经过在部分内工程实践,我以为需求经历以下这四个进程,部分内建立代码标准准则(EOS)、查看代码问题的自动化东西(bamboo平台)、代码质量查看与代码活动进程绑定(质量门禁)、部分视角下,会集管理代码标准和质量状况的通明(代码质量评测体系)。

进程一:代码质量的根底是标准,包括代码风格的标准、长期一线代码实践标准、与事务需求相关的特别标准,例如风控案牍、反常托底案牍等。

进程二:完成自动化的查看才能是在标准根底之上,经过自动化东西进行查看,包括对代码重复率、圈复杂度、单测case经过率、静态规则扫描等。

进程三:完成质量查看与代码活动进程绑定,在修改-构建-提交-发布各个时段布置查看才能保证上线代码有必要经过机器和人工的多环节查看。

进程四:团队规模逐渐扩展,各事务线项目快速开展,完成标准管理统一、项目要求一致、各项目质量状况通明、比照,建立统一的评测体系。

为了让你有一个很直观的认识,我在下面画了一个张图,期望可以帮助快速了解。

想要做好代码质量,如何破局?


总结:

在日常开发工作中,大家都会想到经过添加人手来缓解项目交给的压力,这是可以了解,但是从全体角度看,人员的添加会发生越来越多的坏代码,使全体的功率下降,这又从而加剧了后续项目交给的压力,在这种压力下,又经过添加人手缓解……让代码质量变的越来越差,这也是房间为什么会越来越乱,是熵增规律在软件质量域的生动体现。

为了抑制这种恶性循环,咱们意识到了经过有用的手段和资源投入进行各项工程实践,逐渐完善代码质量的管控体系,积累很多方法和东西。

目前,我也在积极探索对统一代码质量评测体系的实践,期望逐渐建立一套中心化的代码质量评测体系,在这个体系中让工匠精力、专家文化借住平台进一步传播、让体系的质量更加通明。