当我们学习 apple 时候,我们很容易记住 apple 是什么。
我们也不会对 apple 的概念产生模糊混淆。
为什么?
因为字典上明确说了,apple = 苹果。
那苹果是什么?
苹果就是圆圆的红红的,吃起来甜甜的水果。
我们学习 apple 如此简单,就是因为我们对苹果这个概念的理解已经通透到不能再通透。
那现在我们问,事务是什么?
我们百度一下。
在最开始,我死记硬背各种博客笔记对事务的定义。
好像理解了。
但是又没完全理解。
事务这个概念困扰了好久好久。
面试官问我事务,我好像也能对上几句。
但我真的像理解 apple 一样理解了事务吗?
没有。
为什么理解不了呢?
下面我们一点一点说。
我们为什么能理解 apple 像理解苹果一样简单?
因为我们从小就见过苹果。
当英文的 apple 翻译过来时,我们把对应脑海里的概念移植过去就可以很轻易的理解什么是 apple 。
事务和苹果区别就在这里。
“事务”二字是翻译过来的,翻译自“transaction”。
transaction 的出现是伴随计算机科学发展而来的产物。
也就是说,倒退200年,英文语境中的 transaction 并没有当前 transaction 作为计算机术语所包含的概念。
而那些计算机先人们需要一个词来表示这个计算机概念。
他们选择了 transaction 。
为什么选择 transaction ?
因为 transaction 主要含义为“交易,买卖”。
正好可以对应数据变化中“此消彼长、你变我也变”这种状态。
而当这一概念流转到中国,就需要一个对应的汉语词汇。
翻译家们选择了事务。
为什么选择“事务”我们不得而知。
猜测一下可能是“事务”相比于“交易”,使用频率更低,显得更正式,更难以理解,更能凸显其“舶来词”的特征。
为什么“事务”会更难以理解?
因为“事务”本身在汉语中有自己的意义。
事务:指具体的事情、行政杂务、总务。
这还不够。
最主要的让人混淆的地方在于:
“事务”的本地含义与它在计算机编程环境中所试图想要表达的含义大相径庭!
这也是我一年多都没有真正理解“事务”本质的原因。
那怎么样才能理解?
我们只需要把 transaction 在大脑中翻译“交易,转移“。
然后我们再来看“事务”的定义。
事务的英文是transaction,英文语境下的意思是交易或者转移,应用于金融和商业领域,设计货币、商品、服务等的互换。然后在计算机领域进行引申扩展,尤其在数据库管理和分布式系统中,含义为一系列操作作为一个整体被执行,要么全部成功,要么全部失败,以保证数据的完整性和一致性。
哇,终于舒服了,透气了!脑子里那团雾气终于散了!
所以,我们在这些分析中得到了什么?
1. 科技强国是硬道理。
2. 要学会透过现象看本质。
3. 语言只是沟通的工具,有效沟通的前提建立在双方认知在同一层面上。
所以让我们忘记狗屁事务,记住transaction-交易。
推荐文章:
● 师爷,翻译翻译什么叫AOP
● 终于搞懂动态代理了!
● 学会@ConfigurationProperties月薪过三千
● 0.o?让我看看怎么个事儿之SpringBoot自动配置
● 不是银趴~是@Import!
● Java反射,看完就会用