软件之禅(七)面向对象(Object Oriented)-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

黄国强 2023/11/11

        前文提到面向对象构建的模块控制器根据第一性原理从图灵机的角度面向对象不是最基本的元素。那么面向对象是不是不重要呢
        答案是否定的面向对象非常非常重要。当我们面对一个具体的领域比如我从事的半导体设备领域面向对象是我们分析和理解半导体设备这个领域最强大、最有效的工具。所以面向对象这个工具非常值得我们花时间去研究学习。
        我个人用面向对象的方法写了三十年的程序了介绍这个技术的文章非常多我这里只是简单的说一下我的体会。

1 对象即神经元
        根据生物解剖学我们知道动物的大脑是一个由众多神经元为节点接而成的神经元网络。神经元是神经系统最基本的结构和功能单位神经元通过突起来传递信息。
        我之前提到一个观点即所有面向对象的架构都是bridge+NVI模式或者变体。面向对象的模型可以说是对大脑的一个仿生。下图是我绘制面向对象通用模型和神经元网络高度类似。

        面向对象的分析过程的结果就是获得这些节点的类型。这些节点通过函数或过程连接起来。当然目前这些连接完全靠人工编程我觉得不久的将来不超过50年人工神经元网络将接过这方面工作。
2 发掘需求
        有了经过我们分析获得的这个模型可以很方便与客户沟通搜集客户需求学习专业知识不断修正我们的模型。行业专家与常人的主要区别在于是否拥有专业概念我们作为开发人员要擅长学习和理解专家掌握的概念。
        我之前做过一款建筑软件一个客户用了我写的软件专程到公司点名要见我他误以为我也是能和他交流的行业专家。其实很惭愧我只是擅长用面向对象工具的专家具体行业知识很肤浅。现在我从事半导体设备行业我觉得我行业知识方面水平依然很一般。
        提到这件事我想表达的观点是作为软件开发人员掌握面向对象工具非常重要要成为这方面的专家。而具体行业知识只要够用就可以了人的精力是有限的侧重点要分清。
3 来自于用户高于用户
        有种错误的观点是既然专家是权威面向对象的节点是不是完全按专家说的建立呢
        答案是否定的。我们从用户中搜集的需求往往过于具体。比如半导体设备公司做的设备估计有几百种类别每个类别的设备都有不同和独特的功能在这个层面上你是无法写出一个通用设备框架的。这时候就要祭出人类思考的最伟大的工具——抽象。
        从第一性原理找出领域中最本质的元素在此之上构建整个软件模型和框架。
        综上可以看出这个抽象分析能力才是人与人产生差距的地方。当然随着人工智能的发展我们人类自傲的这个能力也会被取代所以我对于整个人类的未来异常悲观。

[参考]
  1 软件之禅六图灵机

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6