网易首页 > 网易号 > 正文 申请入驻

“仅 6 个月,我们造出了比 10 年老系统还多的技术债……”

0
分享至


【CSDN 编者按】在软件工程里,技术债往往不是一次“重大失误”的产物,而是由无数个“当时看起来还不错”的小决定慢慢堆出来的。本文作者就用了一个极其真实的案例,讲清了一个很多团队都会踩的坑:为了省事、为了快、为了“先跑起来”,不断模糊边界、复用模型,最终让数据结构和业务语义一起失控。

原文链接:https://superkacper4.github.io/portfolio-2023/blog/technical-debt-everyday

作者 | Kacper Kuczewski 翻译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

六个月前,我们做了一个看起来非常小、也非常“合理”的决定:不新建数据库表

原因很简单,系统里的两个业务实体“看起来足够相似”,于是我们直接把它们塞进了同一张表中——谁也没想到,就是这个决定,让我们在短短半年里,造出了比我日常维护的 10 年老系统还要多的技术债。

接下来,就说说这个坑是怎么一步步挖出来的。



一张表,拖垮整个系统

最初,我们的应用逻辑非常简单:用户可以对房产添加观点(Opinion)。当时的数据模型大概长这样:

}

你可以看到,这里面已经存在一些明显是“房源”和“观点”都能共用的字段,比如:buildingId、pricePerSquareMeter、area,一切都还算正常。


“再加一个字段也没什么吧?”

问题出现在我们准备引入公寓(Apartment)实体的时候。

我们发现,当前的Opinion表缺少一些对“房源”来说非常关键的字段。但由于当时评价和公寓信息都支持注册用户提交,我们就给表加了用户关联关系,功能覆盖依然完整,一切看起来都还不错。

于是我们继续迭代,很快又发现缺了房间这个基础字段,那就加一个numberOfRooms;接着又加了floor(楼层)、height(层高)……从技术角度看,这些字段放在 Opinion表里并不会报错;但从业务角度看——它们对“观点”毫无意义


慢慢地,事情开始失控

久而久之,整个表的一半字段都成了可选属性(?),这种设计也让可选属性遍布了整个应用的代码中。

从数据层面看,这张表已经乱成一锅粥,最后我们不得不往表里加一个isApartmentOpinion的标识字段,用来区分这条数据到底是公寓信息还是房产评价,想想都觉得无奈。

而从代码层面来说,问题更严重:开发者根本无法快速判断一个Opinion对象到底是公寓信息,还是单纯的房产评价。

这一操作直接埋下了巨大的技术债。但最可悲的是,在很长一段时间里,所有人都觉得当初“合表”的决定是合理的——直到随着业务迭代,这个决策的弊端才被无限放大,变得无可挽回。


背景补充:一个 6 个月的成熟应用

这里提一下我们的应用背景,这是一个基于Next.js 开发的单体应用,虽然只有 6 个月的历史,但已经是一个成熟的产品,甚至对接了外部支付系统。

它不算超复杂的大型应用,但绝对也不是小打小闹的 Demo。

这个产品的初衷,是做一个房产市场的评价和价格交流平台,帮助用户做房产决策——你可以把它理解为:“房地产版的 Glassdoor”(职场评价平台)。

也正因如此,当我们后来想在应用中加入房产广告功能时,系统里已经有了那张Opinion评价表,这也是当初我们选择“合表”的重要原因。


鲜明对比:10 年老系统的正确操作

最近,我们在维护一个10 年的老系统时,要开发一个“优惠券”新功能,初期也和往常一样,打算直接在单体应用里开发,把所有相关数据都塞进老系统的数据库。

但很快我们意识到,这个功能迟早要和公司的商城微服务集群做外部集成。

于是我们停了下来:没有“先凑合”,也没有想着“反正能跑”,我们把整套逻辑直接拆出去,做成了一个独立服务

这个做法确实增加了开发工作量,也导致了功能上线延期,但换来了一个最重要的结果:优惠券业务有了唯一的数据,后续的维护、集成、迭代都有了清晰的边界,从根本上避免了技术债的产生。


经验教训:技术债从不是凭空出现的

这次的经历让我彻底明白:技术债从来都不是凭空产生的,而是我们每天在开发中,一步步亲手造出来的。

技术债的产生,从来不是因为开发者偷懒、没时间重构,或者选了什么小众的技术栈——更多时候,是我们在开发中做了那些看似合理的小决策,而这些决策在业务迭代中不断发酵、滚雪球,最终演变成无法收拾的大问题。

比如那句耳熟能详的“后续再重构(TODO: Will refactor it later)”,还有 “这两个实体看起来差不多,不如共用一套逻辑吧”,最后都会让代码里充满各种判断分支(if),变得臃肿且难以维护。

最后,我想和所有开发者共勉:请重视技术债,并且一定要意识到,技术债就藏在我们每天的每一个开发决策里。它从来都不是 “前任开发者留下的烂摊子”,而是我们自己埋的坑,是你,也是我。

终有一天你会发现,自己对着屏幕抓耳挠腮想要调试的糟糕代码,正是当初自己写的。开发之路多坑,愿我们都能保持清醒,积极面对,少埋坑,多填债。

未来没有前后端,只有 AI Agent 工程师。

这场十倍速的变革已至,你的下一步在哪?

4 月 17-18 日,由 CSDN 与奇点智能研究院联合主办「2026 奇点智能技术大会」将在上海隆重召开,大会聚焦 Agent 系统、世界模型、AI 原生研发等 12 大前沿专题,为你绘制通往未来的认知地图。

成为时代的见证者,更要成为时代的先行者。

