8.2.4.6 命名所用的语言
这里说的不是编程语言,而是汉语、英语、日语……
给核心域元素命名,使用的语言应该首先考虑精确体现核心域内涵和方便开发团队思考和交流核心域知识。该用汉语就用汉语,该用英语就用英语,该用日语就用日语。
以前经常会考虑转换到编程语言时需要改名的问题。在设计工作流,如果我们使用的编程语言只能用英语命名类、属性、操作等——更严谨的说法应该是编译器广泛支持的字符集比较小,那么还需要一个对编程语言合法的名字。
建模工具例如EA,一般会提供别名(Alias),真实名称用编译器支持的字符集,再加一个别名用于显示。
随着时代的发展,编译器、DBMS等支持的字符集越来越大,上面提到的问题慢慢不再是问题。如果团队成员更熟悉汉语,那么在代码中使用汉语命名即可,省去蹩脚英语或者模糊的汉语拼音缩写(啥?你说“可以加注释嘛”?)给后续工作带来的麻烦。
其他如在文本编辑器中编码时切换输入法、版式不好看、中文标点符号等问题,这和特定编程语言的语法有关,如果能尽量在图形建模时表达核心域逻辑,生成尽可能多的编程语言文本,这方面的麻烦就会小很多。
以上所说仅是针对目标系统的核心域元素的命名,不涉及非核心域部分。非核心域部分内容,和计算机和软件领域有关。这方面的“外语”,不管是计算机和软件专业的各个概念,还是编程语言的关键字,要求软件人员熟练掌握是理所应当的。
例如,浑元形意太极掌门马老师找我们为他的门派搞一套“修炼辅助系统”。作为软件开发人员,能认真去体会马老师说的“化劲”、“武德”、“真气”、“掌门”之类的概念就已经不易,还要把它们变成英语就更难为人了,估计马老师自己也不知道。
但是,作为软件开发人员,不知道什么叫DTO,什么叫Iterator就不应该了,因此,命名为“武德DTO”之类是没有问题的。
如果目标系统是面向国际的,那怎么办呢?还是前面说的,首先考虑精确体现核心域内涵和方便开发团队思考和交流核心域知识。该用汉语就用汉语,该用英语就用英语,该用日语就用日语。
8.2.4.7 类命名用单数
类的名称已经是一个抽象概念,既代表属于这个类的所有对象的集合,也指代集合中的任何一个对象。
例如,“人”这个概念既代表所有符合“人”的特征的对象的集合,我们可以说“人是一种动物”;同时,“人”可以代表“任何一个人的个体”,我们可以说“人有姓名、身高”。这两种用法,分别对应于后文要讲解的泛化和关联关系。
如果用复数表达,例如汉语“人们”,英语“people”,第二种用法就很别扭了,实例“某个人们”是什么?特别是在和其他类关联时,如果本方多重性为多,又该如何处理?

本文探讨了在软件开发中如何根据不同语言精准地命名核心域元素,强调了使用母语的重要性,同时指出随着技术发展,编程语言支持字符集扩大,使得多语言命名在实践中变得更加便捷。文章还通过实例和自测题讨论了类名的单数使用规则,以及避免过度标准化和形容词作名词的问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



