背景
在日常开发中代码的编写规范很重要,一方面后继维护,另一方面当出现问题的时候能够很快的定位。代码的规范和书写格式还是很重要的,能看出一个程序员日常的修养,以下以c#位为例进行讲解:
1.数据库脚本
- 如果我们采用xml方式,一定要把sql脚本格式化,推荐在线格式化工具:http://tools.jb51.net/code/sql_format_compress
- 或者在本地下载SQLinForm,网址为:http://www.sqlinform.com/license.phtml,效果图如下:
在一些简短的sql脚本里,我们应该遵循关键字全大写,如;selelct或者Selelct应为SELECT,一些列包含关键字应该加上[],在脚本里尽量不要写一些需要隐式转换的语句,这样会消耗性能,排错困难。同时在建表的时候你应该清楚:
- char: 固定长度,存储ANSI字符,不足的补英文半角空格。
- nchar: 固定长度,存储Unicode字符,不足的补英文半角空格
- varchar: 可变长度,存储ANSI字符,根据数据长度自动变化。
- nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。
2.Entitiy
统一采取大驼峰,并且和sql table做统一的映射,并且建立不同文件夹:比如我们建立一个request文件夹,专门放webapi的request body;接着建立一个response文件夹,放置传到前端的实体;同时一些简单地逻辑我们可以在实体类里通过属性的索引去解决,如下:
public string AccountNumber
{
get
{
if (!string.IsNullOrWhiteSpace(_accountNumber))
{
return _accountNumber.Trim();
}
return string.Empty;
}
set { _accountNumber = value; }
}
public string _accountNumber = string.Empty;
3.变量
- 定义全局常量:public const string CONST_STR="",常量名采用全大写
- 对需要通过依赖注入的接口实例化:private readonly Xxxx _Xxx
- 在一个class中定义变量顺序依次为:private, protected, public
- 局部变量:遵循就近原则,何处使用何处定义
- private, protected, public三种类型语句块之间空一行
- public变量采用大驼峰形式:AaaBaa
- private或者protected变量采用:_AaaBaa或者m_AaaBaa
- 局部变量采用:aaaBaa
-
方法参数使用小驼峰:aaaBaa
-
除构造函数外,数量不允许超过7个,8个及8个以上参数使用对象传参或者采用数组参数
4.函数
- 两个函数之间空一行
- 使用Tuple作为返回值时,不允许使用result.Item1, result.Item2等,必须指定Tuple的参数名,且调用时也必须同时指定每个元素类型及参数名,这样避免装箱拆箱的转换
- 在函数里尽量少使用for,foreach,可以使用linq,整体代码看起来简洁
- 代码中,不允许一行出现两个分号
- 对于if,for等代码,即使只有一行代码,也须使用花括号
- 每行代码仅包含一个赋值操作符,不允许在同一行代码对两个变量赋值
- 两处或两处以上的固定字符串,使用全局变量或静态类变量定义,禁止在代码中直接使用硬编码
- 字符串使用Trim+ToUpper(或ToLower)方式进行比较
5.枚举
定义枚举不允许使用默认值,必须手动指定枚举值,且值依次倍增(利于某些情况使用位运算),例如
public enum ExampleEnum
{
# 错误示例
ExampleEnum1;
ExampleEnum2;
# 正确示例
ExampleEnum3 = 1;
ExampleEnum4 = 2;
ExampleEnum5 = 3;
ExampleEnum6 = 4;
}
扫描二维码关注公众号,回复:
11353384 查看本文章