Month: July 2008

关于“异常”的胡乱想法

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.如果用户只有 美元卡,这个额度怎么算?

选择接口文件的格式时,要注意考虑文件格式适应接口变更的能力

如果把各字段做成一行排列在一起,那么当中间某个字段的长度改变、或者在中间增删字段时,其后面所有字段的位置也都将改变,这个文件的解析程序就要大改 如果用XML的话,字段长度、增删字段都不会有这种问题,只不过数据量会大很多,在网络传输中可能会影响效率

需求分析时要考虑“超时”

   对于一个很长的流程,务必要考虑 超时处理机制    最好能做到: 当发生超时后,系统可以自动处理,而不必让用户手动进行强制的、野蛮的操作(如强行叉掉窗口)。   超时的认定机制还分两种:      1.流程启动以后,过了一段时间后未看到预期行为,为超时      2.流程启动以后,在某个时间点后仍未看到预期行为,为超时

对“字段”规格进行需求分析时,要问清楚的地方

1.数据类型,字符串还是数字,还是日期 2.是否可能为空 3.如果为空,是"",还是NULL 4.如果是字符串,最大多少字节 5.如果是数字类型,是整数还是浮点数 6.如果是数字类型,是正数还是负数 7.如果是浮点数,精度是多少 8.如果是一些代号,那么可枚举的范围是什么?空用什么表示?代号大写还是小写 9.如果是货币,是什么币种,是以元为单位还是以万元为单位 10.如果是日期,格式是什么