1.命名规范
说明
帕斯卡:单词首字母大写 例如:UserName 驼峰: 除第一个单词后面的单词首字母大写 例如 userName数据库(帕斯卡命名)
表名:项目缩写前缀+T+表名 例如:SK_T_BaseUser
存储过程:项目名称+P+存储过程名称 例如 :SK_P_ResetUserPwd
视图:项目名称+ V+加视图名称 例如: SK_V_UserInfos
函数: 项目名称+F+函数名称 例如: SK_F_SetTimeOut
字段列:表缩写前缀+字段列名 例如 :U_Name WCF框架 类(帕斯卡命名)DAL层类:项目名+类名+DAL 例如: SK_User_DAL
BLL层类:项目名+类名+BLL 例如: SK_User_BLL Model层类:项目名+类名+Model 例如: SK_User_ModelServerControl层 :项目名+类名+ServiceControl 例如:SK_Register_UserControl
InterFace层 :项目名+类名+ServiceControl 例如:SK_Register_InterFace Service层:项目名+类名+Service 例如:SK_Register_Service扩展方法:扩展类名+Extension 例如: String_Extension
工具包类:工具类+Helper 例如:XML_Helper方法
注意:
1.公开方法:帕斯卡命名 GetUserName() 2.方法参数:驼峰命名 GetUserName(String name) 3.声明实例对象:驼峰命名 User _user = new User(); 4.实体公开属性:帕斯卡命名 例如:user.Name 5.命名要有意义 例如:ExistsUser() 是否存在用户 6.根据返回的结果值类型命名 例如:返回bool IsSuccess() 文件夹(帕斯卡)2.注释规范
数据库
单行: -- 多行 /**/ 程序 单行:// 多行:/**/需要加注释的地方
数据库 1.存储过程 2.函数 程序: 1.方法和参数描述 2.config配置节点 3.实体属性 4.枚举 5.模块功能描述 5.方法功能注释 1)逻辑判断条件 2)参数说明 3. 复杂功能说明3.开发流程规范
数据库
1.数据库建模设计 2.数据库字典文档 2.数据库表创建 3.数据库约束/外键 默认值 创建
后端
1.Model实体层创建 2.DAL层创建 3.BLL层创建 4.Service层创建 5.InterFace层创建 6.ServiceControl层创建测试
1.公开服务 wcf服务web测试工具测试(get) 2.公开服务 wcf web网页测试工具(post) 3.添加测试数据 4.服务文档需要加上测试 实例参数与返回结果 5.编写自测试说明+服务说明文档 文档 1.数据库字典(表设计时创建) 2.服务文档(服务公开创建) 3.说明文档(功能模块的详细说明)4.后端框架规范
DAL:负责请求数据库的连接数据,不要附带逻辑操作
BLL:负责处理DAL数据库的逻辑,注意此层封装包含公布方法的所有逻辑 Model:负责封装返回数据的实体对象InterFace:服务接口层 公开服务接口层
Service:服务接口配置层 ServiceControl:服务接口实现层 注意:这个层只会调用BLL层的方法 不会处理任何逻辑,包含公布的配置(web/ios post/get) Lib:公共方法类 1.Tools\:工具类 注意:获取config文件的节点数据 必须用ConfigHelper来调用 2.Extensions\:扩展方法类 注意:参数验证类必须用VerificationExtension类方法来验证 3.Ouput\:输出模版类(分页,输出结果) 4.DbProvider\:数据库驱动类(sql,mongodb)5.文件目录架构规范
Web\ web前端
Ios\ Ios端 Android\ 安卓端 Log\ 日志 Config\ 数据库链接 LuceneData\ 全文检索索引文件路径6.TSQL优化/数据库管理规范
1.查询语句 切忌 select * 查多少 写多少 例如:SELECT Age,Name FROM SK_T_User
2.表字段命名和关键字冲突 [] 括起来 所有关键字必须大写
3.语句优化
1.IN和 NOT IN 看情况使用 IN里面的值固定可以使用,如果是子查询不建议 推荐用 EXISTS 2.LIKE 关键字能不用就不用 使用不用前 % 例如: LIKE '成都%' 3.WHERE 条件的优化 不推荐WHERE后使用函数 4.视图不要嵌套 最多一层 5.表连接 INNER JOIN 内联 (展示 条件符合的组从表的数据) LEFT/RIGHT JOIN 外联 (全部展示 主表数据和相关从表数据) 6.子查询 适用于 子查询的表数据量不是很多话建议使用 如果 子查询的数据量大不建议使用,推荐连表 7.索引 每个表必要的主键(聚集索引) 正确的非聚集索引 适当的覆盖索引4.存储过程
开头结尾加上 SET NOCOUNT ON/OFF 条件判断块 必须 BEGIN END块包起来 5.参数 类型切忌 要给长度 例如:char(12) 多个参数 " , " 隔开 无需 多个 DECLARE 注意中文参数 加 N unicode 6.事务 事务过程必须短(晚开,早关) 开启事务 必须结束 事务错误捕获(回滚) 7.表字段类型 INT 必须不为空 可以加默认值 中/英文 注意 VARCHAR 和 NVARCHAR CHAR 和 NCHAR 考虑硬盘空间 用多少给多少 CHAR(32) TINYINT BIT 不使用TEXT 类型 取代 NVARCHAR(MAX)8.TSQL编程注意事项 外键约束(确保数据库的完整性) 冗余字段(需要手动编写更新,肯能延迟) 索引(聚集索引/非聚集索引 复杂查询必要的索引) 触发器 少用耗内存(能用约束代替的就不用) 表变量和临时表数据量小 可以使用 效率高 数据量大不建议使用(耗内存和硬盘空间) 游标 这个能不使用 切忌不要使用(超级耗内存) CTE(公共表达式) 这个适用于复杂查询 9.测试 sql profiler 工具 监测(可以创建跟踪) SQLQueryStress 工具压力测试 查询计划器(需要了解 表(索引)扫描/查找 等等) 粗略检测 内部底层 系统函数深度检测(SET SHOWPLAN_TEXT ON 、SET STATISTICS IO ON等等)
10.数据库版本变化记录
记录数据库的表字段变化(名称 类型 长度 有默认值,触发器,check约束) 记录表 数据的变化 记录表的函数 视图 存储过程的变化 记录表的索引 记录表的外键约束 11.管理 定时(完整/差异/日志)备份 定时查看 数据库日志/数据库文件 空间情况 定时查看 数据库的死锁和阻塞情况 定时查看 数据库高Io和高CPU 高持续读取时间查询语句 定时查看 数据库那些 不常使用的索引 定时查看 数据库的自定义跟踪记录 定时重建索引(清理索引碎片) 重新更新统计 压缩数据库/日志空间