老子的软件之道 - 道篇 11 无之大用
来源:互联网 发布:java代码混淆工具下载 编辑:程序博客网 时间:2024/06/05 19:54
摘要:老子哲学 道德经 软件哲学、软件之道 参阅:序 消灭人狼 软件的十大命题 编程规则
圣人曰:三十幅共一毂,当其无,有车之用。埏埴以为器,当其无,有器之用。凿户牖以为室,当其无,有室之用。故有之以为利,无之以为用。
车轮的中空使车辆运行更加平稳,瓷器中空虚的部分成就了它的功用,房屋有了空间和门窗,才有了房屋的作用,可见一个实体,完全依赖它的无(空虚)来实现其功用啊。
因此在软件领域,作为支撑应用的平台,必须留有充足的空间和接口,以容纳各种应用;如果它实现了诸多具体业务,就如同一个实心的杯子,无有大用了。
这里的“无、有”又是另一个层面的抽象概念,无代表着抽象和空白,有代表着具体;例如:接口只是一个抽象的方法,抽象类中的抽象方法只是一个方法的空壳,但它们却至关重要,代表着设计水准,决定着系统结构。
说一句许多程序员不愿意接受的话(但忠言逆耳啊,希望你能有所感悟),方法体的具体编码实现(算法)并不重要,重要的是为什么要有这个方法(方法的职责),它的输入输出是什么;你可能会说,我们程序员不就是写这些代码的吗,如果你说这个不重要,不就等于说我们不重要吗!别急,其实我也是个程序员,我们试想一下,如果一个系统所有的类、方法及方法的输入输出都设计好了(不再需要修改了),只是每个方法还没有具体实现,你是否认为这个系统已经接近完成了呢?
算法重要乎?不重要乎?这是一个很重要的话题!
搞软件的人贬低算法不就是贬低自己吗!算法当然重要,有多少人因为发明一个算法而获得诺贝尔奖,目前还没听说谁开发了一个系统获此殊荣的。
但是,目前大量的基础算法都已经有了相应的算法库支持,我们不需要不停地发明轮子了,另外,高深的算法那是科学家们的职业领域,我们学会运用就好了。
对于一个系统而言,具体算法并不重要,整个系统的结构更加重要。
注重结构设计吧,不要随意的设计类和方法。
请您参阅 类设计原则
注意:无虽然有大用,但是无是不可用的,无必须转化为有之后,才可以有具体之用。
- 老子的软件之道 - 道篇 11 无之大用
- 老子的软件之道 - 道篇 14 软件的特征
- 老子的软件之道 - 道篇 9 企业之道
- 老子的软件之道 - 道篇 10 平台之美
- 老子的软件之道 - 道篇 19 设计的最高境界
- 老子的软件之道 - 道篇 23 企业的行为准则
- 老子的软件之道 - 道篇 26 应用软件的根基
- 老子的软件之道 - 道篇 30 领导者的行为规范
- 老子的软件之道 - 道篇 25 道为何物
- 老子的软件之道 - 道篇 5 企业管理
- 老子的软件之道 - 道篇 6 企业应用架构
- 老子的软件之道 - 道篇 8 平台若水
- 老子的软件之道 - 道篇 13 探路者
- 老子的软件之道 - 道篇 16 再谈需求
- 老子的软件之道 - 道篇 18 标准之上
- 老子的软件之道 - 道篇 20 企业价值观
- 老子的软件之道 - 道篇 22 大师风范
- 老子的软件之道 - 道篇 24 设计师守则
- 关于数据存储的五个事实
- tomcat启动失败:Failed creating java jvm.dll
- Gridview 重要的事件 和 重要的属性
- diff与patch的使用
- 计算几何 _ 2010 East Central Regional Contest _ problem D
- 老子的软件之道 - 道篇 11 无之大用
- python的urllib模块,学习的部分有用方法
- gcc、gdb、makefile 学习和用法
- Flex4中动态解析XML数据并转换为ArrayCollection
- 错误——无法找到引用的项目输出组的输出
- 警惕:暮光之城破晓2免费电影票骗局
- apache+python中对logging模块的使用问题
- size_t, ssize_t,socket_t的定义
- ASP.NET——每个.NET开发人员现在应该下载的十种必备工具