奇点智能技术大会上海站,我们不见不散!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“秦岚”也太凡尔赛了吧!穿一身瑜伽服凹凸有致,巴掌腰太抢镜

“秦岚”也太凡尔赛了吧!穿一身瑜伽服凹凸有致,巴掌腰太抢镜

巧手晓厨娘
2025-12-30 18:59:18
离谱!零跑年会寒酸到被称“年度渡劫”,员工:办不起别办

离谱!零跑年会寒酸到被称“年度渡劫”,员工:办不起别办

雷科技
2026-01-31 21:22:32
姚顺雨之后,又一95后天才加入腾讯/苹果AI团队再现离职潮/Clawdbot再改名,已破10万星

姚顺雨之后,又一95后天才加入腾讯/苹果AI团队再现离职潮/Clawdbot再改名,已破10万星

AppSo
2026-01-31 09:15:02
杨紫这身材是真实存在的吗,薄薄的一片好瘦呀,极致自律太牛了!

杨紫这身材是真实存在的吗,薄薄的一片好瘦呀,极致自律太牛了!

TVB的四小花
2026-01-31 16:00:58
1969年珍宝岛冲突,苏军三坦克入我境,陈锡联令开火被肖全夫阻止

1969年珍宝岛冲突,苏军三坦克入我境,陈锡联令开火被肖全夫阻止

唠叨说历史
2026-01-29 18:31:08
被戴8次绿帽子,3次被捉奸在床,这就是我们“玉女”守卫的爱情?

被戴8次绿帽子,3次被捉奸在床,这就是我们“玉女”守卫的爱情?

素衣读史
2026-01-30 17:15:38
特朗普威胁对加采取“重磅措施”

特朗普威胁对加采取“重磅措施”

财联社
2026-02-01 20:27:32
央视怒批,人民日报点名封杀,这5位目无法纪的大网红,彻底凉凉

央视怒批,人民日报点名封杀,这5位目无法纪的大网红,彻底凉凉

一娱三分地
2025-12-04 17:00:33
陕甘之战——汉人最伟大的一场巅峰战役,带领华夏重回世界之巅

陕甘之战——汉人最伟大的一场巅峰战役,带领华夏重回世界之巅

小豫讲故事
2026-01-31 06:00:10
陈松伶自曝,外甥女觊觎其家产,无儿无女的她计划和丈夫住养老院

陈松伶自曝,外甥女觊觎其家产,无儿无女的她计划和丈夫住养老院

社会日日鲜
2026-02-01 10:06:56
汇川技术董事长朱兴明3小时深度反省:我们这两年最大的问题,不是战略,而是“人”

汇川技术董事长朱兴明3小时深度反省:我们这两年最大的问题,不是战略,而是“人”

36氪
2026-02-01 09:18:11
老将军走了6天才发讣告,细节破防

老将军走了6天才发讣告,细节破防

Ck的蜜糖
2026-02-01 14:08:39
代孕、陪睡仅开胃菜!48小时传来3大“噩耗”,郭晶晶也没逃过

代孕、陪睡仅开胃菜!48小时传来3大“噩耗”,郭晶晶也没逃过

秋姐居
2026-02-01 11:29:20
绷不住了,集团大面积待岗欠薪!

绷不住了,集团大面积待岗欠薪!

黯泉
2026-01-29 22:31:20
刚刚,崩了!40万人爆仓!

刚刚,崩了!40万人爆仓!

中国基金报
2026-02-01 07:39:50
工厂里真有男人思想如此龌龊?网友:女生一定不要一个人进厂

工厂里真有男人思想如此龌龊?网友:女生一定不要一个人进厂

带你感受人间冷暖
2026-01-25 00:05:08
TOP14位身高170以上的女神,有颜有灯有演技

TOP14位身高170以上的女神,有颜有灯有演技

素然追光
2026-01-02 02:45:02
黑云压城城欲摧!美伊战争开始读秒,美国“不死凤凰”登场

黑云压城城欲摧!美伊战争开始读秒,美国“不死凤凰”登场

史政先锋
2026-01-31 16:27:48
原来他们是两口子,戏里戏外都是夫妻,看不出年龄相差有16岁

原来他们是两口子,戏里戏外都是夫妻,看不出年龄相差有16岁

玲儿爱唱歌
2026-01-31 19:46:01
马竞爆冷丢分,1亿巨星急速陨落:11场0进球,欧洲生涯最差

马竞爆冷丢分,1亿巨星急速陨落:11场0进球,欧洲生涯最差

足球狗说
2026-02-01 03:44:58
2026-02-02 02:48:49
CSDN incentive-icons
CSDN
成就一亿技术人
26292文章数 242228关注度
往期回顾 全部

科技要闻

10亿元宝红包突袭 复刻微信支付还是微视?

头条要闻

爱泼斯坦追逐女孩、安德鲁跪爬女子身上画面全公布

头条要闻

爱泼斯坦追逐女孩、安德鲁跪爬女子身上画面全公布

体育要闻

德约大度祝贺阿卡 幽默互动逗笑纳达尔

娱乐要闻

春晚第三次联排阵容曝光:全是实力派

财经要闻

黄仁勋台北"夜宴":汇聚近40位台企高管

汽车要闻

岚图汽车1月交付10515辆 同比增长31%

态度原创

时尚
房产
数码
本地
教育

“多巴胺风”又又又火了!这样穿时髦又减龄

房产要闻

藏不住的小城大事,海澄新城执掌自贸港风口,进阶兑现美好生活新篇

数码要闻

显存稀缺暴涨:三款RTX 50 GPU将占一季度总供应量75%!

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

教育要闻

鼓楼、玄武、建邺、秦淮多区教育局发布提醒!

无障碍浏览 进入关怀版