国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

“僅 6 個月,我們造出了比 10 年老系統(tǒng)還多的技術(shù)債……”

0
分享至


【CSDN 編者按】在軟件工程里,技術(shù)債往往不是一次“重大失誤”的產(chǎn)物,而是由無數(shù)個“當(dāng)時看起來還不錯”的小決定慢慢堆出來的。本文作者就用了一個極其真實的案例,講清了一個很多團隊都會踩的坑:為了省事、為了快、為了“先跑起來”,不斷模糊邊界、復(fù)用模型,最終讓數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)語義一起失控。

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

作者 | Kacper Kuczewski 翻譯 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

六個月前,我們做了一個看起來非常小、也非常“合理”的決定:不新建數(shù)據(jù)庫表。

原因很簡單,系統(tǒng)里的兩個業(yè)務(wù)實體“看起來足夠相似”,于是我們直接把它們?nèi)M了同一張表中——誰也沒想到,就是這個決定,讓我們在短短半年里,造出了比我日常維護的 10 年老系統(tǒng)還要多的技術(shù)債。

接下來,就說說這個坑是怎么一步步挖出來的。



一張表,拖垮整個系統(tǒng)

最初,我們的應(yīng)用邏輯非常簡單:用戶可以對房產(chǎn)添加觀點(Opinion)。當(dāng)時的數(shù)據(jù)模型大概長這樣:

}

你可以看到,這里面已經(jīng)存在一些明顯是“房源”和“觀點”都能共用的字段,比如:buildingId、pricePerSquareMeter、area,一切都還算正常。


“再加一個字段也沒什么吧?”

問題出現(xiàn)在我們準備引入公寓(Apartment)實體的時候。

我們發(fā)現(xiàn),當(dāng)前的Opinion表缺少一些對“房源”來說非常關(guān)鍵的字段。但由于當(dāng)時評價和公寓信息都支持注冊用戶提交,我們就給表加了用戶關(guān)聯(lián)關(guān)系,功能覆蓋依然完整,一切看起來都還不錯。

于是我們繼續(xù)迭代,很快又發(fā)現(xiàn)缺了房間數(shù)這個基礎(chǔ)字段,那就加一個numberOfRooms;接著又加了floor(樓層)、height(層高)……從技術(shù)角度看,這些字段放在 Opinion表里并不會報錯;但從業(yè)務(wù)角度看——它們對“觀點”毫無意義


慢慢地,事情開始失控

久而久之,整個表的一半字段都成了可選屬性(?),這種設(shè)計也讓可選屬性遍布了整個應(yīng)用的代碼中。

從數(shù)據(jù)層面看,這張表已經(jīng)亂成一鍋粥,最后我們不得不往表里加一個isApartmentOpinion的標(biāo)識字段,用來區(qū)分這條數(shù)據(jù)到底是公寓信息還是房產(chǎn)評價,想想都覺得無奈。

而從代碼層面來說,問題更嚴重:開發(fā)者根本無法快速判斷一個Opinion對象到底是公寓信息,還是單純的房產(chǎn)評價。

這一操作直接埋下了巨大的技術(shù)債。但最可悲的是,在很長一段時間里,所有人都覺得當(dāng)初“合表”的決定是合理的——直到隨著業(yè)務(wù)迭代,這個決策的弊端才被無限放大,變得無可挽回。


背景補充:一個 6 個月的成熟應(yīng)用

這里提一下我們的應(yīng)用背景,這是一個基于Next.js 開發(fā)的單體應(yīng)用,雖然只有 6 個月的歷史,但已經(jīng)是一個成熟的產(chǎn)品,甚至對接了外部支付系統(tǒng)。

它不算超復(fù)雜的大型應(yīng)用,但絕對也不是小打小鬧的 Demo。

這個產(chǎn)品的初衷,是做一個房產(chǎn)市場的評價和價格交流平臺,幫助用戶做房產(chǎn)決策——你可以把它理解為:“房地產(chǎn)版的 Glassdoor”(職場評價平臺)。

也正因如此,當(dāng)我們后來想在應(yīng)用中加入房產(chǎn)廣告功能時,系統(tǒng)里已經(jīng)有了那張Opinion評價表,這也是當(dāng)初我們選擇“合表”的重要原因。


鮮明對比:10 年老系統(tǒng)的正確操作

最近,我們在維護一個10 年的老系統(tǒng)時,要開發(fā)一個“優(yōu)惠券”新功能,初期也和往常一樣,打算直接在單體應(yīng)用里開發(fā),把所有相關(guān)數(shù)據(jù)都塞進老系統(tǒng)的數(shù)據(jù)庫。

