系统架构与抽象设计

        大多数管理软件,特别是以ERP、CRM和财务等管理人、财、物和事为代表,基于数据库读写为特征的软件系统,其核心都是数据的录入、数据简单处理(根据业务规则)和数据的统计与展示(特别是各类图标、报表)。
        传统的开发模式,通常是根据各种需求、设计和开发文档(有可能这些文档也没有),按功能逐个从界面、逻辑到数据库表分别写一堆代码。假如是spring+ibatis/hibernate 的话,可能是一个界面对应一套 action/service/dao。 假如 Object Pascal 或 C# 的话,最糟糕的情形就是一个按钮事件里的代码就能看到SQL语句;而抽象好些的情况,可能会每个Form分别对应着一个 UI层、业务逻辑层和数据层。
        如果将各种功能按数据库的数据流来抽象,则无非是前端录入(数据产生)、业务逻辑(数据加工)和图表(展示(数据统计),以这个角度架构和设计系统,可以获得更高的抽象,有可能避免大量的重复代码,即与业务功能数量呈线性增长的代码(譬如java的action/service/dao,或者Object Pascal / C#各类Form的UI层、业务逻辑层和数据层)。最终创造一个所见即所得的软件产品,业务开发人员仅仅并关注业务逻辑代码即可。从而更大程度的实现代码复用,极大提高软件开发的质量和生产效率。

你可能感兴趣的:(系统架构与抽象设计)