重读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. unity发布安卓 手指控制物体缩放和旋转

    直接帮到物体的身上就可以了 using UnityEngine; using System.Collections;using System.IO;public class hehe : MonoBe ...

  2. halcon车牌的识别

    read_image (Audi2, 'audi2') fill_interlace (Audi2, ImageFilled, 'odd') dev_set_color('green') thresh ...

  3. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)

    說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...

  4. JQuery源码解析(一)

    写在前面:本<JQuery源码解析>系列是基于一些前辈们的文章进行进一步的分析.细化.修改而写出来的,在这边感谢那些慷慨提供科普文档的技术大拿们. 要查阅JQ的源文件请下载开发版的JQ.j ...

  5. Cloneable接口和Object的clone()方法

    为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: public class SimpleObject implements Cloneable { private ...

  6. 【C语言学习】《C Primer Plus》第11章 字符串和字符串函数

    学习总结 1.字符串(character String)是以空字符串(\o)结尾的char数组. 2.gets()方法代表get String,它从系统的标准输入设备(通常是键盘)获取一个字符串,当字 ...

  7. 【读书笔记】.Net并行编程(三)---并行集合

    为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能.而System.Collections和System.Collections.Generic命名空 ...

  8. Android手动签名

    在生成release build时可实现自动签名,所谓手动签名,就是在命令行下完成签名,落实到Android Studio里面,就是在terminal里面做. 下面是三个命令,第一个签名,第二个验证, ...

  9. 趣味C程序-HelloWord

    说明:刚才写了一个基础的helloWord程序(很早以前从其他地方收集的.),本以为群里面的人是可以答对了,但是我错了,没有人.他们的错误往往被程序的外表给蒙蔽了. 很多人的回答是0.如果你仔细看的话 ...

  10. IOS Socket 04-利用框架CocoaAsyncSocket实现客户端/服务器端

    这篇文章,我们介绍CocoaAsyncSocket框架的使用,主要介绍实现客户端/服务器端代码,相信在网上已经很多这样的文章了,这里做一下自己的总结.这里介绍使用GCD方式 一.客户端 1.下载地址 ...