但很快我們意識到,這個功能遲早要和公司的商城微服務(wù)集群做外部集成。

于是我們停了下來:沒有“先湊合”,也沒有想著“反正能跑”,我們把整套邏輯直接拆出去,做成了一個獨立服務(wù)

這個做法確實增加了開發(fā)工作量,也導(dǎo)致了功能上線延期,但換來了一個最重要的結(jié)果:優(yōu)惠券業(yè)務(wù)有了唯一的數(shù)據(jù),后續(xù)的維護、集成、迭代都有了清晰的邊界,從根本上避免了技術(shù)債的產(chǎn)生。


經(jīng)驗教訓(xùn):技術(shù)債從不是憑空出現(xiàn)的

這次的經(jīng)歷讓我徹底明白:技術(shù)債從來都不是憑空產(chǎn)生的,而是我們每天在開發(fā)中,一步步親手造出來的。

技術(shù)債的產(chǎn)生,從來不是因為開發(fā)者偷懶、沒時間重構(gòu),或者選了什么小眾的技術(shù)棧——更多時候,是我們在開發(fā)中做了那些看似合理的小決策,而這些決策在業(yè)務(wù)迭代中不斷發(fā)酵、滾雪球,最終演變成無法收拾的大問題。

比如那句耳熟能詳?shù)摹昂罄m(xù)再重構(gòu)(TODO: Will refactor it later)”,還有 “這兩個實體看起來差不多,不如共用一套邏輯吧”,最后都會讓代碼里充滿各種判斷分支(if),變得臃腫且難以維護。

最后,我想和所有開發(fā)者共勉:請重視技術(shù)債,并且一定要意識到,技術(shù)債就藏在我們每天的每一個開發(fā)決策里。它從來都不是 “前任開發(fā)者留下的爛攤子”,而是我們自己埋的坑,是你,也是我。

終有一天你會發(fā)現(xiàn),自己對著屏幕抓耳撓腮想要調(diào)試的糟糕代碼,正是當(dāng)初自己寫的。開發(fā)之路多坑,愿我們都能保持清醒,積極面對,少埋坑,多填債。

未來沒有前后端,只有 AI Agent 工程師。

這場十倍速的變革已至,你的下一步在哪?

4 月 17-18 日,由 CSDN 與奇點智能研究院聯(lián)合主辦「2026 奇點智能技術(shù)大會」將在上海隆重召開,大會聚焦 Agent 系統(tǒng)、世界模型、AI 原生研發(fā)等 12 大前沿專題,為你繪制通往未來的認知地圖。

成為時代的見證者,更要成為時代的先行者。

奇點智能技術(shù)大會上海站,我們不見不散!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

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.

相關(guān)推薦
熱點推薦
楊瀚森連3天出戰(zhàn)5分1暴扣!開拓者送步行者9連敗 阿夫迪亞18+8

楊瀚森連3天出戰(zhàn)5分1暴扣!開拓者送步行者9連敗 阿夫迪亞18+8

醉臥浮生
2026-03-09 11:26:45
訂單數(shù)十萬輛震驚世界,如今銷量暴跌,原形畢露了!

訂單數(shù)十萬輛震驚世界,如今銷量暴跌,原形畢露了!

柏銘銳談
2026-03-08 23:28:38
薛之謙老婆懷二胎步伐輕松,現(xiàn)身產(chǎn)檢心情愉快,難怪李雨桐破防了

薛之謙老婆懷二胎步伐輕松,現(xiàn)身產(chǎn)檢心情愉快,難怪李雨桐破防了

萌神木木
2026-03-09 10:49:50
為何要增加高中學(xué)位?因為不改現(xiàn)狀,五五分流根本撐不住

為何要增加高中學(xué)位?因為不改現(xiàn)狀,五五分流根本撐不住

老特有話說
2026-03-07 16:16:46
史詩狂怒行動第二階段:地下戰(zhàn)爭

史詩狂怒行動第二階段:地下戰(zhàn)爭

南文視界
2026-03-08 22:59:27
尼克松晚年坦言:他很后悔當(dāng)初訪華,只因毛主席識破的訪華計謀!

尼克松晚年坦言:他很后悔當(dāng)初訪華,只因毛主席識破的訪華計謀!

冰語歷史
2026-03-07 06:23:39
廣東富二代范博喬:22歲在國外打死同胞,花2000萬保釋,現(xiàn)狀如何

廣東富二代范博喬:22歲在國外打死同胞,花2000萬保釋,現(xiàn)狀如何

朝子亥
2026-02-23 18:35:03
回國或被判死刑!5名伊朗球員逃離隊伍:前往澳洲警局 曾拒唱國歌

