变量命名的扩展性,我理解的就是当业务发生变化之后,该变量的命名仍然是适用的。
最近在开发中遇到的一个问题就是,定义一个变量,boolean型,用于标志是否需要签署用户服务协议。当前业务需求是,金茂用户、国新用户不需要签署该协议。
于是,我这样命名:
我直接将该标记变量命名为isJinmaoOrGuoxin,当时的想法就是简单直接,“金茂或国鑫”不用签署用户服务协议,所以就用isJinmaoOrGuoxin,其语意就是“是否是金茂或国新”。
但是这样命名不好扩展,假如现在需求变成,“格力或海尔”不用签署用户服务协议,那么这个命名显然就是不合适的。
修改之后:
修改为isNeedSignUserServiceAgreement,语意为“是否需要签署用户服务协议”,这样一来扩展性就好多了,以后不论什么企业需要签署用户服务协议,都可以使用该标志变量。
要明确一点,不存在不需要后期修改或扩展的代码,因为业务需求总是需要根据实际情况作出调整。所以在写代码的时候,一定要考虑到之后可能对代码进行的扩展,切忌写死!