重读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. 使用Roboguice依赖注入规划Android项目

    前言 好久没写博客了,罪过啊-记事本里累积了不少东西,整理整理放上来. 关于依赖注入 Dependency Injection( 依赖注入)可以很好的帮助我们分离模块,降低耦合.提高可测试性.(PS: ...

  2. Python札记 -- 使用easy_install进行模块/包管理

    今天在阅读以前项目代码时,发现里面使用的第三方模块的参数相当诡异,总是对不上.经过分析之后,发现是自己安装的第三方模块跟项目使用的版本不一致.在Python中进行模块/包管理的话,就不得不提到easy ...

  3. PC版淘宝UWP揭秘

    经过第一轮内测后的bug数量:65 2015/11/27 - bug数量 = 60 2015/11/30 - bug数量 = 53 2015/12/1 - bug数量 = 49 2015/12/2 - ...

  4. [.net 面向对象程序设计进阶] (8) 托管与非托管

    本节导读:虽然在.NET编程过程中,绝大多数内存垃圾回收由CLR(公共语言运行时)自动回收,但也有很多需要我们编码回收.掌握托管与非托管的基本知识,可以有效避免某些情况下导致的程序异常. 1.什么是托 ...

  5. [体感游戏] 1、MPU6050数据采集传输与可视化

    最近在研究体感游戏,到目前为止实现了基于51单片机的MPU6050数据采集.利用蓝牙模块将数据传输到上位机,并利用C#自制串口数据高速采集软件,并且将数据通过自制的折线图绘制模块可视化地展示出来等功能 ...

  6. 实战使用Axure设计App,使用WebStorm开发(6) – 迈向后端

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  7. jdk研究——java.lang

    jdk研究 volatile 是什么意思? 如何看jdk源码? 如何调试源码!---------仔细解读关键类,关键代码,常用的api的解释! 自己有疑问的不懂地方-------- 不懂的太多怎么办. ...

  8. Redis集群~StackExchange.Redis(10月6号版1.1.608.0)连接Twemproxy支持Auth指令了

    回到目录 对于StackExchange.Redis这个驱动来说,之前的版本在使用Proxy为Twemproxy代理时,它是不支持Password属性的,即不支持原始的Auth指令,而我也修改过源代码 ...

  9. fir.im Weekly - 人人都需要的 IT 技能图谱

    AlphaGo 与李世石的人机世纪大战落下帷幕,不禁让人思考<失控> 中说道的 "机器正在生物化,而生物正在工程化 ".作为人类,在未来能否保全最后的智力骄傲成为一个疑 ...

  10. CKEditor Html Helpers for ASP.NET MVC3 Razor/WebForms Views

    一.原生方法: 在 razor 中 使用Fckeditor 编辑内容,需要引入js <script src="@Url.Content("~/fckeditor/fckedi ...