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;}
}

 

posted on 2021-01-15 15:30  蒙蒙浮霁月  阅读(957)  评论(0编辑  收藏  举报