编码/命名 规范/规则/风格/标准/准则/习惯

创建时间:
2014-03-01 18:29
最近更新:
2018-06-15 08:35

Glossary

Programming Style (编程风格)

Norm on MSDN

  1. .NET Framework 准则和最佳做法 - Entrance
  2. 类库开发的设计准则 - Entrance
  3. 名称准则
  4. Internal Coding Guidelines - Brad Abrams
  5. C# 编码约定 (C# 编程指南) / C# Coding Conventions (C# Programming Guide)

大小写约定 (Capitalization Conventions) on MSDN

http://msdn.microsoft.com/zh-CN/library/ms229043
http://msdn.microsoft.com/en-US/library/ms229043

Pascal:
The PascalCasing convention, used for all identifiers except parameter names, capitalizes the first character of each word (including acronyms over two letters in length).

Camel:
The camelCasing convention, used only for parameter names, capitalizes the first character of each word except the first word.

((75#999999)-- http://msdn.microsoft.com/en-US/library/ms229043

Camel 命名法分为两种

Lower Camel Case: 第一个词的首字母小写,后面每个词的首字母大写。常称为 Camel 命名法。
Upper Camel Case: 第一个词、以及后面每个词的首字母都大写。又称 Pascal Case。常称为 Pascal 命名法。

匈牙利命名法

原理:给每个标识符加上用于说明其数据类型的前缀。
部分匈牙利命名法前缀:

a = array
b = bool
by = byte
c = char
d = double
f = float
fn = function
g = global
h = handle
i = integer
l = long
n = number
o = object
p = pointer
r = regular expression
s = string

优点:能够通过变量的名字来辨别变量的类型,而不必去查找它的定义。
缺点:不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨。
现在 IDE 工具如 VisualStudio,会自动提示变量类型。
把变量类型硬编码在变量名中,缺乏灵活性,所以至今除了一些顽固的 Windows 程序员外已经没有人再使用此命名法。

Resource - HTML, JavaScript, CSS

  1. 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
  2. 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
  3. 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
  4. JavaScript 编码风格约定
  5. JavaScript 编码风格
  6. 网易邮箱前端 JavaScript 编码规范:基础规范
  7. 网易邮箱前端 JavaScript 编码规范:类规范

Resource - SQL & 数据库

  1. T-SQL 编码标准
  2. SQL 编码规范建议
  3. 数据库命名规范 -- 通用

Resource

  1. 项目代码风格要求
  2. 编写高质量的代码 - 从命名入手
  3. 编写高质量的代码 - 从命名入手
  4. 匈牙利命名法的辩思
  5. 代码的印象派:写点好代码吧
  6. 关于烂代码的那些事 (上)
  7. 关于烂代码的那些事 (中)
  8. 如何给变量取个简短且无歧义的名字

Tony Conventions of JavaScript

var CONSTANT_DO_NOT_MODIFY = 123;

function FunctionName(parameterName){
    var variableName = value;
}

window.NamespaceName.ClassName = function(){
    this.AnyProperty = value;
    this._OnlyUseAsInternal = value;
};

var object = {
    AnyProperty: value,
    AnyProperty: function(){}
};
  • JavaScript only function and property, not field.
  • JavaScript property is equal to C# field.
  • JavaScript only public, not private etc.

Tony Conventions of C#

  • Constant Name: all the letters capitalized, use "_" separate words. 所有 常量/常数 均写在类的开头。例如 public const int PAGE_SIZE_MIN = 1;
  • Field Name (private, protected): _camel, noun.
  • Field Name (public): _Pascal, noun.
  • Property Name: Pascal, noun or adjective.
  • Method Name: Pascal, verb.
  • Parameter Name: camel.
  • Enum-Name and Enum-Member: all are Pascal.
  • Event Name: verb.
  • QueryString Name: Pascal.

Tony Conventions of SQL

  1. SQL 关键字大写

Google Style Guides

  1. http://github.com/google/styleguide - Style guides for Google-originated open-source projects
  2. http://google.github.io/styleguide - Google Style Guides
  3. http://google.github.io/styleguide/htmlcssguide.html - Google HTML/CSS Style Guide
  4. http://google.github.io/styleguide/jsguide.html - Google JavaScript Style Guide
  5. http://google.github.io/styleguide/angularjs-google-style.html - An AngularJS Style Guide for Closure Users at Google
  6. http://google.github.io/styleguide/javaguide.html - Google Java Style Guide

阿里巴巴 Java 开发手册 / 代码规范标准

  1. 阿里官方 Java 代码规范标准 《阿里巴巴 Java 开发手册 终极版 v1.3.0》 下载 - 2018-01-30 已下载至 B250 《阿里巴巴Java开发手册终极版v1.3.0.pdf》
  2. http://alibaba.github.io/Alibaba-Java-Coding-Guidelines/ - Alibaba-Java-Coding-Guidelines
  3. http://github.com/alibaba/Alibaba-Java-Coding-Guidelines - Gitbook for AJCG

Guard Clauses (卫语句)

  1. 卫语句 - Replace Nested Conditional with Guard Clauses (以卫语句替换嵌套条件表达式) 的精髓是: 给某个分支以特别的重视。它告诉阅读者: 这种情况很罕见,如果它真的发生了,请做一些必要的整理工作,然后退出。