美文网首页
论层级结构和模块划分

论层级结构和模块划分

作者: 移动开发_ziank | 来源:发表于2019-01-02 09:30 被阅读16次

在软件开发过程中,我们经常会需要面对框架的选型,特别是在软件刚开始设计的时候,我们必须先选择一个整体架构,那就是我们要按照需求特性进行模块划分,还是按照功能逻辑进行层级划分。或者说,我们是要进行纵向的切分还是横向的拉伸。

两种框架有什么区别呢?所谓模块划分,就是按照软件的需求和功能分开,这样就可以把不同的模块进行解耦,更方便开发人员开发和维护;不过劣势就是对于不同的模块,可能会都要写一个数据层,这样就会导致代码的重复利用率低。而层级划分,则是把软件代码按照逻辑分层,比如分为数据层,网络层,界面层等,这样的好处就是不同层级之间相互分离,使每一层的代码复用度都比较高,但是也会导致模块间的耦合性也会比较高。

可以说两种框架都有自己的好处和劣势,那么我们在实际中应该如何选择呢?其实也是有方法的。
对于一个特定功能的软件,也就是需求基本确定的软件,那么我会建议使用层级结构,因为需求已经基本确定,那么解耦的必要性就没有那么高,而代码的复用度就显得比较重要,使用层级结构可以更方便大家快速的完成功能开发工作。

而对于一个需要迭代更新的软件,我更建议使用模块化的软件结构,因为模块间的解耦,会让后面添加新需求时事半功倍,如果使用了层级架构,则会导致每一层级的代码都需要修改。
当然,两者也并不是完全矛盾的,在一个大型软件的架构中,我们可能既需要层级划分,又希望能够模块化解耦,那么我们应该怎么做呢?

首先,要分层级,把基础的层级作为一个模块进行开发;然后,把非基础的层级,按照特性需求进行模块划分,从而实现模块间的解耦。当然,实际中并不像我说的这么简单,但是基本上也是这么操作的,主要就是要利用一些设计模式(如反射,代理等)实现模块的解耦。

在真实的开发中,其实还有一个简单的方法进行区分,那就是小软件使用模块化,大软件进行层级划分,主要就是因为小的软件一般会更新迭代较快,需要解耦便于快速开发;而大软件,则是为了减少代码量,提高代码复用率,会先进性层级划分,然后在每一层内再进行模块化,来提高开发的效率和性能。

相关文章

  • 论层级结构和模块划分

    在软件开发过程中,我们经常会需要面对框架的选型,特别是在软件刚开始设计的时候,我们必须先选择一个整体架构,那就是我...

  • 6、Python的组织结构

    python的层级结构:包 -> 模块 -> 类 ->函数、变量 包:文件夹,模块:文件 命名空间:...

  • 需求管理:需求模块功能清单

    即产品模块功能清单,按模块、功能菜单进行层级划分展示,并对每个功能进行简要描述,是产品的完整框架。这里的产品模块功...

  • python模块和包,项目结构

    Python在处理功能复用和功能颗粒度划分时采用了类、模块、包的结构。 模块 模块,在Python可理解为对应于一...

  • 已有项目模块化流程

    1 根据业务拆分模块,找出所有的业务模块。复杂的业务模块拆分为小的业务模块。2 根据模块的层级结构已文件夹...

  • 第15章 源文件与程序 & 软件设计

    15.0 Note 15.1 分离编译 1 按 逻辑结构(模块) 在 物理结构(文件) 上划分 15.2 链接 ...

  • Nginx(二)Nginx的模块化体系介绍

    Nginx 的模块化体系结构 Nginx 的内部结构是由核心部分和一系列的功能模块所组成。这样划分是为了使得每个模...

  • NodeJs学习实践之笔记三

    划分模块 模块划分根据功能进行模块划分前台模块后台管理模块api模块2.使用app.use()进行模块划分app....

  • 新项目的思考

    文件结构 按模块化的方式划分文件结构,方便文件管理,由于vue的文件结构,可以把一个模块的css,js都写在vue...

  • Coinka交易所Android项目优化笔记

    币币交易模块重写(作者张辉) 现有问题 布局文件层级结构复杂。 多次迭代导致出现大量冗余代码。 关键模块代码不严谨...

网友评论

      本文标题:论层级结构和模块划分

      本文链接:https://www.haomeiwen.com/subject/btvalqtx.html