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. linux最基本命令

    1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到 ...

  2. NOS服务监控实践

    本文来自网易云社区 作者:王健 一.  背景 此处所说的服务监控程序,是通过模拟用户的请求,对一个系统的服务质量进行监控的程序.服务监控程序的主要目的是,从用户的角度出发,通过发送端到端的请求,确认系 ...

  3. 算法 UVA 11729

     例2:假设当前小光有n个部下,每个部下需要完成一项任务.第i个部下需要小光花Bi分钟交代任务,然后他会立刻独立地.无间断地执行Ji分钟后完成任务.小光需要选择交代任务的顺序,使得所有任务尽早执行完毕 ...

  4. PL/SQL数据库开发那点事

    PL/SQL数据库开发那点事-->编程,存储程序 在SQL*plus 中编写PL/SQL程序,并在SQL*plus 中执行它, PL/SQL块的代码就存放在SQL*plus的缓冲区中.如果在SQ ...

  5. localstorage在safri下的坑

    在ios10.2中的safri浏览器里无痕模式会导致localstorage不能正常使用 具体解决办法如下: if (typeof localStorage === 'object') { try { ...

  6. flask内置函数 send_static_file(filename)

    内部使用的函数将静态文件从静态文件夹发送到浏览器. current_app.send_static_file(filename)

  7. Centos7 安装node(8版本)

    最简洁的命令 yum -y update yum -y install gcc make gcc-c++ openssl-devel wget vim(后面两个如果没有再选择安装) cd /usr/l ...

  8. 深刻理解Python中的元类(metaclass)(转)

    转载地址:http://blog.jobbole.com/21351/ 另外有几点理解记录下: 创建一个实例时,有时会传入参数,这些参数会同时传入 __init__() 和 __new__(),如: ...

  9. 关于typedef的用法

    参考:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html https://wenda.so.com/q/1471668835 ...

  10. 通过overflow: scroll;来实现部分区域的滚动

    在移动端中,我们希望元素的滚动,可以通过一些插件的使用来实现滚动,当然也可以自己来实现. 比如:对于某一个区域,我们可以限制好高度之后,设定:overflow-y: scroll; 这样,就可以实现滚 ...