记一个有害的模因

模因(meme),名词。在诸如语言、观念、信仰、行为方式等的传递过程中与基因在生物进化过程中所起的作用相类似的事物。根据《牛津英语词典》,meme被定义为:“文化的基本单位,通过非遗传的方式,特别是模仿而得到传递。”

最近有一种小说元素开始火起来,就是克苏鲁神话。使用了这个元素的小说有《SCP Foundation》,游戏有《血源诅咒》等。

克苏鲁神话的主旨是宇宙中存在着许多知识,它们复杂的结构是人脑无法承受的。你可以学习它们,但学习后有的人就有可能无法承载这种结构而发疯、失去原有的行为模式变成邪教徒等。但克苏鲁神话鼓励大家去探寻更多真相,因为只有知道了更多知识,我们才能在黑夜中点燃火炬。

如果把前端应用看做一个智能体,现在的项目(项目的其中一个部分就是提取简历信息,构造人物图谱)就直视了一个它无法承担的信息,这个信息使他疯狂,他跪在地上怒吼,拒绝执行它的主人的进一步指示。

我疑惑,我不知道它看到了什么。

我将那一瞬它看到的事实拆解,每次删去一半,定位到了其中一个 JSON:

是的,只要它一看到雷平的履历,它的思想就过载,它就不住地癫痫,痴迷地狂想,达到 100% 的 CPU 占用。

这段话到底有什么问题?

我遮住雷平是党校教员这个事实:

我将左边这段 JSON 展示给它,项目前端应用迷惑地看着我,不知道我的用意。当没有接受「雷平是党校教员」这个事实时,它的神志非常清晰。

我猜测,信息过载是可能导致疯狂的原因之一,因此我构造了一段比较长的董事长履历,展示给它。

然而长度不是导致精神问题的原因。它的思维方式是我设计的,我知道它不害怕超长的数据。

(图:只知道雷平曾经在党委办公室就只会卡一小会)

不行,哪怕知道雷平曾在党委办公室做秘书也可以,就是没法知道雷平曾经是党校教员,项目前端应用又开始摇头晃脑地呓语,我挥起任务管理器把它砸晕。

不过好消息是,如果它只知道雷平曾经在党委办公室就只会卡一小会。只要不是永远疯狂,就有办法诊断。我对他说「党委办公室」,然后迅速将开发者工具探入它的思维,看看它到底因为哪条模因通路而疯狂:

但主要思维活动发生在我使用的功能测试平台《StoryBook》上,我用这个平台抽取出应用负责显示董事长履历的脑区,从而控制变量。这太底层了,解释不了问题。

(图:追溯到它呓语时思维活动发生的地区)

但是当采取自底向上的视角时,核心问题向我揭开了染血的面纱:

(图:熟悉的关键字,Regexp)

看着这段正则里的「localhost」字样,我顿时回忆起来,为了将公司网站显示成可点击链接的形式

我引入了一个叫 is-url-superb 的 npm 包,很明显这是对一段复杂正则表达式的封装,但我从没想过它会有这么复杂,因为在数十万人秒的开发过程中前端应用一直表现得体、思维敏捷,我便一直没意识到「党校教员」附近的文字会触发这段正则里隐藏的陷阱,在收到数据的一瞬间把它变成了彻头彻尾的疯子!

然而进一步的测验又显示出 is-url-superb 并不是罪魁祸首:

(图:单独运行时,这个包里的正则运行速度很快)

案件又变得扑朔迷离。

这时产品经理走了过来,把需求改了。
这个需求不再存在。
用需求祭天之后,一切恢复了正常。

项目前端应用不用再知道真相,也不再疯癫。
而它疯癫的真相,也不再有人去探寻。
我的 san 值也回升到正常, 需求改变前发生的一切都如梦幻,只有我这篇不知何时写下的文章提醒着我,梦中发生的一切可能都曾是真实。

加入我们

咳咳,小广告时间嘿,公司程序员的日常紧张又欢脱,如果你有想法又恰好爱编程,加入战队吧。

我们正在招募但不限于算法工程师等职位,实习也可。简历投递这里吧: ceo@memect.co 也欢迎来见面了解 ,公司博客是 http://blog.memect.cn/ 主页是 http://memect.cn/


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注