Chen Jian

业务中常用的四种计算及其与空值输入的关系

四种运算: 1.普通的四则运算、指数、高等数学运算等 2.求最值 3.汇总/平均 4.统计 第1种运算没什么可说的 如果考虑剩下的三种运算,在处理空值输入时,往往会使得业务逻辑比较复杂    a.如果输入都是空或者没有输入,则结果是空还是零?    b.如果有些输入为空,有些不空,则不空的那个是当作零?还是不参与比较/汇总/平均/统计?   

关于“异常”的胡乱想法

1.每个步骤都有可能发生异常,发生了异常怎么办? 2.异常可分为系统异常和业务上的“非理想状况”。比如一个网上购物网站,连不上支付网关是系统异常,用户余额不足不能支付则属于业务异常。 3.对于批量数据接口异常,要区分以下几种情况:    a.未返回数据    b.返回了批量数据,但只是返回了一个空的容器(如空文件,空的java.util.List)    c.返回了批量数据,但容器里记录的是报错信息    d.返回了批量数据,但容器里记录的信息不是我们想要的信息    e.返回了批量数据,且容器里有我们想要的数据,但是其中某些数据是正常的,某些是错误的 100.异常除了改变程序流程,异常信息本身该怎么记录? 不同级别的异常应有不同的记录方式

注意日常跑批系统中的“非工作日”问题

   在工作日,数据接收者如果没拿到想要的数据,就会报个异常   但在工作日,它不应该报异常的 所以,要么    1. 将工作日、非工作日 的区分应用到程序逻辑中,使系统在非工作日不去获取数据    2. 不做这种区分,仍然报出异常,但要确保这种异常不会对系统的其他方面产生影响,并且用户也要人为地注意:这是个伪异常

当用户提出业务规则时,我们要注意NULL问题和不在值域问题

1.NULL问题 规则:“如果三个月内有一次逾期,那么。。。” 问题是,如果前2个月的逾期信息为空,那怎么办? 这不仅是一个预防空指针的问题,而且还是一个需求问题 2.不在值域问题 规则:如果当前逾期,那么。。。 问题:如果当前逾期的标志不是M0-M6,而是 “侬好”,怎么办?

在系统里注册、登录的“用户”有哪些?

这个真要在做之前考虑周全,因为“用户”跟系统中很多其他资源都是挂勾的。如果一开始没做好,后来做起来就麻烦了 必须要考虑以下问题: 1.有没有guest用户? 此guest和彼guest是否当作同一个人? 对guest的登录点怎么控制? 2.有没有admin,test等系统专有用户? 这种用户在参与业务时该怎么对待? 3.在真实用户里,除了张三、李四,有没有“综合管理员”这种虚拟用户? 她在参与业务时该怎么对待?

当用户轻描淡写地谈到“卡”时

当用户轻描淡写地谈到“卡”时,你必须打断她,并问道:     1.包括贷记卡和准贷记卡吗?     2.包括人民币卡和其他币种卡吗?     3.包括主卡和附卡吗?     4.包括正常卡和已销户卡吗? 当用户轻描淡写地谈到“卡数”时,你必须打断她,并问道:     1.包括贷记卡和准贷记卡吗?     2.包括正常卡和已销户卡吗?     3.主卡和附卡合起来算几张卡?     4.双币卡算几张卡?那种只有美元币种而没有人民币种的卡怎么算? 当用户轻描淡写地谈到“账户数”时,你必须打断她,并问道:     1.指的是卡总数,还是开户机构总数?     2.如果用户在某开户机构开的卡都销掉了,这个账户数还计入吗? 当用户轻描淡写地谈到“额度”时,你必须打断她,并问道:     1.是用户额度还是某张卡的额度?用户额度怎么算?     2.是各张卡的额度总和,还是各张卡中的最高额度?     3.如果用户爸爸给了用户一张附属卡,附属卡额度是否与我们正在谈的“额度”有关?     4.已销户卡的额度算不算进来?     5.如果用户的卡是双币卡,这个额度以哪个为准?     6.如果用户只有 美元卡,这个额度怎么算?