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 | ||||||||||||
浙公网安备 33010602011771号