青菜年糕汤

一周一篇,一期一会。以文会友,以友辅仁。

2020年8月8日

辞海一瓢:TFW、Laissez Faire、康威定律

作者:青菜年糕汤

这是“辞海一瓢”系列第二期。这个系列用来介绍一些相对冷僻的词、梗、概念。

TFW

“TFW”是“that feel when”(感觉就像是)的缩写。明显这个词并不用于口头,而是主要出现在文本中,比如同事给你的代码或设计文档的评论中。

根据字面意思,能想到这个词的正经用法,就是在后面跟一件夸张的事情,来表达被评论这件事给人的感觉。

比如说,有人刚做完一件事就突然意识到做错了,你就可以评论说“TWF刚出门发现没带钥匙”。

但除了这样的正经用法,事实上更常见的是在“TFW”后面跟表情包,比如放一张悲伤或者尴尬的脸——可以自行在脑海中带入暴走漫画里的脸。

因为这样的用法太过常见,“TFW”这词本身都像是带上了表情。往往“TFW”后不跟任何东西也能表达出同样的含义。 比如当一段对话变得异常讨厌或尴尬时,你可以回一个“TFW”表达“无话可说”。

Laissez Faire

“Laissez faire”是个法语词,原意是“随它去”。它在英文世界被熟知是因为在经济学中用这个词表示自由放任主义。

在日常生活中,这个词便被用来表达对一件事比较无所谓。

同样的意思也可以用“que sera, sera”(是什么,就是什么)表达。这个词大概来自拉丁语吧,西班牙语和法语中都有同样的说法。

当然了,真要表达这个意思,肯定有更正常的方式。之所以用这些稀奇古怪的外来词,好玩罢了。

最后说个靠谱点的概念吧:

康威定律(Conway’s Law)

康威定律是一个叫马尔文·康威(Melvin Conway)的程序员在1967年提出的。

注意这个康威跟生命游戏的发明者、大名鼎鼎的数学家康威(John Horton Conway)并没有什么关系。

康威定律说的是:

设计系统的架构受制于产生这些设计的组织的沟通结构。

最初听说这个定律是在公司里某次改组(reorg)后同事们的讨论中。简而言之,就是说系统、代码的架构会不可避免地跟写代码的工程师的组织架构相似。

这样的现象的产生原因挺好理解:

我们往往有更多机会跟自己组内的人沟通,也更了解同组同事的习惯和能力,能够接受在同一个代码库共事,甚至合作完成同一个项目。

而对别的组的人,我们并没有太多的机会沟通,与那么大规模的人沟通也不现实。所以策略就变成划定明确的服务边界,小如API(Application Programming Interface,应用程序接口),大如微服务(microservice)、服务,辅以对应的SLA(service-level agreement,服务级别协议)。

但这个现象给不同人的启示可能大相径庭。

有人会觉得,出于人为的原因而形成系统架构是不科学的,往往不能让系统在技术层面上最优化。因而​需要努力克服康威定律的魔咒,不要让系统的架构受制于行政架构。

但也有会人接受这个现实。毕竟软件工程本质上是一门人与人沟通合作的工程,系统架构与沟通结构的相近确实能提高工程的效率和质量。所以不妨反其道而行之,尽可能地调整组织架构,让它跟软件架构相似。这也就是为什么公司里可能频频小规模改组的原因之一。

当然,现实不是非黑即白的,管理者往往需要对手下的项目(以及临近组的项目)从技术和人事层面都了解透彻,在这两者之间平衡,达到最好的效果。

往期“辞海一瓢”:1