1.变量采用驼峰命名法,即第一个单词首字母小写,后续的单词首字母大写,如只有一个单词则全部小写,如果是简称则全部大写。
举例:
customer 只有一个单词全部小写
customerName 第一个单词小写,第二个单词首字母大写
PONo 第一个单词PO是简称,全部大写。
customerPO 第一个单词首字母小写,第二个单词PO是简称,全部大写
2.属性和方法的命名与变量命名规则类似,区别在于第一个单词也要首字母大写
举例:
Customer 只有一个单词,首字母大写
CustomerName 每个单词首字母都要大写
PONo 第一个单词PO是简称,全部大写。
GetCustomerPO 每个单词首字母都要大写
3.页面及对应的Action
以下Module会替换成各种单据的模块名,如PR,PO,QR,AG,NF; Entity会替换成各种单据的常用名称,比如PR,PO,QR既可以作为模块名,也可以作为常用名称,但是AG只能是协议的模块名称,Agreement才是常用名称。
场景 |
命名 |
举例 |
说明 |
申请人的清单 |
Module\MyEntity\List |
PO\MyPO\List |
|
单据明细 |
Module\Info\Info |
QR\Info\Info |
|
申请人可做的各种动作 |
Module\MyEntity\Action |
PO\MyPO\Cancel PO\MyPO\Submit |
|
等待处理的清单 |
Module\TobeXXXed\List |
PO\TobeChecked\List QR\TobePublished\Publish |
XXXed是动作的分词形式 |
此状态下可以做的各种动作 |
Module\TobeXXXed\YYY |
PO\TobeChecked\Approve QR\TobePublished\Publish |
YYY是动作的原型形式。如果只有一个动作可做,则一般XXX=YYY |
已处理的清单 |
Module\YYYed\List |
PO\Approved\List |
|
撤销 |
Module\YYYed\Undo |
PO\Approved\Undo |
撤销总是用Undo这个词 |
4.事件命名
事件名 名词+过去分词+Event , 如POCancelledEvent
事件处理程序 事件名+Handler, 如POCancelledEventHandler,如果一个事件有多个处理程序,命名为 事件名+Handler+目的,例如InboundOrderConfirmedEventHandler_GeneratePaymentPlan
事件只用于模块间的通讯,模块内不必使用事件机制。Event对象中应该总是以值的形式传递,不要把Domain对象作为Event对象的一部分传递,如果需要传递某种结构化的数据,可自定义结构再传递。
错误举例
public class PaymentRequestSubittedEvent:IDomainEvent{ public PaymentRequest PaymentRequest{get;set;} }
正确举例
public class PaymentRequestSubittedEvent:IDomainEvent{ public string PaymentRequestNo{get;set;} public DateTime RequestedTime{get;set;} … }
自定义一个结构化数据
public class InboundItemInfo{ public DateTime InboundTime{get;set;} public decimal Quantity{get;set;} } public class InboundOrderConfirmedEvent:IDomainEvent{ public IListItems{get;set;} }