他对于 coupling 的解说,就完全错了;而且前提不清概念模糊。
他提到 coupling 的时候是这样说的: “计算机软件里面有一个很重要的概念,名字叫 coupling。”
这么一说,可以看出他很缺乏逻辑概念的训练。
他说的 “计算机软件”,就这个词汇本身,指的应该是成品计算机软件。但成品计算机软件使用者,那是无须了解什么叫 coupling 的。他想说的这个 coupling,其实是计算机软件设计(software engineering) 过程中的一个重要概念。要说 coupling,不能只用 “计算机软件” 这个词汇,带出对于 coupling 的阐述。对于计算机软件使用者来说,没有那个软件发行商会对使用者宣传 coupling 这个概念。只有在计算机软件设计落实过程中,软件工程师们,才会相互讨论 coupling 的问题,而且 coupling 是和 cohesion 连在一起考虑的。
连在一起考虑的目的,就是要在 objects 之间,达到具有 low (loose) coupling 和 high cohesion 的一种关系状态。这样,各个 objects 之间,相对独立性就高,自主功能性也强。所谓 Service-Oriented Architecture (SOA), 从其高层次方面来说,各个 services 所给予的服务功能范围,就是一个object;各个 services 之间,相互没有功能或职能上的依赖性,但在整个 SOA 系统中,任何 service 一方,都可向任意的另一方 service,要求和获得一套完整的服务 (service)。这种状态和结果,可以作为一个方面,来说明什么叫 low coupling 和 high cohesion。现在流行的所谓 “云计算” (Cloud-Computing),就是在 SOA 的概念上发展起来的。
所以这个年轻人要谈软件设计中的 coupling 这个课题,却用了 “计算机软件” 这个普遍概念来描述他要讲的在软件设计这个特殊领域里的东西,看起来他就非常缺乏某种严格的教育和训练,缺乏逻辑的概念和思维以及课题研究的方式和方法。
做学问要脚踏实地,老老实实地把自己要说的都搞通了,再发表自己的见解也不迟。
这个年轻人如果面试我,我就肯定是他说的 “大部分人都答不好” 的人之一。
这个年轻人给人最大的、不好的特点就是:尽扯些他自己都没搞通的东西,来装饰门面;他扯的任何东西,还都是浅尝辄止不求甚解的结果。要帮助他,就一定要对他当头猛喝一棒;否则他会在这个邪路上,越走越远最终把他自个给毁了!