在软件工程领域,有一个广为流传的术语——“屎山代码”(Big Ball of Mud),形容的是那些缺乏清晰架构、随着时间推移不断叠加补丁、最终变得难以维护和修改的系统。如今,这个来自程序员世界的黑色幽默,被越来越多城市规划学者和建设从业者拿来比喻某些城市的空间演进逻辑:一座城市,是否也会因为历史遗留问题、短期决策叠加和部门壁垒,最终沦为一座难以改造的“屎山”?

历史的“补丁”越打越多

任何一座老城,都带着数百甚至上千年的建设印记。但现代城市规划的一个显著困境在于,不同时期的规划理念相互冲突,却没有人能彻底推倒重来。

以上海为例,老城厢的狭窄街巷与近代租界区的网格路网交织,改革开放后新建的高架桥又像铁箍一样从旧区上空穿过。交通、排水、管线等基础设施在老城区常常是“见缝插针”式地扩容,今天加一根水管,明天补一段电缆,后天又因为地铁施工不得不临时改线。这种不断叠加的“补丁式”更新,让城市地下管网变成了一团谁也理不清的“数据库”,一旦需要大规模改造,需要查阅几十年前的图纸,甚至要依赖老工人的记忆。

“很多地下管线根本没有数字化档案,这就是一份鲜活的‘屎山’。”同济大学城市规划系一位不愿具名的教授对记者表示,“你永远不知道下一铲子下去会挖到什么东西。”

部门壁垒导致“代码耦合”

在软件系统中,一个模块的改动可能引发整个系统崩溃,这被称为“高度耦合”。城市规划中类似的现象屡见不鲜——交通部门、水务部门、电力部门、绿化部门分别制定各自的长期规划,却缺乏统一协调。

比如,某城市为了缓解主干道拥堵,交通部门在路面上增加了多段隔离栏和单行线;但几个月后,水务部门为了铺设新的排水管道,不得不挖开路面积水点,却发现路面下已被交通信号管线塞得满满当当。最终,双方只能彼此妥协,临时改线,增加了一个“影响老系统稳定”的施工方案。

“我们经常用‘九龙治水’来形容城市管理,但这种多头治理恰恰是产生‘屎山代码’的温床。”北京建筑大学城市设计学院研究员林志强认为,城市不是一个可以随意打补丁的软件系统,一个低质量的补丁可能需要未来好几代人付出十倍成本去修正。

短期政治周期与长期城市寿命的矛盾

更致命的问题在于时间维度的错位。软件代码可以随时重构,但城市物理空间一旦建成,寿命长达几十年甚至上百年。而一个城市的管理者可能平均只有五年任期。

在一些城市,新任领导往往倾向于“另起炉灶”——推翻前任规划,新建标志性片区,或者盲目模仿国外成功案例。这种“每五年重写一次代码”的冲动,导致城市出现大量功能错位、半途而废的工程项目。比如一些城市的轨道交通先建了郊区线,发现客流不足,再勉强加密市区网络,最终形成“郊区空荡荡、市区挤不下”的低效通勤结构。

更典型的案例是多个城市出现的“地下商业街”。上世纪90年代,许多城市为了人防和商业双重目的,大规模建设人防工程地下商业街。但如今,很多商业街因电商冲击而萧条,通道又阻碍了地铁新线的穿行,成为城市地下空间改造的“死代码”——既不能提供价值,也难以删除。

我们真的需要“重构”城市吗?

面对这些问题,有学者提出:城市是否应该像软件系统那样定期“重构”?即在不推倒一切的前提下,进行系统性的功能拆分、模块化改造和数据标准化。

深圳前海、雄安新区等城市新区的规划建设,试图从零开始构建一个“干净代码”的样本:所有基础设施统一规划、统一建设、统一数字化管理,预留了足够的弹性空间。但这类新城也有局限性——它们无法复制到历史累积深厚的老城区。

“真正的挑战,是如何在没有系统文档、没有统一架构的前提下,进行一场不动骨骼的微创手术。”林志强说。一些城市已经开始尝试数字化转型,为每一段下水管道、每一根电线杆建立数字孪生模型。但这种“代码注释”本身的书写过程就可能错漏百出。

或许,城市永远不可能是一段完美的代码。正如软件工程承认“系统最终都会走向混乱”,我们只能希望,城市管理者能够拥抱一种“渐进式重构”的思维:在做每一个“补丁”时,都尽力思考它十年后的代价;在每一次“功能迭代”时,都留下足够清晰的注释。否则,未来的城市将不仅仅是“屎山代码”,更会成为“屎山城市”——而一座真正的城市,没有机会从头开始调试。