代码不规范,伙伴泪汪汪,请务必要求自己遵守开发规范,莫要误人误己!
编码七宗罪
为什么要重视技术债务?
那么问题来了,为什么要重视技术债务呢?或者说,烂代码会有什么问题呢?
从用户的角度来说,技术债务的多少好像并不影响用户的直观体验,说白了就是不耽误使用,应该有的功能都很正常。那么比如说,既然 2 天开发的系统,和 1 周开发的系统,从使用的角度来说并没有什么区别,那是不是就意味着,理应选择时间成本更低的方案呢?
显然没有这么简单。举个例子,一个人出门时衣着得体,但是家里却乱成一团,找点东西总是要花很长时间,这当然不是什么值得骄傲的事情。对于软件来说,也是如此。技术债务最直接的影响就是内部代码质量的高低。如果软件内部质量很差,会带来 3 个方面的影响:
额外的研发成本
对一个架构清晰、代码规范、逻辑有序、注释全面的系统来说,新增一个特性可能只需要 1 ~ 2 天时间。但是,同样的需求,在一个混乱的代码里面,可能要花上 1 周甚至是更长的时间。因为,单是理解原有代码的逻辑、理清调用关系、把所有潜在的坑趟出来就不是件容易的事情。更何况还有大量重复的代码,每个地方都要修改一遍,一不小心就会出问题。不稳定的产品质量
代码质量越差,修改问题所带来的影响可能就越大,因为你不知道改了一处内容,会在哪个边缘角落引发异常问题。而且,这类代码往往也没有可靠的测试案例,能够保证修改前和修 改后的逻辑是正确的。如果新增一个功能,导致了严重的线上问题,这时就要面临是继续修改还是回滚的选择问题。因为如果继续修改,可能会越错越多,就像一个无底洞一样,怎么都填不满。难以维护的产品
正是由于以上这些问题,研发人员在维护这种代码的时候往往是小心加谨慎,生怕出问题。这样一来,研发人员宁愿修修补补,也不愿意改变原有的逻辑,这就会导致代码质量陷入一种不断变坏的向下螺旋,越来越难以维护,问题越积累越多,直到再也没办法维护的那一天,就以重构的名义,推倒重来。其实这压根就不是重构,而是重写。另外,如果研发团队整天跟这样的项目打交道,团队的学习能力和工作积极性都有可能受到影响。可见,技术债务的积累就像真的债务一样,属于“出来混,迟早要还”的那种,只不过是谁来还的问题而已。
技术债务导图。