今天项目出了一个小BUG,商品详情佣金项不显示了,按照处理逻辑是商品不支持分销或者分销佣金为0,佣金项不显示。但是,按照测试用例,一个应该显示佣金的商品没有显示佣金。打断点联调之后,很快就发现问题了,原来是 过程中为了显示方便,存储价格的字符串把货币符号也存储了,导致价格字符串取float值时,为0了,然后就不显示了。
开发项目,开始的时候命名,数据类型,格式等等,都设计的很好,很规范。慢慢的,时间长了,或者增加新需求了,或者别人接手维护自己的代码了,然后为了方便,就会修改一些东西啦,没按照项目规范了,随意的写一些量,以及随意命名。可能,这个人一直记着还好,一旦什么时候忘了,或者又换人维护代码了,在充分相信命名规范的前提下,经常会犯一些低级的BUG。一个存储价格的字符串,里面却包含货币符号,他是为了显示方便。一个+(BOOL)IsEmpty:(NSString *)命名的方法,返回YES时却代表不为空,他认为存在才是YES,NO是不存在。等等问题,想起来都感觉脸红。
为了一时的方便,放弃了通用的,公认的准则,必然会导致后期或者后来者使用过程中的困惑以及一些低级的BUG。
存储价格的字符串就应该只存储价格,以保证当后面需要价格的数值时,可以直接使用。中途若需要显示货币符号之类的需求,需要实例化一个临时的字符串修改。IsEmpty,是否为空,为空则返回YE,不为空就返回NO。
命名,存储等等,时刻把符合通用规则最为先决规范。