博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
T 后端规范文档说明 1.0版
阅读量:5954 次
发布时间:2019-06-19

本文共 3099 字,大约阅读时间需要 10 分钟。

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_Model

ServerControl层 :项目名+类名+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 高持续读取时间查询语句
定时查看 数据库那些 不常使用的索引
定时查看 数据库的自定义跟踪记录
定时重建索引(清理索引碎片) 重新更新统计 压缩数据库/日志空间

转载于:https://www.cnblogs.com/2015-04-20/p/5213780.html

你可能感兴趣的文章
Spring学习总结(2)——Spring的常用注解
查看>>
关于IT行业人员吃的都是青春饭?[透彻讲解]
查看>>
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
Android Intent传递对象为什么要序列化?
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>
Can’t create handler inside thread that has not called Looper.prepare()
查看>>