This project is read-only.

Infancy 项目 代码规范部分 ---- PP

术语和特殊名词(严格遵循大小写):

1.1 术语:
1.1.1 Infancy
1.1.1 ASP.NET MVC(都大写)
1.1.3 暂没想到 请补充
1.2 特殊名词:
1.2.1 用户名Username
1.2.2 密码Password
1.2.3 ID
1.2.4 论坛(版面) Forum
1.2.5 主题 Thread
1.2.6 回复 Post
1.2.7 好友 Friend
1.2.8 坛内信息 Message
1.2.9 配置 Config


编程风格约定:

1.1 常规风格:
1.1.1 花括号:略。

1.1.2 空格:
1.1.2.1 左花边号之后和右花括号之前加一个空格:public int Count { get; set; }。
1.1.2.2 左花括号前面不要加空格。
1.1.2.3 参数表中逗号之后加一个空格:public int Foo(int a, int b, int c)
1.1.2.4 一元操作符后面不能加空格。

1.1.3 缩进:略。

1.1.4 注释:
1.1.4.1 单个文件头部加注释,附带版本和版权信息(老f来做这个合适)。
1.1.4.2 多行注释每行都使用//注释,避免/* */方式。
1.1.4.3 注释较长的时候不要放在行尾。
1.1.4.4 方法、属性应使用XML注释(如使用,必须保持信息完整规范)。

1.1.5 文件:
1.1.5.1 不要在源文件中包含多个公用类型。嵌套类或区别很小的类例外,扩展方法静态类例外。
1.1.5.2 文件名应该和类型名称相同。
1.1.5.3 目录名称和名称空间应该相同。
1.1.5.4 类型较复杂的情况,应该分组相同类型的成员,如字段、属性、方法等。

1.1.6 语句:
1.1.6.1 :简单的判断语句可以考虑修改为三元运算符: ? :,Nullable值类型也建议使用 ?? 运算符赋值。

类型和成员命名:

1.1 变量: 采用camel命名
1.1.1 示例:infancyStuff
1.1.2 注意:单词必须完整,一般情况下不允许类似conn(connection)的缩写;缩写短语一般首字母大写,其余小写,如: myTcpConnection,非常特殊的缩写采用全大写,如IBM。


1.2 常量: 采用全大写和下划线命名
1.2.1 示例:MYCONNECTIONSTRING
1.2.2 注意:单词必须完整。

1.3 字段:采用以下划线开头,紧接camel命名
1.3.1 示例:_infancyStuff
1.3.2 注意:命名原则见“变量”,常规情况下采用private访问修饰符,常规情况下不命名初始化,如只需赋值一次,加readonly关键字。

1.4 方法:采用Pascal命名
1.4.1 示例:public User GetUserById(Guid id){}
1.4.2 注意:命名原则见“变量”,尽量使用动词作为方法名称,注意尽量不要和类名称重复,如:类名为:User,方法名尽量不要为:FindUser,定义方法的时候注意参数的排列。

1.5 属性:采用Pascal命名
1.5.1 示例:public User Default{ get; set; }
1.5.2 注意:命名原则见“变量”,尽量使用名词作为属性名称,同样不要和类名重复,如:类名为:User,属性名不要为:UserName,如果不需要写get或set内容,请直接使用get; set;简化。
1.6 委托:采用Pascal命名
1.6.1 示例:ForumHandler
1.6.2 注意:事件委托加后缀EventHandler。

1.7 事件: 采用Pascal命名,前面加On
1.7.1 示例:OnLoad
1.7.2 注意:尽量采用微软推荐的事件设计模式。

1.8 类命名:采用Pascal命名
1.8.1 示例:User
1.8.2 注意:命名原则见“变量”。尽量不要使用太一般化的名称,如:Message,应改为如:JsonMessage,名称不要和名称空间重复或冲突,不要给类名加前缀,如:FMessage。
1.9 接口:采用Pascal命名
1.9.1 示例:IForumService
1.9.2 注意:加前缀I(大写),注意不要和名称空间重复或冲突,尽量使用描述性名词:IService、名词短语:IForumService或者形容词:IReuseable。
1.10 异常:采用Pascal命名
1.10.1 示例:ThreadNotFoundException
1.10.2 注意:加后缀Exception。尽量使异常可序列化,要为自定义异常提供常用的构造方法,若有必要,重写ToString除掉有关安全的相关信息。
1.10.3 使用异常:务必正确抛出以下系统异常:
1.10.3.1 InvalidOperationException
1.10.3.2 ArgumentException
1.10.3.3 IndexOutOfRangeException

Last edited Nov 21, 2008 at 6:46 AM by chsword, version 7

Comments

No comments yet.