c++ 前缀 变量命名_前缀命名

c++ 前缀 变量命名

如果您是第一次查看TakesCactoos的源代码,很可能会像其他命名约定一样被命名约定触发,这意味着大多数类名都有两个字母的前缀: BkSafeRqFakeRsWithStatusTkGzip等。 老实说,我还没有见过一个Java开发人员会对这种约定一见钟情。 但是,我看到许多现在爱上它的人。 本文适用于有兴趣从第一类转到第二类的读者。

布法罗66(1998),文森特·加洛(Vincent Gallo)

任何大小合适的软件包,模块,库或框架都具有大量的类。 好吧,它必须有 。 如果不是这样,则肯定是其设计存在问题。 因此,如何命名这些类始终存在问题。 最简单,最明显的方法是在Java及其旗舰框架Spring中使用的方法 :使类名称尽可能具有描述性,并且要尽可能长。 以下是一些示例

  • ObjectFactoryCreatingFactoryBean
  • SimpleBeanFactoryAwareAspectInstanceFactory
  • TransactionAwarePersistenceManagerFactoryProxy
  • AbstractAnnotationConfigDispatcherServletInitializer

这是垃圾,不是吗?

DDD范式是一种更复杂,更耗时的类命名方式,它建议在真实世界中的实体之后使用名词 ,例如港口,汽车,书籍,故事,用户,插座等。 对于软件架构师而言,确定正确的实体是一项巨大的挑战。 一个不好的人只会求助于ConnectionFactoryUtilsDefaultListableBeanFactory并称之为一天。 更专业的人可能要花费数小时或数天的时间,但最终会想出更多由领域驱动的东西。

假设您是后者,并且您设法找到了正确的名词。 您的域中将有多少个? 我相信有几十个。 即使应用程序非常复杂,在其问题域中也不会超过30个实体。 但是, 如上所述 ,类的数量将更大,有时超过一千或更多。 因此,您将面临的第二个问题是如何命名“带有指定实体的类”。 例如,您有一个端口,还有一个随机端口和一个TCP端口,一个端口已经关闭,一个端口尚未打开,依此类推。

会有带有形容词的名词 :随机端口,关闭端口,打开端口,TCP端口,断开端口等等。 您如何命名这些班级? 也许就这么简单: RandomPortOpenedPortClosedPortTcpPort 。 也许可以,但是我认为最好将所有类的公共Port部分转换为公共前缀Pt

  • PtRandom
  • PtOpened
  • PtClosed
  • PtTcp

这种方法的唯一缺点是,新手可能不知道Pt前缀的含义。 确实,学习它可能需要一些时间(几分钟)。 但是,这样做的好处是更大的:一旦您了解了应用程序中存在的所有前缀(由于域中实体的数量非常有限,所以只有少数前缀),您可以立即了解该前缀的哪一部分该类所属的类型层次结构(这来自Takes ):

看到Rq前缀后,您立即了解到您正在处理org.takes.Request接口的实现。 不是来自JDKServletRequest ,不是来自Spring的HttpRequest ,也不是来自OkHttp的 Request 。 您知道这是Takes的Request

因此,通过使用短前缀而不是名词,我们使代码更加清晰。 我们消除了一遍又一遍重复使用相同名词的噪音,并使引用变得更容易。 每个前缀是类型层次结构中类的唯一定位器。

翻译自: https://www.javacodegeeks.com/2020/03/prefixed-naming.html

c++ 前缀 变量命名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值