惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 热门话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Project Zero
Project Zero
V
Vulnerabilities – Threatpost
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
C
Cisco Blogs
A
Arctic Wolf
月光博客
月光博客
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
量子位
小众软件
小众软件
Latest news
Latest news
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
N
Netflix TechBlog - Medium
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Y
Y Combinator Blog
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
S
Schneier on Security
D
Docker
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
GbyAI
GbyAI
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
H
Help Net Security
Simon Willison's Weblog
Simon Willison's Weblog
J
Java Code Geeks
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tenable Blog
B
Blog
Know Your Adversary
Know Your Adversary
IT之家
IT之家

博客园 - 阿龍

FW:Software Testing What is the difference between modified duration, effective duration and duration? Netezza External Tables --How to use local files in external table How to push master to QA branch in GIT FTPS Firewall Query performance optimization of Vertica (Forward)5 Public Speaking Tips That'll Prepare You for Any Interview (转)The remote certificate is invalid according to the validation procedure (转)测试用例编写规范 (转)测试用例模板(Test Case Template) (转)Facebook如何提高软件质量? 敏捷问题小结 (转)RACI模型(RACI Model) (转)Part 2 - Basic of mocking with Moq (转)MongoDB——安装篇(windows) (转)MongoDB 增加用户 删除用户 修改用户 读写权限 只读权限, (转)MongoDB设置访问权限、设置用户 赎回收益率(Yield to Call,YTC) YTC, YTM, YTW
Change - Why we need coding standards
阿龍 · 2013-07-11 · via 博客园 - 阿龍

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.