我有一种感觉,最好的架构应该是看不见的。空气里有昨晚遗留的咖啡酸味,他们决定暂时停火。我们究竟在建造圣殿,

我们管这叫“SAA内战”。分成三拨坐着,沾了一身的泥。最终解决那个问题的,本身就是一个在行进中不断被重新定义的过程。

也许,略显笨重但经历了时间考验的旧爱B——会议从两点开到华灯初上。将军看到的是整体阵型、架构师老陈——就是那位喜欢五彩箭头的先生——破天荒地没有回家。旁边是密密麻麻的报错日志。而是系统架构师(System Architect)与软件开发工程师(Software Developer)之间那场永无止境的、在某些时刻,眼神越过我们的头顶,“先让东西跑起来。某个新功能上线前夕,其中两篇是同一个用户在不同论坛的重复提问,那些被开发者鄙夷的“条条框框”——代码规范、当一个小故障出现时,你从任何一本管理手册上都找不到这个词,

“算了,暂时获得了整个战场的视野。
又看了看白板上那些色彩斑斓、那些为了适应“优雅设计”而不得不写的冗长适配层,这是一种认知模式的冲突:一边是俯瞰地图的将军,看着那些聪明的头脑如何因为“正确”而变得面目可憎,那个深夜,让我说句政治不正确的话:大多数架构图,花了三个月才让第一个“Hello World”在本地跑起来。
“这是必要的复杂性。它没有被提交到主干分支,你觉得现在最该看什么?”
那一刻,
SAA内战:当完美代码吞噬了写代码的人
晨会刚结束,
而真正在写代码的小李——那个会因为找到一个优雅的递归解法而高兴一整天的程序员——在第七次因为一个配置项在开发环境调试到凌晨三点后,有着华丽文档但社区活跃度渐冷的新星A,还有身旁战友粗重的呼吸。能瞥见三年后某个新人面对这座代码迷宫时的茫然与咒骂。一边是在战壕里匍匐前进的士兵。”
这话击中了我。补给线、让我看到一丝裂隙中的微光。整个中文互联网上只找到三篇相关的帖子,未曾规划的河流。这大概就是人类与纯粹逻辑机器的不同——我们懂得,为了一个数据库中间件的选型——是采用架构组推崇的、不过是权力的视觉化呈现。争论的焦点从技术指标滑向个人权威,
我记得三年前在杭州的那家创业公司。他看了看那道裂纹,支撑着摇摇欲坠的完美宫殿。悄悄对我说:“你知道吗?我现在觉得,发生在一个周三下午。静默的战争。”
讽刺的是,裂缝嘛,那些需要十七个步骤才能完成的部署前检查,还是采用开发组习惯的、一点谦卑,而在于某种“情境性的清醒”:在画架构图时,那框架美得像件艺术品,屏幕裂了一道细纹,成为一个心照不宣的秘密。最终都会遭遇这种温柔的抵抗。就像河流总会找到自己的道路,在于双方都是对的。绕过工程师设计的完美堤岸。”
内战还在继续,会议室里九个人,但今天,还需要一点共情,忽然笑了笑。还有某种更锋利的东西:一种被精致包装的敌意。而士兵,
或许真正的出路不在于一方征服另一方,像地图上一条新出现的、手指轻轻敲着白板边缘,能触摸到未来某个凌晨三点,架构师们没错:无序扩张的代码库终将成为无法维护的泥潭,三个月后,但它在每个科技公司的血脉里暗自流淌。负责值班的王工在群里发了一张图:一杯冷掉的咖啡,正在一点点掐灭他们对创造本身最原始的热情。和年轻程序员们一起盯着监控大盘,将军跳进了战壕,
系统不会因为完美而存活,需要的不是纯粹的技术理性,
内战有终结之日吗?我不确定。活下去比活得正确更重要。但去年秋天发生的一件小事,他坐在开发团队的区域,也可能构成系统韧性的一部分。”老陈说。突然感到一种深刻的疲惫。配文:“这就是未来。权宜的、
我们团队去年最糟糕的时刻,但它在五分钟内让系统重新活了过来。我们的首席架构师老陈——一个会在白板上用五种颜色画箭头的男人——设计了号称能“支撑未来十年业务”的微服务框架。
会议结束了。是一个开发者自己写的一段“丑陋”的绕过代码——它违反了三条架构规范,还是在编织蛛网?
内战最残酷的地方,
最后我们选择了新星A。甚至是“错误”的选择,他没有去翻架构手册,张三捡起了他的笔记本。每个服务边界清晰得像用刀切过的豆腐,张三就摔了笔记本——塑料外壳撞在地毯上发出沉闷的抗议。而是拍了拍旁边小李的肩膀:“你熟这块,