回國或被判死刑!5名伊朗球員逃離隊伍:前往澳洲警局 曾拒唱國歌

風(fēng)過鄉(xiāng)
2026-03-09 22:26:49
從網(wǎng)絡(luò)中的伊朗,到人性下限的徹骨惡寒!

從網(wǎng)絡(luò)中的伊朗,到人性下限的徹骨惡寒!

胖胖說他不胖
2026-03-08 12:05:08
烏第95旅奪回460平方公里的背后,是冷靜到骨子里的殺戮藝術(shù)

烏第95旅奪回460平方公里的背后,是冷靜到骨子里的殺戮藝術(shù)

子桑說
2026-03-09 18:06:50
當(dāng)年舉報畢福劍的告密者竟變成這樣了!誰也沒想到

當(dāng)年舉報畢福劍的告密者竟變成這樣了!誰也沒想到

就一點
2026-03-08 10:08:19
迪拜“地獄”監(jiān)獄:一間牢房20人,強奸是家常便飯,隨時會被電擊

迪拜“地獄”監(jiān)獄:一間牢房20人,強奸是家常便飯,隨時會被電擊

哄動一時啊
2026-03-09 19:26:44
油價即將暴漲 92號汽油上漲0.55元/升 加油站已大排長隊

油價即將暴漲 92號汽油上漲0.55元/升 加油站已大排長隊

太平洋汽車
2026-03-09 21:13:10
固態(tài)變壓器爆發(fā)在即,訂單暴漲700%

固態(tài)變壓器爆發(fā)在即,訂單暴漲700%

環(huán)球零碳
2026-03-09 21:36:36
3月9日俄烏:烏克蘭的反向援助

3月9日俄烏:烏克蘭的反向援助

山河路口
2026-03-09 17:47:05
萬億煙草市場正在漏水?你常買的煙可能已經(jīng)不值錢了!

萬億煙草市場正在漏水?你常買的煙可能已經(jīng)不值錢了!

老特有話說
2026-03-07 16:09:02
52歲羅海瓊回應(yīng)“最美蘇妲己變大媽”:我接納我自己

52歲羅海瓊回應(yīng)“最美蘇妲己變大媽”:我接納我自己

半島晨報
2026-03-09 21:00:03
曝詹姆斯下賽季無意效力勇士!今夏選擇只有三個:湖人騎士或退役

曝詹姆斯下賽季無意效力勇士!今夏選擇只有三個:湖人騎士或退役

羅說NBA
2026-03-10 08:05:46
馬筱梅回應(yīng)家庭矛盾,承諾讓汪小菲跟張?zhí)m道歉,當(dāng)時不阻止是對的

馬筱梅回應(yīng)家庭矛盾,承諾讓汪小菲跟張?zhí)m道歉,當(dāng)時不阻止是對的

白面書誏
2026-03-09 13:29:49
央視力推也沒用?《我的山與?!吩鈵涸u,這“戲混子”有很大責(zé)任

央視力推也沒用?《我的山與?!吩鈵涸u,這“戲混子”有很大責(zé)任

往史過眼云煙
2026-03-08 16:42:45
2026-03-10 09:07:00
CSDN incentive-icons
CSDN
成就一億技術(shù)人
26365文章數(shù) 242241關(guān)注度
往期回顧 全部

科技要聞

OpenClaw更新,"養(yǎng)蝦"再也不會犯健忘癥了

頭條要聞

牛彈琴:特朗普放風(fēng)要停戰(zhàn) 伊朗稱正為美國準備"驚喜"

頭條要聞

牛彈琴:特朗普放風(fēng)要停戰(zhàn) 伊朗稱正為美國準備"驚喜"

體育要聞

36連勝終結(jié)!大魔王也是可以戰(zhàn)勝的

娛樂要聞

薛之謙老婆懷二胎,現(xiàn)身產(chǎn)檢心情愉快

財經(jīng)要聞

"養(yǎng)蝦"生意經(jīng):有人賣鏟,有人做保鏢

汽車要聞

對標(biāo)奔馳小號G級 路虎小型衛(wèi)士最新消息曝光

態(tài)度原創(chuàng)

親子
藝術(shù)
健康
公開課
軍事航空

親子要聞

真是服你倆了~

藝術(shù)要聞

30000畝杏花開了,才知道原來新疆的春天這么美!

轉(zhuǎn)頭就暈的耳石癥,能開車上班嗎?

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

伊媒發(fā)布小學(xué)被炸瞬間 戰(zhàn)斧導(dǎo)彈從天而降

無障礙瀏覽 進入關(guān)懷版