老子的软件之道 - 道篇 11 无之大用

来源:互联网 发布:java代码混淆工具下载 编辑:程序博客网 时间:2024/06/05 19:54

摘要:老子哲学 道德经 软件哲学、软件之道                 参阅:序  消灭人狼  软件的十大命题 编程规则

 

      圣人曰:三十幅共一毂,当其无,有车之用。埏埴以为器,当其无,有器之用。凿户牖以为室,当其无,有室之用。故有之以为利,无之以为用。

     

      车轮的中空使车辆运行更加平稳,瓷器中空虚的部分成就了它的功用,房屋有了空间和门窗,才有了房屋的作用,可见一个实体,完全依赖它的无(空虚)来实现其功用啊。

      因此在软件领域,作为支撑应用的平台,必须留有充足的空间和接口,以容纳各种应用;如果它实现了诸多具体业务,就如同一个实心的杯子,无有大用了。

      这里的“无、有”又是另一个层面的抽象概念,无代表着抽象和空白,有代表着具体;例如:接口只是一个抽象的方法,抽象类中的抽象方法只是一个方法的空壳,但它们却至关重要,代表着设计水准,决定着系统结构。

      说一句许多程序员不愿意接受的话(但忠言逆耳啊,希望你能有所感悟),方法体的具体编码实现(算法)并不重要,重要的是为什么要有这个方法(方法的职责),它的输入输出是什么;你可能会说,我们程序员不就是写这些代码的吗,如果你说这个不重要,不就等于说我们不重要吗!别急,其实我也是个程序员,我们试想一下,如果一个系统所有的类、方法及方法的输入输出都设计好了(不再需要修改了),只是每个方法还没有具体实现,你是否认为这个系统已经接近完成了呢?

      算法重要乎?不重要乎?这是一个很重要的话题!

      搞软件的人贬低算法不就是贬低自己吗!算法当然重要,有多少人因为发明一个算法而获得诺贝尔奖,目前还没听说谁开发了一个系统获此殊荣的。

      但是,目前大量的基础算法都已经有了相应的算法库支持,我们不需要不停地发明轮子了,另外,高深的算法那是科学家们的职业领域,我们学会运用就好了。

      对于一个系统而言,具体算法并不重要,整个系统的结构更加重要。

      注重结构设计吧,不要随意的设计类和方法。

      请您参阅 类设计原则 

 

       注意:无虽然有大用,但是无是不可用的,无必须转化为有之后,才可以有具体之用。

原创粉丝点击