2月20日真是令人难忘的一天。我们从无到有、从郁闷到兴奋,在此期间,大家都围着白板陷入痴狂,而且我们最终真的设计出来一点东西,可以开始往前走了,这感觉令人着迷。
不过我们确实还是走了很多弯路,在这里还是有很多经验教训值得总结:
举出足够典型的样例,根据例子来归纳设计。这其实正是测试先行的一种做法,当我们设计能力并不足以一眼看穿最佳的设计方法时,通过不断的归纳来逼近最佳的(或至少是可行的)设计是最有效的方法。例如,XophiiX的第一个设计,虽然并不能解决所有问题,但至少也是一个能够解决问题的设计(不要怀疑,这是真的),它比那种纯粹的空中楼阁好多了。
先从最粗略的系统流程开始考虑。这里说的流程并不一定指的是数据流图,还可能是状态迁移、用例图等等,反正就是最粗略的东西,只要能够理解需求就能够说出来的东西。例如,我画的那个流程图,大家起码都了解设计的重点和难点在哪里。
采用隐喻(metaphor)的方法可以形象的找到问题的切入点。我不知道原理到底是什么,但是当我们找到一个可以类比的实际系统之后,我们的思路就开阔和活跃了许多,甚至类的职责都可以通过类比来确定。例如,我们把收集词元信息比作“作坊”,然后再想象作坊内部运作模式,惊奇地发现思路一下就通了。
尽量在一开始就降低类之间的耦合。在设计之初降低耦合往往只是举手之劳,但是如果最开始没有理会这样的问题,那么到以后再试图解耦合则可能会造成极大的代价。例如,如果作坊一开始就需要专门为一个客户服务,那么如果我们需要加入更多用户就必须改动作坊的内部实现,而且测试的时候也需要假定作坊的客户是稳定的,实在是不爽。其实为了使类拥有“易测试性”,解耦合是非常必要的。
文章来源于领测软件测试网 https://www.ltesting.net/