前缀命名

如果您是第一次查看Takes或Cactoos的源代码,则很可能会像其他名称一样被命名约定触发,这意味着大多数类名称都有两个字母的前缀: 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接口的实现。 不是来自JDK的ServletRequest ,不是来自Spring的HttpRequest ,也不是来自OkHttp的 Request 。 您知道这是Takes的Request

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...

python制作简单excel统计报表2之操作excel的模块openpyxl简单用法# codingutf-8 from openpyxl import Workbook, load_workbook from openpyxl.drawing.image import Image from openpyxl.styles import Font,colors from datetime import datetime import MySQLdb class Exce…

2018软科计算机科学与技术排名,又一中国高校“计算机学科排名”发布,清华第1,浙大第2...

计算机类专业是近些年最热门的专业之一,这类专业不仅就业情况好,工资待遇水平也很高,就是在考公务员时也很有优势。现在,大部分高校都已经开设了计算机类专业,我国学习计算机类专业的学生数量非常多,所以&a…

java数字格式化_Java数字格式

java数字格式化当我看到其他人编写不必要的Java代码并且由于缺乏对已经提供所需功能的JDK类的了解而编写了不必要的Java代码时,我会想到很多次。 这样的一个例子是时间相关的常量的使用硬编码值的写入,如60 , 24 , 1440 &#xff…

快手小筷子机器人_小筷子app官方版下载-快手控场机器人小筷子app下载v1.0.0安卓版_289手游网...

快手控场机器人小筷子app是一个专门为快手主播打造的专业实用工具,是每个快手主播的最佳直播伴侣!快手控场机器人小筷子app能够实时与观众弹幕互动,还能语音播报各种礼物答谢等等,帮助每个主播更好的聚拢粉丝。快手控场机器人小筷…

计算机专业英语主要句型及翻译技巧,计算机专业英语单词及翻译等技巧-20210420072747.ppt-原创力文档...

New Words & Expressions:computerlike a. 计算机似的electromechanical a. 机电的, 电机的vacuum tubes 真空管Census Bureau 人口普查局thousands of 成千上万的 known as 通常所说的,以……著称1.1 The Invention of the ComputerAbbreviations:ENIAC(Electr…

安川机器人编程加电弧_安川AR2010机器人

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼安川AR2010机器人 微信hao123ali联系15067165514 安川机器人末端工具快换_桥田_品质承诺实现安川机器人的一机多用, 工装夹具高效切换,专注于提升工业自动化生产线柔性,技术领先,荣获…

再访PMML

嗨伙计! 从今年年初开始,就有了重新设计Drools PMML模块的计划。 在这篇文章中,我将描述我们将如何处理它,目前的状态,未来发展的想法等,等等……敬请期待! 背景 PMML是一个标准,旨…

用计算机怎么弹离人愁数字,拇指琴新手入门曲谱——离人愁

喜欢古风的朋友赶快凑过来啦,最近抖音上超火的离人愁拇指琴教学,喜欢离人愁的小姐姐小哥哥赶快学起来啦!以下琴谱适用于Hugh Tracey G调17键。南非琴出厂调音是G调排列,习惯了C调音阶排列的朋友可能对G调排列不是很适应。因为两者…

支持nvme的linux_Linux nvme驱动初探

本篇研究的nvme驱动基于Linux 3.10.73 ,为什么选择这个版本呢,因为这个版本之后Linux 块层马上就换成支持多队列(可以参考Linux块层多队列之引入内核),小编的SUSE 11.3也正好能编译这个相对比较低的版本。(随后再看最新版本内核上nvme驱动的实现)通过nvm…

jvm7 jvm8_JVM PermGen –您在哪里?

jvm7 jvm8这篇文章介绍了JVM内存结构的一些基础知识,并快速窥视了PermGen,以了解自Java SE 8出现以来它已消失的地方。 裸基础 JVM只是系统上运行的另一个进程,魔术始于java命令。 像任何OS进程一样,它需要内存才能运行。 请记住…

2019网络教育计算机统考模拟试题,最新2019年网络远程教育《计算机应用基础》统考模拟题库500题(含答案)...

2019年网络远程教育统考《计算机应用基础》考试题库500题[含答案]一、选择题1.启动ExCEl2003应用程序后自动建立的工作簿文件的文件名为_______。A.工作簿B.工作簿文件C.BookFilE1D.Book12.OutlookExprEss的主要功能是__________。A.创建电子邮件账户B.搜…

C++类与对象(中)第二篇

前言: C语言中使用运算符是对内置类型的数据进行操作,但是在C中有了对象,导致对象无法通过运算符进行运算,故引入了运算符重载即需要重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特…

松下壁挂式新风系统推荐_松下壁挂式新风怎么样 松下壁挂式新风系统优势介绍【详解】...

现在很多的家庭都是会安装 新风系统 的,这样也是可以保证室内的空气质量的。其实市场上的新风系统品牌是比较多的,比如松下等,其质量是比较不错的,那么松下壁挂式新风系统的优势有哪些?我们来看看小编的相关介绍吧。松下壁挂式新…

ETL万岁

提取转换负载是用于从一个数据系统中提取数据并加载到另一个数据系统中的过程。 涉及的数据系统称为源系统和目标系统。 来自源系统的数据形状与目标系统不匹配,因此需要进行一些转换以使其兼容,该过程称为Transformation 。 转换是由map / filter / re…

云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-

在有些时候我们的手机百度云提示内存不足了,这该怎么办呢?那么下面就由学习啦小编来给你们说说手机百度云提示内存不足的解决方法吧,希望可以帮到你们哦!手机百度云提示内存不足的解决方法一:手机用久了,需要安装杀毒软件&#x…

黑盒攻击的分类_「图像分类」图像分类中的对抗攻击是怎么回事?

欢迎大家来到图像分类专栏,深度学习分类模型虽然性能强大,但是也常常会因为受到小的干扰而性能崩溃,对抗攻击就是专门研究如何提高网络模型鲁棒性的方法,本文简要介绍相关内容。作者 | 郭冰洋编辑 | 言有三1 简介对于人类而言&…

getter/setter_Getters / Setters。 邪恶。 期。

getter/setter从2003年开始,艾伦霍鲁布(Allen Holub)讨论了为什么吸气和塞特方法是邪恶的著名文章,关于吸气/塞特方法是否是反模式,应该避免使用,还是我们在面向对象中不可避免地需要它,这是一个…

flowable画图教程_JeeGit企业级快速开发平台-JeeSite4 Flowable入门教程

注: 998元以下课程无咨询服务该课程包含服务内容:299元含发票在线课程观看权购课后,教学资源联系长春叭姐QQ:3211247533 索要教学内容3.1 第一章 业务流程 BPM、工作流引擎、Flowable、Activiti23.1.1 JeeSite4 Flowable 课程简介…

Java / Spring:如何快速生成整个Swagger记录的CRUD REST API

作为开发人员,我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档。 无论我们的文档只有几行来解释功能的核心功能,还是表明系统的来龙去脉的成熟文章都没关系。 重要的是,我们试图通过文档传达的信息是准确且可理解的…

计算机中的英语六级作文万能模板,大学英语六级作文万能模板7篇

很多人都觉得六级很难,其实主要是作文不会写,今天我们为大家整理了一些六级作文万能模板,大家可以借鉴一下,相信会对大家的提高有所帮助。大学英语六级作文万能模板1∶ 阐述主题型要求从一句话或一个主题出发,按照提纲…