从事了很多年的企业信息应用软件的开发,深有感触。最大的感触是,在软件系统的构建中,一定要把握简单的原则。用简单的眼光来看待信息,用简单的手段来组织信息。

提到原则,很多人不以为然,通常原则是些非常显而易见的道理,就算有争议的原则,像这里说的--简单是王道,每个人肯定一目了然。但是在运用原则的过程中,总是有很多人会背道而驰。

在我看来,企业信息应用系统的内容非常复杂,但是系统本身的实现却很简单。本质上说,系统包括三个部分,一个域模型,一组基于域模型的计算,最后是用来和用户交互的UI。展开来呢,多了一些需要了解的知识,域模型在系统工作时涉及信息的使用和存储,所以要了解数据库(现在的OR Mapping工具甚至使你不用更多的了解它)。基于简单化原则,请在思考域模型的时候,别考虑什么数据库,做得到吗?很多人做不到,因为在考虑域模型的时候,总是忍不住去考虑效率、域模型中各元素的关系如何在数据库中的表达,还有一些OR Mapping工具在使用中的一些限制。如果忍不住诱惑,简单的原则马上就会违背。问题需要解决,但要在原则下进行。

上面说了和域模型有关的事,接下来看基于域模型的计算。有了域模型中的数据,围绕这些数据加加减减,就是企业信息系统通常要做的事。展开来看呢,又要多了解一些知识。业界有很多的平台和框架支持加加减减,J2EE、Spring、Seam,这些平台和框架提供了一些服务,例如分布式计算,事务服务,连接池,状态服务(各种上下文),等等。除了平台和框架,还有支持开发的工具:通过向导生成各种类型的项目,集成各种服务器,开发,调试,发布。再延伸开呢,业界还有一些流行的思想,例如SOA,帮助企业来进行系统集成;工作流,帮助系统实现灵活的业务逻辑。。。可是当进入这花花世界的时候,别忘了那个简单的原则,我们需要做的只有一个,基于域模型的计算。换句话说,需要做的是加加减减。和业务分析人员紧密合作比其他的事更重要。从这个层面上说,POJO是王道,有了新版JDK提供的annotation功能支持,有了越来越多像seam这种框架,真的不用太关心加加减减之外的事。