无论是解决问题或者软件开发,都需要有分与合的思想。
分,分而治之,大化小,小化无。把一个大的整体划分成几个相对单独的单元,每个单元相对独立,并且能完成特定功能,而且能够单独测试。
合,合而为一,把分离出来的单元再组成一个个小模块,小模块再组装成大模块。最后形成一个整体。
解决一个复杂的问题时,有时候我们需要把这个问题拆分成一个个小问题,然后各个击破。比如排序算法中比较快的快排、归并排序就应用了分而治之的方法。
分的一个方式是解构。比如我想造一辆车,就得去解构这个车,它应该有发动机,有变速器,有轮子,有方向盘,有悬挂系统等等。然后接着又可以分解,比如变速器可以是自动的、手动的、手自一体的等等,发动机可以是涡轮增压或者是自然吸气。解构完后,我们看到的不是一辆车,而是一个个相对独立的零部件。有了这样的基础,在去逐一去解决问题。
合的一个方式就是组装。上面的车子,我们零部件都准备好了,就可以把它们连接在一起。各个零部件组装起来,搭载在车子的骨架,通过电路系统进行通信,最后协同工作,把车子跑起来。
软件开发就是在模拟现实。我们从现实中的微观和宏观两个级别去寻找答案。
以下对微观和宏观两方面的描述并不严谨,也不完整,其实就是做了降维处理,为了得出基本模型。
----淄博软件开发----