重读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. wxGlade的图标,竟来自名画!

    一直用wxGlade做GUI的,今天突然发现它的图标和一副油画很像,查了下资料果然如此.  wxGlade的图标,而且图标的文件名竟然就叫做mondrian.ico 下面是蒙德里安的作品,<构图 ...

  2. UNET学习笔记2 - 高级API(HLAPI)

    高级API是在实时传输低级API基础上建立起来的,为多人游戏提供大量通用的组件.通过HLAPI开发者仅需少量的工作就可以搭建多人联网游戏. HLAPI 使用命名空间 UnityEngine.Netwo ...

  3. python string intern

    python  字符串是不可变的. 字符串pool会对 t "looklike" Python identifiers 字符串做intern缓存.

  4. Win7环境下搭建Go开发环境,基于VSCode编辑器

    一.在搭建的时候参考以下文章 http://www.cnblogs.com/zsy/archive/2016/02/28/5223957.html http://blog.csdn.net/hil20 ...

  5. 假期实践作业:从IT角度看地铁

    实习时间:2016/02/23——2016/02/26 实习地点:京港地铁14号线 实习报告: 大学四年过得真快,转眼就大三了,大学前两年半的生活可谓多姿多彩,从不懂计算机到对编程感兴趣,期待得最多的 ...

  6. 译文---C#堆VS栈(Part Two)

    前言 在本系列的第一篇文章<C#堆栈对比(Part One)>中,介绍了堆栈的基本功能和值类型以及引用类型在程序运行时的表现,同时也包含了指针作用的讲解. 本文为文章的第二部分,主要讲解参 ...

  7. ios NSLog常见使用

    NSLog常见输出格式 Table 1  Format specifiers supported by the NSString formatting methods and CFString for ...

  8. 说说设计模式~建造者模式(Builder)

    返回目录 建造者模式是我的"设计模式"里创建型模式里的最后一篇,这种模式在实现中,很多架构都用到了,如MVC,MVP,MVVM,它们都是有建造者模式的精髓的,即,创建与表现分享,我 ...

  9. excel表格中如何将内容粘贴到筛选后的可见单元格[转]

    默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到 ...

  10. Android开发学习之路-GSON使用心得(OCR图片识别)

    在安卓中解析JSON串可以使用的方法有很多,比如说用官方提供的JSONObject或者谷歌提供的开源库GSON,以及一些第三方开源库. 这里用的是GSON,为了测试方便,借助了一个百度的api,一个图 ...