重读 code complete 说说代码质量
重读code complete 说说代码质量
2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete 的收获吧。
记得第一次读code complete 还是刚毕业的时候,身边好多朋友极力向我推荐此书,于是我就买了一本读起来,可能是当时功力不够,读起来总是觉得没啥味道,而且极为枯燥,总觉得不如<深入浅出MFC>,<CLR Var C#>,<Windows Internals>等来的痛快,惶惶不得其精髓,只是当小说一样草草看了一遍。
慢慢的随着工作深入,自己也参与到更多的开发周期中,比如Plan, 配置团队,做计划,代码审查,控制代码质量,尤其是近两年,每当我看到某些team member一下子提交几十个源文件让我来审查我就有些为难。首先,这么多的代码是一个工程师近一个月的工作量,而审查的时间通常只有1天,这无疑给保证代码质量造成了极大的隐患。说实话我遇到这种情况是的情绪是极为复杂的,我对这样的事情也是极为反感的,这个做根本就是不负责任。当然我也可以不负责任,随便看看就pass, 但是反过来想想,一下子把一个系统中加入那么多的代码,而让其他干别的工作的人用那么短的时间去review你几个月的工作本身就是耍流氓。我通常的办法是既然你耍流氓,那我就不客气了,我在你的每个文件上都给你加上几十个有建设性comments 让你去改,然后在别人改代码的时候我再继续审查在审查代码。
闲下来的时候每每回忆这样的事情,实在是太浪费时间了,我就问问自己能不能有办法处理这些类似问题呢,软件工程发展到今天,一定有无数的人遇到过这样的问题,我所需要做的应该只有学习就够了。
看看下面的条目:
- 比如一个项目计划做多久比较合理,计划文档应该写到什么程度
- 代码审查一次提交多少比较适合
- 如何保证代码质量
- 如何配置工程师
- 如何高效玩转整个开发周期和流程
…
有多少是经常困扰你的呢? 当然如果这些问题你都没想过,或者全靠拍脑袋,那我也不好说你什么啦。对于同样的问题,有些团队就可以处理的非常好,而有些团队就极为混乱,我不能说某些团队不行,要怪也只能说团队的领导不行,根本没办法驾驭这些问题。

带着这些问题在最近的两年我在桌上放了两本code complete, 一本中文,一本英文原版,每当遇到类似的问题我就问问它,当然有些问题,它里面也没有描述,其实也不怎么全,呵呵。但是大部分的问题还是让我受益匪浅。
按照我对每个问题的理解我对每种情况作了相应的总结,形成规范,首先自己follow,然后慢慢的潜移默化给整个团队,我发现慢慢的大家的开发效率,代码质量和代码审查效率都有了显著的提高。
这一轮带着经验,带着问题读code complete 让我受益匪浅,如果非要总结原因的话,我想说的是,其实代码大全最少要读两遍,因为没写过一定的代码,没遇到过一定的问题去读它是不可能明白全部的精髓。
重读 code complete 说说代码质量的更多相关文章
- 《Code Complete》ch.14 组织直线型的代码
WHAT? 最简单的控制流:即按照先后顺序放置语句与语句块 WHY? 尽管组织直线型的代码是一个简单的任务,但代码结构上的一些微妙之处还是会对代码质量.正确性.可读性和可维护性带来影响 HOW? 必须 ...
- code complete part1
最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...
- 提高代码质量 CheckStyle FindBugs PMD
提高代码质量-工具篇 注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述 ...
- 提高 Android 代码质量的4个工具
在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...
- Code Complete 读后总结和新的扩展阅读计划
Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...
- (转)提高代码质量---one
1. 摘要 这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣. 在发布了关于烂代码的那些事(上)之后,发现这篇文章竟然意外的很受欢迎,很多人也描(tu)述(cao ...
- Linux下SonarQube代码质量平台的安装和使用方法
Sonar简介: Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Java ...
随机推荐
- python 实现简单排序
今天偶得一本神奇的算法秘笈,据编辑说是一本easy and intresting 的书,所以我就开始翻开了. 书中作者用的是C语言,我最近正啃python 所以想着用python来解决作者的提问. 这 ...
- DBCC CHECKDB
DBCC CHECKDB 算是管理员们最常用的命令也是必须要知道的命令了.定期的检查及问题的修复都是比较重要的!!下面介绍一下 DBCC CHECKDB 的一些基本用法. DBCC CHECKDB 完 ...
- 自己写一个java.lang.reflect.Proxy代理的实现
前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...
- 【T-SQL基础】02.联接查询
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...
- 安装金山WPS2013造成的HTML5 file.type值异常
处理代码的兼容性是前端攻城师们的家常便饭了,一般是对各种浏览器进行兼容性处理.但是有时候我们也会遭遇到浏览器以外的影响因素,这个是经常会被忽视掉的内容.比如前几天就听说客户端安装迅雷.暴风影音等软件会 ...
- Java提高篇(三五)-----Java集合细节(一):请为集合指定初始容量
集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许).当这个海.容器的量变得非常大的时候,它的初始容量就会显得很重 ...
- python property
python property 在2.6版本中,添加了一种新的类成员函数的访问方式--property. 原型 class property([fget[, fset[, fdel[, doc]]]] ...
- Windows上帝模式,上帝应该就是这样使用Windows的
Windows上帝模式(Windows Master Control Panel)由来已久,最早是从Win7优化大湿里看到的一个选项,开启后在桌面生成一个图标,点进去后里面包含了几乎全部Windows ...
- 如何将GridViewEX升级到UWP(Universal Windows Platform)平台
引言 上一篇文章中,我们主要讲解了如何在保证GridView控件的用户体验基础上,扩展GridView生成GridViewEx控件,增加动态添加新分组功能等,本文在上文的基础上,介绍如何在Window ...
- MySQL记录
1.unixtime和可读时间的转换 unixtime是距"1970-01-01 08:00:00"的时间秒数 unixtime -> readable select fro ...