zoukankan      html  css  js  c++  java
  • 分析系统

    系统分模块分层面的时机:

    1)完成一次从功能需求,ui设计,代码设计,数据库设计的整体梳理或是迭代思考。这时结合经验判断哪些地方可能有较大的代码量,或是构造复杂度,则预先横向分块,纵向分层。

    2)代码积累到一定程度,以当前能力,解决问题的速度越来越慢,碰上的问题的水准越来越低,数量越来越多,必须要析置出子系统。

    3)信息流的某个下游模块,比如ui设计已经很复杂很完善,目标需求很明确的时候,可以在上游设计复杂和有针对性的功能和数据结构,为数据流的转承提供方便的子系统。

    4)面向方面分层的并行的子系统。系统的 纵向复杂度很高,

    比如包含互相交织系统-商户-客户-商品-优惠-属性-多语言-多币种,等等多重属性。

    这时应该纵向分层,切面分层,这个切面,应该一直切到数据库,把系统完全切分成几个彼此独立的支持子系统。 

     比如商务子系统,会务子系统,语言子系统,管理子系统等等

    数据库中应有一些高度抽象的主表,然后有子系统实体表,子系统关系表,子系统展现表,等等。

    子系统之间的实体表没有关系

    子系统不知道彼此的存在。

    这样能避免出现复杂度倍乘关系。在复杂度倍乘的状况下,填充或修改一个实体,往往要考虑语言,币种,身份,属性等多方面东西,增减一个字段也是需要多方考虑,

    以至于系统的任何一个模块的维护人员,都要了解全局逻辑的运转规则。

    而系统实际上的复杂就在于规则。

    系统就是若干虚拟的底层规则一直叠加到上层直至实际业务的结果。

    面向切面的本质,就是面向无形的规则划分模块,而不是面向有形的信息,或是具体的行为。 

    任何规则复杂的东西,分开来处理。
     

  • 相关阅读:
    蘑菇街teamtalk简介
    greenDAO简介
    Android 编译错误
    Android 中内容提供者的使用
    Android中使用http协议访问网络
    在Windows环境下设置terminal下调试adb
    Android中SQLite的使用
    sharedPreferences存储数据
    android中广播的使用
    fragment的使用
  • 原文地址:https://www.cnblogs.com/baozhu/p/4525043.html
Copyright © 2011-2022 走看看