OO编程基本功(2)--命名

OO编程基本功(2)--命名

1. 使用词组作为函数名称,名词作为类名称,描述性的词作为变量名

如果business使用了domain model,类名称通常为model的名称,就是我们domain model里面直接map过来的名称:

Customer

Student

Account

注意,如果出现了XxManager , XXExecutor , XXProcessor 之类的名称,那么要考虑修改design了,因为很可能已经follow过程式的编程思维。

方法名示例

在business 层,方法通常是model发生的动作:

PostPayment();

SubmitOrder();

SaveOrder();

变量名示例

通常,应该尽可能的精确表达出变量所代表的含义:

intelapsedTimeInDays;(而不是Elapseddays或者passedDays)

intdaysSinceCreation;(而不是days)

intdaysSinceModification;(而不是changedDays)

intfileAgeInDays; (而不是fileAge)

2. 不要使用容易引起误导的名字

例如Student[] StudentList 就不是一个好名称, 除非真的是List<Student> 类型,否则最好使用Students,这里可以选择StudentArray 或者Students都是不错的选择.

另外,最好避免使用o 和l,它们和数字1和0看上去非常相似。

3. 使参数的名称有意义

例如

public static void copyChars(char a1[],char a2[]) {

for (int i = 0; i < a1.length; i++) {

a2[i] = a1[i];

}

}

这里的a1和a2,如果不读逻辑,根本不知道代表的是什么,这里比较好的选择是使用source和destination ,使得参数的目的一目了然。

4. 避免缩写和简称

例如chatHistory 写成ch ,让人根本不知道ch代表了什么。任何名称,如果让人需要再mapping一次,就要考虑更换名称了。

5. 同一概念使用统一的词

别忘了,你在完成一个story,别人读代码的时候,就像读一本故事书,读一个类,就像阅读一篇文章,为了保证代码命名的一致性,例如用了Retrieve作为取操作的方法名 就别用Get , 用了Controller作为类名,就别用Manager。

6. 使用programmer 内部词汇作为后缀。

别忘了,所写的代码是给programmer来读,扩展的。因此我们可以使用一些内部词汇作为后缀来增强代码的可读性和类的流畅程度。例如算法相关的可以使用LazyQueue ,模式相关使用了SIMFactory ,AndriodProxy等等。

7. 使用表达统一概念的前缀

例如和地址信息相关的字段:FirstName, LastName, PostalCode , UnitNo , StreetName 等等,当他们一起出现时,我们也许能想到它们共同表达了概念--地址。可是它们单独出现时,FirstName 我们肯定无法猜到它是地址类的一个部分。因此我们可以使用AddrFirstName ,AddrLastName 等等来作为字段名,这样可以有效限制字段的意义就是在表达地址信息的一部分。

OO编程基本功(2)--命名

时间: 2024-08-27 22:36:27

OO编程基本功(2)--命名的相关文章

OO编程基本功(3) 注释

OO编程基本功(3)  注释 1. 避免依赖注释来逃避重构 注释在code中可以使得代码更容易理解,可是相当多的情况下,它会使得程序员过于"依赖"注释而容许代码的自我说明程度降低. 需要注释?是否代码名称不够清晰,或者代码的抽象层次混乱,还是代码的动机不够明确导致需要注释来做额外说明?合格的代码本身一般是不需要额外注释的. 例如: //newPasswordMUST at least 6 digits User.Password= newPassword ; 可以重构为: privat

OO 编程基本功--(1)

OO编程的基本功 (1) 本系列将浅谈一些OO编程语言的基本功. 编程的基本功决定了代码质量,编程思路以及编程水平,在工作中是重中之重.本文作为开篇,介绍一下OO编程中的基础与重点--保证抽象的一致性. Code 什么是Code?把需求转为软件环境下可正确执行的软件的过程,称为编程.而实现这个编程的具体化流程,就叫做写code.在OO的编程世界里,写code既像写story,又像写一篇从抽象到具体的文章. 为了说明本文的主旨-保证抽象的一致性,我们就以code与Story和Code与写文章的对比

编程基本功(4)

编程基本功 (4) 数据结构与对象 数据结构 在OO世界里,数据结构往往意味着没有不论什么能力的纯实体.这样的情况是非常少见的(由于意味着纯粹数据结构的集成). 样例: public struct Point { public double X {get; set;} public double Y {get; set;} private double x; private double y; } 1. 我们能够用它来存一个点,这个点能够是不论什么形状的一部分 2. 它不具备不论什么能力,仅仅是

脚本编程基本功

脚本编程基本功 一.脚本基础 1.格式要求:首行shebang机制:#!/bin/bash 2.#注释(日期.联系方式.作者.目的.文件名) 3.检测脚本中的语法错误 bash -n /path/to/some_script 4.调试执行 bash -x /path/to/some_script 二.变量 1.Shell中变量命名法则:不能使程序中的保留字:例如if, f等:只能使用数字.字母及下划线,且不能以数字开头:见名知义 :统一命名规则:驼峰命名法,大驼峰和小驼峰. 2.Shell中命名

编程基本功训练:流程图画法及练习

对于"程序设计"的工作,很多刚開始学习的人的理解就是"写代码".相同,新手们苦恼的问题是,他们仅仅会"写代码".当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码.敲着敲着,就把自己绕糊涂了.头晕脑胀地坚持下来,程序能执行,阿弥托佛,赶紧撤.这样做出的程序,并不可靠. 在程序设计中,最重要的不是敲代码,而是设计.就像建筑.机械等行业的要画设计图.施工图,程序设计的思路也有必要用图的形式画出来.绘图的过程就是思考的过程,因为其直观性,绘图

编程中的命名设计那点事

编程中的命名设计那点事 在我开始设计系统的时候,我会花去很多时间去设计命名,因为好的命名和好的设计是分不开的. In the beginning was the Word, and the Word was with God, and the Word was God太初有道.道与神同在,道就是神. (约翰福音第一章,第一节) 在设计过程中给类,方法和函数好的命名会带来好的设计,虽然这不是一定成立,但是如果坏的命名那一定不会给你带来好的设计.在设计过程,如果你发现你很难命名某一个模块,某个方法时

java 编程风格和命名规范 【转】

http://www.cnblogs.com/qq78292959/archive/2011/03/17/2076948.html Java编程风格与命名规范 定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性. 包的命名  (全部小写,由域名定义) Java包的名字都是由小写单词组成.但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前

编程基本功训练:流程图画法及练?

对于"程序设计"的工作,很多刚開始学习的人的理解就是"写代码".相同,新手们苦恼的问题是,他们仅仅会"写代码".当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码.敲着敲着,就把自己绕糊涂了.头晕脑胀地坚持下来,程序能执行,阿弥托佛,赶紧撤.这样做出的程序,并不可靠. 在程序设计中,最重要的不是敲代码,而是设计.就像建筑.机械等行业的要画设计图.施工图,程序设计的思路也有必要用图的形式画出来.绘图的过程就是思考的过程,因为其直观性,绘图

阿里巴巴Java 开发手册编程规约之命名风格

1.[强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.这两个符号有特殊用途,代理类等~反例:_name/__name/$Object/name_/name$/Object$2.[强制]代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式.说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义.注意,即使纯拼音命名方式也要避免采用.正例:alibaba/taobao/youku/hangzhou 等国际通用的名称,可视同英文.反例:DaZheProm