Skip to content

2.4 定义一个概念

变量命名和缓存失效是编程中最让人头疼的两件事。

变量命名其实就是在给一个概念下定义。定义是揭示概念的内涵和外延的逻辑方法,一个准确的定义需要反映出对象的本质属性或特有属性。下定义困难普遍有两个痛点:

  • 不懂好的下定义的逻辑方法。 不懂好的下定义的逻辑方法。

  • 对业务概念或者领域不熟悉。 对业务概念或者领域不熟悉。

对于第一个痛点,根据概念的属性、内涵和外延,逻辑学中有一些很好地下定义方法。

属加种差定义法。 这种下定义的方法通俗来说就是先把某一个概念放到另一个更广泛的概念中,逻辑学中将这个大的概念叫做 "属概念",小的概念叫做 "种概念"。从这个属概念中找到一个相邻的种概念,进行比较,找出差异化本质属性,就是"种差"。比如,对数学的定义,数学首先是一门学科,和物理学处于同类,它的本质属性是研究空间形式和数量关系。于是可以得到数学这个概念定义:

用这种方法给订单、支付单、物流单下一个定义:

在逻辑中可以参考下面的公式:

对于第二个痛点,这不是软件建模能解决的问题,需要充分和领域专家讨论,获取足够的业务知识。人们对概念的定义或者认识是随着对事物的认识不断加深而变化的。一个完全对某个领域没有基本认识的软件工程师很难做出合理的软件建模,例如银行、交易所、财会等领域的软件需要大量的行业知识。

我们做消费者业务的互联网开发时,往往因为和我们的生活相关,所以这种感受并不明显。当做行业软件时,领域知识对软件模型的影响甚至是决定性的。

Released under the MIT License.