Change - Why we need coding standards

I have the idea of coding standards when I have to review my team’s code.  I found it's painful to review others' code, for there was no official coding standards that time.  Somebody may say, though we don't have a coding standard, most parts are the same.  How most it is?  We don't know, and they didn't need to do code review that time.

After I worked for an outsourcing company, I found strict coding standards were surprisingly effective and useful.  Nowadays, I believe every programmer is sure that coding standards are useful. Don't say that before I tell you what the coding standards is.  Give you a simple demo:

How about this time?

At our company, we could look at any piece of code, anywhere in msstash, and we could read it. Could you easy to look at a piece of unfamiliar code and understand it?  You will found that it’s awful to read other teams’ code, even other people’s code in your team.  But why, do you think of that?

Do you have the standardization of style - indents, names, file structures, and comment conventions, for yourself, your team, and your company?

After I read MarkCC’s article about coding standards, I think it covered most of the reason why people don’t like it.

There's a suite of common objections to this, codify and simplify as below.

 

It wastes time!

I'm a good coder, and I don't want to waste time on stupidity.  I'm good enough that when I write code, it's clear and easy to understand.  Why should I waste my time on some stupid standard?

I'm an artist!

This is phrased facetiously, but it does reflect a common complaint.  We programmers have a lot of pride in our personal style.  The code that I write really does reflect something about me and how my mind works.  It's a reflection of my skill and my creativity.  If I'm forced into some stupid standard, it seems like it's stifling my creativity.

One size fits all actually fits none!

If you have a coding standard that wasn't designed specifically for your project, then it's probably non-optimal for your project.  That's fine.  Again, it's just syntax: non-optimal doesn't mean bad.

I'm too good for that!

This is actually the most common objection.  It's sort-of a combination of the others, but it gets at an underlying attitude in a direct way.  This is the belief on the part of the complainer that they're a better programmer than whoever wrote the standard, and lowering themselves to following the standard written by the inferior author will reduce the quality of the code.

When you're coding against a standard, there are inevitably going to be places where you disagree with the standard.  There will be places where your personal style is better than the standard. But that doesn't matter.  As long as the standard isn't totally ridiculous, the comprehension benefits are significant enough to more than compensate for that.

But what if the coding standard is totally ridiculous?

Well, then, it's rough to be you: you're screwed.  But that's not really because of the ridiculous coding standard.  It's because you're working for idiots.  But it won’t happen in our company.

Many questions we may meet:

  1. Our team has coding standards, it’s enough.

Coding standards could be personal, team, department, company, industry.  The higher the better and the best is company level.  It makes easy to read code crossing teams and share.

  1. I know what the code meaning.

Code is not for you.  At least it is for your team.

In an agile team, we should conduct code review, pair programming, etc.  All these must base on coding standards.  I guess no one wants to review the code if it’s not your style, much more maintain it.  Buy why it’s your style, only when your style is equal to the company style.

Change - Why we need coding standards的更多相关文章

  1. C# Coding Conventions, Coding Standards & Best Practices

    C# Coding Conventions, Coding Standards & Best Practices Cui, Chikun Overview Introduction This ...

  2. linux c coding style

    Linux kernel coding style This is a short document describing the preferred coding style for the lin ...

  3. [中英对照]Linux kernel coding style | Linux内核编码风格

    Linux kernel coding style | Linux内核编码风格 This is a short document describing the preferred coding sty ...

  4. coding规约的网站, 从sonar中链接过去

    一个coding规约的网站, 从sonar中链接过去的. 挺好. https://wiki.sei.cmu.edu/confluence/display/seccode/SEI+CERT+Coding ...

  5. 16/7/8_PHP-书写规范 PHP Coding Standard

    变量命名规范这里感觉 打算采用 匈牙利命名法+驼峰法命名,因为 PHP是弱类型语言,很多时间因为忽略了变量类型而导致犯一些低级错误.所以在前面加上类型名有助于更好的理解代码. 下载是转载 PHP书写规 ...

  6. a* products

    Experience of black-box testing on set-top-boxes/IP-connected devices, games consoles and tablets ht ...

  7. php.ini

    [PHP];;;;;;;;;;;;;;;;;;;; About php.ini   ;;;;;;;;;;;;;;;;;;;;; PHP's initialization file, generally ...

  8. PHP配置详解

    [PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; This file controls many aspects of ...

  9. Java性能提示(全)

    http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLi ...

随机推荐

  1. 【selenium专题】元素定位之多层框架和窗口

    本节知识点 多层框架或窗口切换样式:WebDrvier.switchto().TargetLocator Interface WebDriver.TargetLocator下所有可切换对象 参考API ...

  2. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  3. 二十二、Node.js-get&post

    get: 前台代码: <body> <h1>登录</h1> <form action="/dologin" method="ge ...

  4. [Maven实战-许晓斌]-[第三章] Mave使用入门

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  5. 用xpath来爬图

    # xpath语法可参考http://www.w3school.com.cn/xpath/xpath_syntax.asp# 本博客引用于https://zhuanlan.zhihu.com/some ...

  6. 容器化VS微服务

    1 微服务 1.1 思想 开发人员自己测试.部署和运维自己编写的代码,即自己负责构建生命周期的全部. 1.2 Spring Boot 提供服务化的能力,即把容器.服务所需依赖和服务一起打包成一个jar ...

  7. 在swift工程调用第三方库,Bridging导入头文件提示not found解决办法

    swift语言简洁,上手之后感觉还不错,今天在使用swift调用cocoapods的AFNetworking时候总是提示“'AFNetworking/AFNetworking.h' file not ...

  8. SimpleITK学习(一)基本概念

    断断续续使用simpleitk处理CT和X光图片有些时间了,但是学的知识都比较零散,没有形成系统的概念,于是对着SimpleITK的英文文档https://simpleitk.readthedocs. ...

  9. HDU4622 (查询一段字符串的不同子串个数,后缀自动机)

    http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给出一个字符串和q次询问,每次询问[l,r]区间内不同子串的个数 分析: N<=2000. 我 ...

  10. C# 修改系统时间

    /// <summary> /// 同步服务时间 /// </summary> public class SyncServerTime { //设置系统时间的API函数 [Dl ...