模块化

来源:互联网 发布:什么是结对编程 编辑:程序博客网 时间:2024/04/30 22:13

昨天跟同事们开了个会,讨论模块化的问题。 

我不爱使用那些书上的正规定义什么的,自己怎么写代码就怎么说。

我脑子中的模块化:

    目的是:使用分而治之的思想和方式管理软件系统的复杂度和避免重复。

    形式是:一系列方法和方法使用的参数结构体的集合。

    追求是:功能全,接口少,参数少。

 

目的方面:

    管理复杂度:工作落实到小组、到个人。大家做好自己的工作,配合好。谁出事儿找谁。

    避免重复:就是那句有名儿的话"Don't repeat yourself",这方面的模块强调可复用,就像操作系统接口一样简洁,明确,有明确的目的和功能,名称、参数一目了然。其实我个人认为这方面的模块大部分是数据结构和为了跨平台而做的操作系统接口的封装。

 

形式方面:

     啊,这方面的应用就多了。一个编译单元(.h+.cpp)、C的ADT,C++的纯虚类Interface,COM等等等等。我觉得这些东西没什么可研究的,只要使用的时候目的明确,使用哪种实现载体都可以。

 

追求方面:

    我个人来说,非常讨厌看到一个类有好几十个成员函数。条件检查的、功能实现的、发网络协议的什么功能都写个接口出来,好像功能很全。其实我认为是把模块内部的责任推卸给了调用者。回过头来看看mysql的C DataType和Function。其实只要在保证功能全的基础上,接口越少、参数越少才说明模块设计者在模块设计上面下了功夫。