天天看点

概念与实现

概念是什么?我个人认为就是一个抽象。比如,我说苹果,我指的是一种近似于球体,能吃的,有特定味道与香味的那种水果。

而且一旦人们接受这个概念之后,就能利用这个概念来进行更有效的沟通。但是,这并不意味着一定不会出问题,相反,概念沟通有时候可以说就是问题的根源。比如,同事可能和我说,帮ta买几个苹果,而我买回来时,ta却不满意。苹果还是苹果,至少没变成别的水果,但是却不是ta期盼的那个品种,比如ta喜欢吃粉的,略带酸味的,而我买回来的是口感脆,甜味重的。

这就与实现相关了。刚才说的两种苹果,其实就是苹果这个概念下的两种不同实现。既然是不同实现,肯定就意味着有差别。这种差别依照不同的视角来说,可能完全不重要,比如都能吃;也可能重要到极点,比如,这种苹果不能酿醋,那种可以。

具体的实现是否能替换,或者说满足那个概念,其实很大程度上就是取决于定义概念的视角。

由于日常生活中,经常会对这种概念进行非常模糊的定义,甚至不定义。所以,我们经常会出现买东西不满意的情况。

但无论怎么说,概念这种东西更多地体现是人对某个事物的认识,归纳与概括。可以说带有比较强的主观性。当这些概念进行交流时,这种主观性可以得到某种程度的认同,但具体的认同度却难以被量化。我认为这也是很多需求中难以说明问题的原因,虽然双方都在说看似同样的概念,但是每个人的理解都存在或多或少的差别,最终找到的不过是双方能认同的部分而已。DDD中的领域特定语言,其实我认为也就是指将一个概念中的各方能认同的部分固化而已。

我认为概念甚至是活的。或者换一个说法,概念会随着参与者,时间等因素发生变化。

还是以苹果这个概念为例,现在可能有人问,你用的手机是苹果吗?这时,你绝对能明白这个苹果不是指吃的那个水果,而是指那个手机。

继续阅读