老子的软件之道 - 道篇 1 软件的本源-抽象

 摘要:软件哲学、软件之道、银弹、人狼、软件架构                 参阅:  消灭人狼  软件的十大命题 编程规则

 

道篇

       你发现构成软件体系最基本的粒子了吗? 这是通往软件之道的门户。 (参见:软件架构形态)

 

1  软件的本源-抽象


 圣人曰:
道可道,非常道。名可名,非常名。无名天地之始。有名万物之母。故常无欲以观其妙。常有欲以观其徼。此两者同出而异名,同谓之玄。玄之又玄,众妙之门。

 

    软件企业发展的正确之路是客观存在的,但并不是你看到的通常的发展之路啊。

    软件工作者或软件企业都是可以功成名就的,但也不是通常意义上的成功啊。

    软件体系都是由“无”和“有”构成的啊,觉得有点玄了吧?这就对了,不玄就不是“道”了,别急,别急,开个玩笑,举几个例子你就明白了。

     你看任何软件首先都是建立在一个想法之上的,这个想法就是“无”啊,它看不见摸不着啊。那些数据和代码就是“有”啊,它们在哪个铁盒子里运行着。

     再说一个你熟悉的吧,类,就是你们OO中所谓的哪个类,它相对对象而言就是“无”啊,比方说账户类,它虚无缥缈,即不是全部账户也不是某一具体账户,它似乎什么都不是,但一切具体账户对象都是由它创建的啊。

     “无”、“有”只是一个高度抽象的名字(同时它们也是“道”的两个别名,参阅:什么是哲学),对于不同的具体事务,它们都可以有对应的具体名称。“无”是宇宙万事万物的源头和起点,“有”是构成宇宙的具体事务。世间万物都是无中有有,有中有无,无上还有无,有下还有有啊,听起来有点晕吧,认真思考深刻体会吧,对你编程会大有好处的,抽象是软件的本源啊。

     我们理解了万物都存在“有”、“无”两层概念,通常对于事务“无”的层面,我们要注意观察其微妙的本源和本性,这样你才能把握本质;对于事务“有”的层面我们要细心观察它的状态、边界、行为模式和变化规律,这样才有助于对事物本体的理解,反过来促进对其本性的洞悉。(这时已经提出了“道性”、“道体”的概念,注意体会)

     有和无它们实际上又是一个整体啊,只是不同层面的两个概念罢了,有无互生,听起来很玄妙,但实际上很容易理解,其实就是一个抽象的概念,软件设计的精髓不就是要依赖抽象吗,这可是登堂入室的大门啊,也是软件之道。

      你在做类的设计时,可以非常好地体会有无互生的道理,你通过对具体对象的观察、思考、抽象,建立起了类(有生无),类又在你的软件系统中生成无数的对象(无生有),是这样吧,而这一切又诞生于你无形的思考和有型编码之中,妙啊、玄啊,玄啊、妙啊,这广袤的宇宙就诞生于这“有”、“无”之中。

 

     注:老先生注重概念,先从有无论起,并准确地抓住软件之要点----抽象,一语道破天机。

 

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
第1 了解开源软件 第1章 开源软件概述 1.1 开源软件的理解 1.2 开源软件的定义 1.3 开源软件定义的意义 1.4 开源软件和其他类型软件的比较 第2章 开源软件的历史与未来 2.1 开源软件的历史 2.2 开源运动背后的理想与现实 2.2.1 理想主义的兴起 2.2.2 技术精英的推动 2.2.3 现实业界的需求 2.3 开源社区的壮大 2.4 开源软件的领袖 2.5 开源软件的未来 第3章 开源软件的好处 3.1 高质量 3.2 零许可证费 3.3 开放和自由 3.4 灵活可定制 3.5 公开透明 3.6 良好的学习平台 第4章 开源软件的成本 4.1 部署和迁移成本 4.2 人员和培训成本 4.3 管理维护和技术支持成本 4.4 风险控制成本 第2 使用开源软件 第5章 正确使用开源软件 5.1 管理体制 5.2 法律风险 5.2.1 法律因素之著作权 5.2.2 法律因素之许可证 5.2.3 法律因素之专利 5.2.4 问题解析 5.2.5 验证著作权,正本清源 5.2.6 调查专利,借力打力 5.2.7 解读许可证,明察秋毫 5.3 成熟度 5.3.1 优秀的领导者 5.3.2 差异化的开发者社区 5.3.3 庞大的优质用户群 5.3.4 健康的项目“脉动” 5.3.5 健全的安全补丁体制 5.3.6 较完善的文档 5.4 服务 5.5 寻找合适的开源软件 第6章 开源软件之语言和平台 6.1 Harmony 6.2 Android 6.3 Python 6.4 Ruby 6.5 PHP 6.6 Groovy 6.7 Perl 6.8 Flex 6.9 OpenLaszlo 第7章 开源软件之框架和库 7.1 Spring 7.2 Struts 7.3 JBossSeam 7.4 Equinox 7.5 Hibernate 7.6 iBATIS 7.7 Lucene 7.8 Webkit 第8章 开源软件之服务器软件 8.1 ApacheHTTP服务器 8.2 Tomcat 8.3 Jetty 8.4 Geronimo 8.5 JBoss 8.6 GlassFish 8.7 MySQL 8.8 PostgreSQL 8.9 Derby 8.10 FileZillaServer 第9章 开源软件之开发工具 9.1 Eclipse 9.2 NetBeans 9.3 ApacheAnt 9.4 ApacheMaven 9.5 CVS 9.6 Subversion 9.7 GIT 9.8 Bugzilla 9.9 JUnit 9.10 TestNG 第10章 开源软件之桌面应用 10.1 GNOME 10.2 OpenOffice.org 10.3 Emacs 10.4 Firefox 10.5 Thunderbird 10.6 GIMP 10.7 FreeMind 10.8 7-Zip 第3 参与开源项目 第11章 开源社区的基础设施 11.1 基础设施 11.1.1 主页(HomePage) 11.1.2 代码库(CodeRepository) 11.1.3 邮件列表(MailingList) 11.1.4 缺陷追踪系统(BugTrackingSystem) 11.1.5 Wiki 11.1.6 其他 11.2 开源项目托管网站 第12章 开源组织和社区 12.1 Apache软件基金会 12.1.1 Apache的历史 …… 第13章 商业模式与实例 第14章 参与开源社区 第15章 开创事业
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值