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

本文通过老子哲学的角度探讨软件设计的本质,强调在软件设计中'无'的重要性,即预留足够的空间和接口,避免过度具体化业务实现。文章讨论了在软件开发中结构设计与算法之间的关系,并提倡关注软件的结构而非仅仅关注算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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

     

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

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

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

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

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

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

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

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

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

      请您参阅 类设计原则 

 

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值