Solartimes共识——开发
总则: | ||||||||||||
全小组开发共识,必须共同遵守,共同实现 | ||||||||||||
如本共识中未列出之内容,需要添加或达成共识的,必需通过全小组通过并加入此共识 | ||||||||||||
开发: | ||||||||||||
UI: | ||||||||||||
1、Server端验证用户输入,用Validate Summary出错信息 | ||||||||||||
2、用Button的事件处理事务,不要在Page_Load的时候就处理事务,即使点击Button之后,页面会刷新,都要用Button的Click事件做 | ||||||||||||
3、页面控件在Codebehind的声明复制多一份,以防.Net的IDE在页面转换的时候,丢失了声明,将会导致控件的不可用 | ||||||||||||
4、如果页面控件无事件实现,则删除其在CodeBehind中声明的WithEvent | ||||||||||||
5、如果多个DIV根据状态Show/Hide的,则在CodeBehind中设置Public的该状态属性, 然后在页面中使用Script调用该属性来控制DIV的Show/Hide,不要在CodeBehind中将整个html都gen出来 |
||||||||||||
6、用通用基类ContorlBase中的LinkAttribute方法生成界面上Link节点href的属性值 | ||||||||||||
7、控件命名规则,参照《命名约定(VB)》中对控件命名部分的描述,需要.Net部分的扩展 | ||||||||||||
DB: | ||||||||||||
总则:如果为实现某一功能使用的Code非常复杂,证明这种方法有误。(SQL) | ||||||||||||
表: | ||||||||||||
每个表都必备的字段: | ||||||||||||
XXID:XX根据表名,例如:tbs_Post表中的该字段就应该命名为:PostID,该字段类型为Int,自增长,步长1,PK(主键) | ||||||||||||
CreateDate:每条记录的建立日期都记录在该字段,该字段为DateTime类型,默认值为Getdate() | ||||||||||||
UserID:建立该记录的用户ID,int, | ||||||||||||
UserName:建立该记录的用户名,nvarchar(255) | ||||||||||||
表命名: | ||||||||||||
小写模块名_表名(功能/数据内容描述),例如:tbs_Post、tbs_TokenLog | ||||||||||||
冗余: | ||||||||||||
对一些字段,经常需要用到的,但是却需要通过2个表才能计算获得的,那么令这个字段在2个表中都存在 | ||||||||||||
Log: | ||||||||||||
每条记录进行写操作的时候都记录log,log表属性如下:logID,TableName,RecordID,Description | ||||||||||||
删除记录: | ||||||||||||
先将记录复制到另一个表以备份,然后才删除该记录 | ||||||||||||
存储过程: | ||||||||||||
针对每个表都必须有如下几个存储过程:增、删、改、列表、明细 | ||||||||||||
存储过程命名: | ||||||||||||
小写模块名_子模块名(骆驼)_(操作/结果)描述 | ||||||||||||
例如:tbs_Post_Insert(新增)、tbs_Post_Delete(删除)、tbs_Post_Update(修改)、tbs_Post_Detail(明细) | ||||||||||||
列表:1、tbs_Post_GetIDByType;2、tbs_Post_GetList | ||||||||||||
列表功能现在的做法,需要2个存储过程,1只用来获取列表记录的ID,2通过1中获得的ID获取指定记录 | ||||||||||||
所以,如果有多种获取ID的方法,可以通过增加1类型的存储过程(只获取ID的)来增加功能,2存储过程不必增加 | ||||||||||||
例如,tbs_Post_GetIDByCreateDate | ||||||||||||
BO: | ||||||||||||
Class中: | ||||||||||||
不要加类型 | ||||||||||||
Public变量,骆驼写法,例如:SpliteChar | ||||||||||||
Private变量,下划线开头,且首单词小写,例如:_spliteChar | ||||||||||||
function中的参数:首单词小写,例如:spliteChar |