重读code complete 说说代码质量

2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete 的收获吧。

记得第一次读code complete 还是刚毕业的时候,身边好多朋友极力向我推荐此书,于是我就买了一本读起来,可能是当时功力不够,读起来总是觉得没啥味道,而且极为枯燥,总觉得不如<深入浅出MFC>,<CLR Var C#>,<Windows Internals>等来的痛快,惶惶不得其精髓,只是当小说一样草草看了一遍。

慢慢的随着工作深入,自己也参与到更多的开发周期中,比如Plan, 配置团队,做计划,代码审查,控制代码质量,尤其是近两年,每当我看到某些team member一下子提交几十个源文件让我来审查我就有些为难。首先,这么多的代码是一个工程师近一个月的工作量,而审查的时间通常只有1天,这无疑给保证代码质量造成了极大的隐患。说实话我遇到这种情况是的情绪是极为复杂的,我对这样的事情也是极为反感的,这个做根本就是不负责任。当然我也可以不负责任,随便看看就pass, 但是反过来想想,一下子把一个系统中加入那么多的代码,而让其他干别的工作的人用那么短的时间去review你几个月的工作本身就是耍流氓。我通常的办法是既然你耍流氓,那我就不客气了,我在你的每个文件上都给你加上几十个有建设性comments 让你去改,然后在别人改代码的时候我再继续审查在审查代码。

闲下来的时候每每回忆这样的事情,实在是太浪费时间了,我就问问自己能不能有办法处理这些类似问题呢,软件工程发展到今天,一定有无数的人遇到过这样的问题,我所需要做的应该只有学习就够了。

看看下面的条目:

  1. 比如一个项目计划做多久比较合理,计划文档应该写到什么程度
  2. 代码审查一次提交多少比较适合
  3. 如何保证代码质量
  4. 如何配置工程师
  5. 如何高效玩转整个开发周期和流程

    …

有多少是经常困扰你的呢? 当然如果这些问题你都没想过,或者全靠拍脑袋,那我也不好说你什么啦。对于同样的问题,有些团队就可以处理的非常好,而有些团队就极为混乱,我不能说某些团队不行,要怪也只能说团队的领导不行,根本没办法驾驭这些问题。

带着这些问题在最近的两年我在桌上放了两本code complete, 一本中文,一本英文原版,每当遇到类似的问题我就问问它,当然有些问题,它里面也没有描述,其实也不怎么全,呵呵。但是大部分的问题还是让我受益匪浅。

按照我对每个问题的理解我对每种情况作了相应的总结,形成规范,首先自己follow,然后慢慢的潜移默化给整个团队,我发现慢慢的大家的开发效率,代码质量和代码审查效率都有了显著的提高。

这一轮带着经验,带着问题读code complete 让我受益匪浅,如果非要总结原因的话,我想说的是,其实代码大全最少要读两遍,因为没写过一定的代码,没遇到过一定的问题去读它是不可能明白全部的精髓。

重读 code complete 说说代码质量的更多相关文章

  1. 《Code Complete》ch.14 组织直线型的代码

    WHAT? 最简单的控制流:即按照先后顺序放置语句与语句块 WHY? 尽管组织直线型的代码是一个简单的任务,但代码结构上的一些微妙之处还是会对代码质量.正确性.可读性和可维护性带来影响 HOW? 必须 ...

  2. code complete part1

    最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...

  3. 提高代码质量 CheckStyle FindBugs PMD

    提高代码质量-工具篇 注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述 ...

  4. 提高 Android 代码质量的4个工具

    在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...

  5. [git]安装git-pylint-commit-hook提高python项目中的代码质量

    什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...

  6. Code Complete 读后总结和新的扩展阅读计划

    Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...

  7. 提高Java代码质量的Eclipse插件之Checkstyle的使用详解

    提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...

  8. (转)提高代码质量---one

    1. 摘要 这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣. 在发布了关于烂代码的那些事(上)之后,发现这篇文章竟然意外的很受欢迎,很多人也描(tu)述(cao ...

  9. Linux下SonarQube代码质量平台的安装和使用方法

    Sonar简介: Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Java ...

随机推荐

  1. Dom4j 对XMl解析 新手学习,欢迎高手指正

    废话不多,先看代码 public static void main(String args[]){ ReaderXml("d:/example.xml");//读取XML,传入XM ...

  2. PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)-转载

    用Php访问数据的时候,你选择MySQLi和PDO,在选择之前,你应该知道些什么呢? 这篇文章将会介绍这两种方式的不同点,数据库的支持.稳定性.性能等问题. 概述   PDO MySQLi Datab ...

  3. Caused by: java.lang.UnsatisfiedLinkError...解决经历

    Caused by: java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapVOS_v2_1_3: findLibrary returned nu ...

  4. 如何查看Android的Keystore文件的SHA1值

    像使用百度地图api时候,一般需要获取keystore的SHA1值,这里就手把手教大家如何查看Android的keystore文件中的SHA1值. 第一步: 打开cmd,切换到keystore所在的文 ...

  5. 图解集合1:ArrayList

    前言 这个分类中,将会写写Java中的集合.集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织.存储数据.这里写的集合,一部分是比较常 ...

  6. 浏览器兼容性小记-DOM篇(一)

    1.childNodes引入空白节点问题:使用childElementCount或children 2.innerText: FF中不支持该属性,使用textContent代替 3.变量名与某HTML ...

  7. EF 外键问题

    在做一个评论功能的时候,发现用户的id不对,打开数据库一看,莫名其妙的新增了几个用户.明显是将外键中的用户新增到用户表中了. 评论表: public class CourseComment : Bas ...

  8. 今天心情好,一起探讨下《送给大家的200兆SVN代码服务器》怎么管理我们的VS代码?

    前几天给大家免费送了个200兆SVN代码服务器(今天心情好,给各位免费呈上200兆SVN代码服务器一枚,不谢!),还木有领取的速度戳链接哦! 好几位园友拿到SVN服务器都对其赞不绝口,我也用这个服务器 ...

  9. iOS——CALayer的shadow无效问题

    CALayer *sublayer = [CALayer layer]; sublayer.backgroundColor = [UIColor purpleColor].CGColor; subla ...

  10. linux下进程间通信

    信号 信号是进程间相互传递消息的一种方法,只是用来通知某进程发生了什么事件,并不给进程传递任何数据. #include <sys/types.h> #include <unistd. ...