【不靠谱程序员】万事求统一

90 阅读1分钟

那天,数据库评审时,发现一个好现象,我必须得表扬。

我们的礼品系统,礼品单有个是否返回奖券的属性。我看到负责的伙伴定义的字段是 if_return_coupon char(1) comment '是否返回残值:Y-是/N-否'

这有什么值得表扬的呢?

要知道,在我们的系统里,出现了太多的这种在两个数值之间变更的变量,我们程序员都定义成了枚举。 例如,上面的字段,通常会被定义成:

coupon_return_status char(1) comment '残值返回状态:RETURNED-是/UN_RETURNED-否'

对于一个业务复杂、代码量庞大的企业应用,相比来说,哪种更易读?

我们开发团队有一条开发规范:当变量值在有限的范围内变动时,定义成枚举,提高代码可读性。

结果,就出现了各种枚举,包括上面的仅仅在两个值里变更的变量。诸如:开户状态 有个对应的枚举 enum KaiHuStatusEnum{ YiKaiHu, DaiKaiHu} ; 审核状态 有个对应的枚举enum AuditStatusEnum{TO_AUDIT, AUDITED} ; 删除状态 有个对应的枚举enum DeleteStatusEnum{UN_DELETE, DELETED} ;等等等等等等等等等等

枚举是为了提高可读性,如果应用系统里充斥着这样的枚举,反而是一股股的怪味道。