如从信息的角度看,业务是信息,而设计文档与代码都是业务此信息的载体。
那么我们是否可以从信息的角度对软件进行设计,将业务需求转变为此业务需要哪些信息,生产哪些信息,这些信息需要提供给谁进行消费。这样一来,可将软件简单的抽象成一个信息加工厂,信息就是各种原料、各种零部件、各种产品。且这种方式适用于所有业务或系统,因为不管什么业务或系统其本质就是信息的集合。
以下本人会介绍适用于软件设计的一种信息树模型,通过此模型可以做出满足业务并可编写出高质量代码的设计。
以下会通过BOSS系统中的用户模块为例,对信息树进行说明,请看下图:
在上图中,从左到右描述的是与用户相关的所有信息,以及这些信息如何生产、消费:
(1) 首先当我们生产一条用户新增操作信息时,需要消费一条输入信息(对应图中的Input)
(2) 新增成功后,需将为此新增信息生产开户信息(Produce:用户开户信息)
(3) 而生产开户信息的方式是将此而用户状态设置为0
(4) 之后我们需要为某用户生产一条用户激活信息,而生