两年多的工作经验,从白丁到熟练工,不断的成长。
2013年的成长,主要在我独立负责了一个功能模块中遇到的各种问题。这些问题也促使我去思考——怎样才能设计出可用,健壮的系统呢?
都不是什么高大上,列举主要是给自己 备个份,也让跟咱一个阶段的同学们作为借鉴。
1. 网络异常处理
公司使用SOA的架构,我所在的系统是业务系统,所以涉及到很多的基于webService的服务调用。自然也就会带来网络异常的情况。第一个版本没有进行过异常的处理,后果是,业务处理的请求已经发出,在等待接收的时候超时,直接将记录设为失败,但当服务端却将业务处理成成功时,就造成了状态的不一致,实际上反映在我的业务里就是没有收用户钱,却帮用户缴了费。
这个点上的问题,其实反映出的是对于异常的处理。异常处理,往往也是需要去领悟,有这个意识。目前除了业务特定的异常,能够想到的是网络和数据库的异常,需要考虑。但是这一类的往往也只能做些补偿的方式。
[困惑]如何合理的看待异常,为异常情况做的事情在设计里可以占多少比重?
2. 字段设计过短:外部流水号,用户姓名
#1 我们系统存储了外部的流水号,当外部流水号发生变动时,我们的数据库就无法处理,结果就是业务失败。
#2 用户姓名设计时,只考虑了个人的用户,当时实际上是有企业用户的,企业用户的名字很长,也就导致了字段过短。
这两个事情,反映出的问题有些不同。#1系统对于外部的东西