我之前洋洋洒洒地写过一篇日志,讲的是 HEX 结构。它是个类似蜂巢或洋葱的结构,外层向内依赖核心,核心干净且自洽。
我看着这个结构,心旷神怡。
最近我在思考如何安全地调用外部系统,忽然发现,它所包含的『转换 - 处理 - 转换』,以及『外部依赖核心』的逻辑和当初的 HEX 结构竟出奇的相似。
这种分形和递归的气质,我依旧觉得很美很精巧。
我决定着手记录下来,但写出去几句话以后,就感觉不太对,仿佛之前曾经写过无数次类似的东西。仔细想来是的,精美的重构会增加我的多巴胺,而这样的机制从没有改变过,所以我顺着多巴胺的路子,在那里不停地绕圈圈。
精美的代码结构,从技艺的角度讲是巧思,但它离非程序员太远了。
这样的巧妙和变化,面向的是同为写程序的人,「Aha Moment」的那一刻,也只在看到别人历史代码的时候显现。除此之外,我很难想到,谁会如此在意这个,Manager 不会在意,用户更不会在意
似乎除了当下的那个我,世界上的大部分人都不会在意。DRY,KISS 这些精巧的策略,除了能在面试场景中展现出你的代码品味以外,大部分时候,我没时间发挥我的品味,也没有时间去品味他人的品味。它们只能在极小的程度上,影响代码的滚变化动方向,有时朝是着一颗,大部分时候是朝着一坨。
我承认它重要,但限于至少五年的尺度,短了看不出来。
过分聚焦于代码的精巧,会让我忘记人类赖以生存的衣食住行,还有真实的、无聊的,也有关于爱或勇气的。
你可能会问了,写个代码而已,怎么还能扯到爱和勇气上了?
和代码接触的越多,我越觉得,这不仅是个工程上的事情,更是个捣鼓人心的活动。代码跑起来了,观察它的是人,检测它的是人,等着听回报和反馈的是人,用它的更是人。我在里面就是个翻译官,把人类的语言翻译成机器能听懂的语言,然后让它给我们打下手,当它不听指挥了,我就得给它打圆场。
如果出现了问题,要么是我和机器说话,去查查之前的翻译哪里出错,哪里没有指挥到位;要么我换个方向,去和有关的人解释。当然,我的解释必须要听上去足够可靠,能说服人。此刻,另一个方向的艺术诞生了,即解释的艺术——『BUG 不是 BUG,而是另外一种 FEATURE』,诠释的就是这种艺术。
『语言的艺术』必须和『教你如何写精巧的代码』摆在同等重要的位置。
在我看来,AI 现在是解决了编码问题,但仍没有解决工程问题。而工程问题很大一部分是沟通问题。在没有 AI 的时候,编码者可以待在舒适区里面,不必进行太多交流,而 AI 来了,把这块布给揭开了,人们不得不离开这个舒适区。
人要和人耦合,和机器解耦。
我不知道哪里冒出的想法,但却感觉它很质朴,很舒服。不过未来的发展大概率会反其道而行之,这只是我的猜测。