最近看到一篇博客,大致的意思就是网管将原本混乱不堪的交换机整理整齐了,起初交换机是图2那样的,由于越来用的人越多,操作的人越来越多,最终成为了图1那个样子。这不禁让我想到了项目中的代码,原先在刚上线的时候谈不上是完美的,但它总归是整齐的,但是由于中间人员流动,bug修改等等原因吧,最终的结果就是代码一团糟。为什么会出现这样的情况呢?
图1 图2
权限(权利)
拿交换机来说,当自己的网络不通畅的时候自己可以随便进出机房对交换机进行操作,插拔自己的网线的时候只要能让自己的网络通常,那么网线乱一些那又有什么关系呢?第一个人是这样想的同时也是这样做的,紧接着第二个、第三个……久而久之就成了图1的样子,混乱不堪。
同理代码也是一个道理,自己需要实现一个功能,在原来代码的基础上进行修改,只要自己的功能好使代码之间的耦合大一些又有什么关系呢?刚入职的第一个新人是这么想的也是这么做的紧接着第二个、第三个……久而久之仓库中的代码就变成了现在的这个样子,惨不忍睹。
没有权限的人可以操作本不该操作的东西,最终一定会一团糟。因为的人们在自己焦头烂额的时候才顾不上会不会影响他人,尽快将自己手头的棘手的问题解决掉才是重中之重。对于权限管理最经典的一句话就是:权限越低犯错的机会就越少。所以新人直接提交代码到代码库是欠妥的。
责任
出现这样的情况是因为大家只关心自己的一亩三分地,“各扫自家门前雪,休管他人瓦上霜”是每个人的不变信念,问题是“他人”并不是别人,是自己人,他人“瓦上霜”其实就是以后自己的“门前雪”。其实责任这个词就是自私的放大版,胸怀有多宽广责任就有多重大。
记得读过一篇关于代码质量的文章,其中说到一个理论叫破窗理论:一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破;一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟、不堪入目的东西;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹豫地抛,丝毫不觉羞愧。
很多情况下代码晦涩难懂并不是一下子就变成这个样子的,冰冻三尺非一日之寒。从第一个不负责任的人开始代码变得越来越难以维护。如果在提交代码之前有人(几个人)去review要提交的代码,相信出现问题的可能性就大大减小。试想自己的代码是要被全世界程序员读的,相信你会提高自己的代码质量。
行动
发生了这样的事情,最终是要解决的,如果希望永远不发生这样的事情,这是一种理想状态,只有说前面的工作我们尽可能的做好来降低这种事情出现的概率。但是,一旦发现了问题还是需要解决的。而且是立刻解决,否则错误会随着时间的推移解决成本也就越来越大。不要借口说现在没时间,等有时间了如何如何吧。现在没时间以后更没时间,因为以后只会比现在更忙。(什么?项目紧没时间,那么请跳槽,对于一个没有规划急功近利的公司是需要被社会淘汰的,所以你的不离职就是在姑息整个软件行业的不良风气)
Review初期是可以避免很多低级错误的,但是到了后期就流于形式了,因为一直负责review的负责人已经疲惫了。况且很多严重的bug并不是review就能发现的,Review只能找出显而易见的错误。所以,
第一、负责review代码的人决不能固定,而且一份代码可以多人review
第二、不放过任何一个Bug,尤其是因为修改或者新用例带来的bug,这些bug后面就藏着不整洁的代码,需要整个团队耐心的将其挖掘出来解决掉。
相关推荐
PHP 团队基本代码规范,为您的团队优化代码提高代码质量。
其实这些都是代码质量差惹你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导发飙,中层束手无策,工程师抱怨不断,查找bug困难。其实这些都是代码质量差惹的祸。代码...
本文将结合敏捷开发周期短,变化快等特点,介绍如何通过在开发过程中采取一系列步骤来保证和提高整个开发团队的代码质量,并阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,成就高质量的代码,...
代码复用是提高代码质量的最初级阶段,但是在一个多人开发的项目团队中,围绕代码复用值得讨论的问题依然非常多,它依然是一个非常复杂的问题,甚至有时它不再仅仅是一个技术问题,而是一个管理问题。唉,提高代码...
我一直认为CodeReview(代码审查)是软件开发中的... 然而对于我观察到的大部分软件开发团队来说,认真做CodeReview的很少,有的流于形式,有的可能根本就没有CodeReview的环节,代码质量只依赖于事后的测试。也有些
摘要视图订阅摄像头调试Bitbucket 让 pull request变得更强大,可即刻提升团队代码质量云计算行业圆桌论坛【征文】Hadoop十周年特别策划——
摘要视图订阅Bitbucket 让 pull request变得更强大,可即刻提升团队代码质量云计算行业圆桌论坛【征文】Hadoop十周年特别策划——我与Had
Gerrit是一个代码审查工具(通常是Gerrit + Git),强制审核提交的代码,通过后,才会进入git,否则无法入库,审核人员审核判定你代码有问题,你就得重新修改,再次提交。以此来强制代码审核,提高团队代码质量。
团队开发中,代码风格和格式需要统一,不然每个人的注释,格式,写法都不一样,很糟糕的,作为团队技术管理者,如何把控代码质量,首先要从代码格式上统一起来,这是我提供的一份MyEclipseJava开发的代码模板。...
曹刘阳,网名阿当,资深Web前端开发工程师,先后就职于中国雅虎和淘宝,现就职于新浪,一直从事Web前端开发工作,实战经验非常丰富,在通过提高代码质量来增强可维护性方面颇有心得。精通HTML、CSS、JavaScript等...
SonarQube是一个开源的代码质量管理平台,主要用于静态代码分析。它提供了一套工具,可以帮助开发者检测代码中的缺陷、漏洞和...总之SonarQube帮助开发团队更好地理解和管理其代码质量,提高代码的可维护性和可靠性。
这是一份旨在增强团队的开发协作,提高代码质量和打造开发基石的编码风格规范,其中包含了 HTML, JavaScript 和 CSS/SCSS 这几个部分。我们知道,当一个团队开始指定并实行编码规范的话,错误就会变得更加显而易见。...
好的工程就是有统一的结构,有标准的模版,但是无奈每个工程师都有自己的习惯,有了这款神器,相信团队的代码质量绝对会有质的提升 第二版到底做了什么,我放弃第一版的基础上进行升级,而是直接新创建项目 ,...
在这个团队中,进行了案例研究,以分析该指标是否能够测量源代码质量以及促进软件质量的提高。 获得的结果表明,所提出的度量标准适合于通过测量源代码缺陷的能力来帮助提高软件质量。 该项目位于。 DO
为了让开发者更加方便、快速将规范推动并实行起来,阿里基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的...提升代码质量,提高团队研发效能,插件将会一路同行。
1.4 打造高品质的前端代码,提高代码的可维护性——精简、重用、有序 第2章 团队合作 2.1 揭秘前端开发工程师 2.2 欲精一行,必先通十行 2.3 增加代码可读性——注释 2.4 提高重用性——公共组件和私有组件的...
AndroidLintPlus A demo to custom your Lint rules ...使用checkstyle,pmd,findbug共同提高代码质量。 最后一句:程序员何苦为难程序员呢 Feature 1.JavaChineseStringDetector:check chinese string in java f
这些功能可以进一步提高开发效率和代码质量。 使用GitHub非常简单。首先,需要注册一个GitHub账户,并创建一个新的仓库。然后,将代码推送到GitHub仓库中,并与其他开发者协作。 GitHub适用于多种实际应用场景,如...
为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约...提升代码质量,提高团队研发效能,插件将会一路同行。