代码整洁之道-第二章-有意义的命名

意义明确

通过变量、函数、类名,就能了解其实际含义。需要注释加以解释的命名,就不算名副其实。

int d; //消耗的时间

×

int daySinceCreation;

避免误导

        1. 名称不要出现容器名

        例如,不要使用accountList来指一组账号。List对程序员有特殊意义,如果这个容器并非是List,会引起错误的判断,更好的命名应该是accountGroup.

        2. 命名相似性尽量小一些

        XYZControllerForEfficientHandlingOfStrings

        XYZControllerForEfficientStorageOfStrings

        上面的两个方法名相似性过大,容易造成错误,难以分辨。

使用能都读出来的名称

genymdms

×

genTimestamp

使用能搜索的名称

以单字母命名的方法仅用于短方法中的本地变量。名称长短大小应该与其作用域大小相适应,如果变量在多处会被使用,应该赋予其易搜索的名称

成员前缀

不必要使用m_前缀来标时成员变量。应该把类和函数做的足够小,消除对前缀的需求。

类名与方法名

类名和对象名应该是名词。如Customer、WiKiPage.

方法名应该是动词或动词短语。如postPayment、deletePage.

重载构造器时,使用描述了参数的静态工厂方法名:

Complex fulcrumPoint = Complex.FromRealNumber(23.0);

接口和实现

在有一个创建形状的抽象工厂(Abstract Factory)的情况下,该工厂是一个接口,要用具体类来实现。

在命名工厂和具体类时,抽象工厂不需要前导字母I,即不需要写成IShapeFactory,我们只希望知道这是个ShapeFactory,不需要前导字母,这是滥用。而其实现类,可以命名为ShapeFactoryImp. (Imp代表Implement,即实现)

一个概念对应一个词

每个抽象概念只选取一个词并一以贯之。如fetch、retrieve、get中确定使用一个来为同种方法命名。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值