金融业务中的命名惯例

There are only two hard things in Computer Science: cache invalidation and naming things" - Phil Karlton

计算机科学中最难的两件事情是命名和缓存失效。在面向对象开发实践中,对一个实体对象进行有效的命名,体现了程序员对该问题域的分析理解程度。在本篇文章中,主要就金融业务中的证券领域的常见实体对象以及命名实践进行小结。

本文将从账户资金、交易业务这两个方面入手,介绍下常见业务实体以及命名。本文全部内容来自平常的开发实践以及心得体会,欢迎在文章结尾处评论交流以及转载,转载请注明出处。

总体原则

业务实体命名需满足一致性原则。

一致性原则

具体细分有两点:

  • 在同一个工程中,同一个逻辑对象在不同场合下的名称要相同,以资金为例子,不要一个地方使用AvailFund,另一个地方使用AvailCapital, 其他地方使用AvailMoney,AvailBalance。一种名称只能关联一种逻辑对象,在整个生命周期中,最好不要改动。

  • 在基于第三方接口文档进行二次开发时,变量命名最好同接口文档中提供的字段命名相一致,保持文档和实现的一致性,降低阅读负担。

  • 缩写一致性,比如数量,可用quantity, 也可用qty,还可用amountamt。在同一个工程中,最好只采用一种词汇来表示数量,可在核心词汇前面加上相关业务的表达前缀,比如委托数量 OrderQty,成交数量 DealQty , 这里的核心词汇要保持逻辑一致。

账户资产方面

资金资产方面,常见的英文名称有fund、capital、asset

fund: an amount of money that has been saved or has been made available for a particular purpose
资金:为特定目的而集中汇总的钱。

capital: a large amount of money that is invested or is used to start a business
资本:用来投资或者开启新业务的一大笔资金,带有资本追利含义

asset: a thing of value, especially property, that a person or company owns, which can be used or sold to pay debts
资产:个人或公司拥有的财产所有权,可使用或者变卖偿还债务。在金融行业,既包括账户资金,又包括股票、基金等有价证券在内的资产,是汇总的概念。

balance: the amount that is left after taking numbers or money away from a total
余额:账户变动后剩下的余额。

marketvalue:what sth would be worth if it were sold
市值:持有的有价证券现在卖出的价值

交易业务

交易的核心是委托(entrust),委托有两个方面的要素:人和票。

识别人的要素有:

  • 股东代码(stockHolder)
  • 资金账户(fundAcct)

识别票的要素有:

  • 股票代码(stockCode)
  • 交易市场(market)
  • 委托方向(entrustDir)
  • 价格类型(priceType)
  • 委托价格(entrustPrice)
  • 委托数量(entrustAmount)

一笔委托报出后,柜台会返回委托序号来标志该笔委托,可通过该委托序号对原委托进行撤单。若有批量委托的需求(ETF品种),前端一般向后台获得委托批次号,然后在报单时带上该批次号,柜台会返回该批次号对应的委托序号。

posted @ 2019-06-19 19:44 浩天之家 阅读(...) 评论(...) 编辑 收藏