tag 重構

標籤
貢獻17
84
05:25 PM · Nov 04 ,2025

@重構 / 博客 RSS 訂閱

skyarthur - 面向單元測試的代碼重構

前言 重構代碼時,我們常常糾結於這樣的問題: 需要進一步抽象嗎?會不會導致過度設計? 如果需要進一步抽象的話,如何進行抽象呢?有什麼通用的步驟或者法則嗎? 單元測試是我們常用的驗證代碼正確性的工具,但是如果只用來驗證正確性的話,那就是真是 “大炮打蚊子”--大材小用,它還可以幫助我們評判代碼的抽象程度與設計水平。本文還會提出一個以“可測試性”為目標,不斷迭代重構代碼的思路,利用這個思路,面

單測 , 重構 , 後端

收藏 評論

歐雷 - 前端鏟💩日記 #3:重構「個人主頁」

鐵汁們聽好了哈——從本篇筆記開始,將進入實際的鏟💩演練啦! 這首先要被剷除的💩,是分佈在我接手官網項目後最先接觸的用户個人主頁裏。 在這系統中,用户分個人與項目方兩種,它們的個人主頁雖看起來一樣,但視覺細節和數據結構等還是有些差異的,佈局結構大致如圖所示: 個人主頁原先代碼中,其他部分還算有點封裝意識,但最重要的課程、活動等列表部分的代碼看起來就是初級水平,將它們全部糅合在一個 React

react , 前端架構 , 前端優化 , next.js , 重構

收藏 評論

歐雷 - 前端鏟💩日記 #2:易被忽略的「domain」

若看了上篇筆記,眼尖的鐵汁們應該發現,最終的重構成果並未出現目錄結構調整方案提到的 domain 文件夾。 這是因為領域建模是個相對較難且需要長期去做的事情,所以我們不急,慢慢來,要用心地思考與處理——從本篇筆記開始就會涉及到相關內容啦! 在進行實際的鏟💩演練之前,這篇筆記先來講解下 domain 文件夾的重要性,請各位鐵汁搬來小板凳坐坐好,用小拇指清理下👂🏼聽我説—— 在我所設計的「模塊化

react , 前端架構 , 前端優化 , next.js , 重構

收藏 評論

歐雷 - 前端鏟💩日記 #1:項目目錄結構調整

最近哥們兒我接手了一個官網的前端項目,雖説是官網,但它是個 Web 應用而非營銷網站,所以還是有一定複雜度在的。 這幾天是邊往死裏摁🐞邊熟悉代碼邏輯,沒想到這是個燙手🍠,前人留了一堆坑給我——令我覺得他撐死了也就中級水平,不能再高了……🙁☹️🙂‍↔️ 是不以為我看到這💩山會苦惱不堪,心中如那呼倫貝爾大草原般萬🐎奔騰? 不!你想錯了!!我興奮得很呢!!! 別誤會,別誤會!我不是那個什麼「

react , 前端架構 , 前端優化 , next.js , 重構

收藏 評論

Datenlord - 如何優雅地組織Rust項目中的異步代碼?

概要 很多使用過Async Rust的人都可能有過被其要求的約束所困擾的經歷,例如,spawned task有'static的要求,MutexGuard不能跨越.await,等等。克服這些約束需要仔細地設計代碼結構,很可能會導致晦澀和嵌套的代碼,這對開發人員和審查人員都是一種挑戰。在這篇文章中,我將首先列出我在編寫async Rust代碼時的一些痛點。然後,我將指出我們真正需要異步代碼的場景,並討

code , rust , 異步 , 重構

收藏 評論

百度Geek説 - AI Agent重塑微服務治理

導讀 隨着技術架構的發展,微服務系統的複雜性不斷增加,對運維提出了更高的要求。為了應對這一挑戰,一種AI驅動的微服務治理方案被提出。該方案採用多智能體架構,將運維專家經驗整合,並通過自然語言交互和智能推理,簡化了灰度發佈和配置限流熔斷等操作。利用大型語言模型(LLM)的推理能力,方案能夠進行深入的故障診斷和處理,實現運維經驗的自動化。每個智能體都能承擔特定角色,高效完成複雜任務,並通過持續的數據訓

服務治理 , 運維 , 人工智能 , 重構

收藏 評論

得物技術 - 社區點贊業務緩存設計優化探索

背景 內容點贊業務在得物社區中是一個非常高頻的業務場景,功能本身複雜度不高,但是業務場景多、QPS高、而且由於社區的用户體量,整體點讚的數據量非常大。其中最核心、對響應性能要求最高的主要是“用户是否點贊內容”和“內容點贊數”場景。 在得物社區中凡是有內容消費的場景,都會有上面兩個點贊場景的處理,所以整體點贊業務的QPS在社區都是非常高的。當我們在刷各種Feed流時,每一次下滑,都需要對數十篇內容進

緩存 , 重構 , 後端 , 方案

收藏 評論

徐石頭 - 代碼重構實戰

背景 用户頭像上傳功能中,服務端上傳流程如下: base64解碼成字符串 圖片寫入服務器本地臨時目錄 上傳到阿里雲OSS/七牛雲存儲 圖片審核 代碼如下 type Parms struct { Head string //客户端發送base64字符串 } func Upload(p Params){ if p.Head == ""{ return err

實戰 , 圖片上傳 , 重構 , go

收藏 評論

百度Geek説 - 百度視覺搜索架構演進實踐

本文深入探討百度視覺搜索在快速發展的業務及技術背景下,如何通過持續的技術創新和架構升級強化自身的競爭力和適應性,支撐業務健康高效迭代。本文介紹了我們如何通過技術棧升級、架構能力提升以及穩定性建設,來實現全鏈路架構的演進。藉助Golang、百度自研GDP開發框架和ExGraph圖化引擎,我們對視覺搜索展現架構進行了全面重構,並重新定義了視覺搜索全系統通路上的模塊職責和分層邏輯,開展了一系列系統收斂內

架構 , 百度 , 重構

收藏 評論

一丁目 - javascript變量命名規範

程序員三大難題:變量命名、緩存失效、循環邊界。 駝峯命名 首先,和其他語言一樣,大部分變量建議採用駝峯命名法。 var articleTitle = 'javascript變量命名規範' 而對於常量,使用大寫字母和下劃線來組合命名。 const COUNTRY_NAME = 'China' 根據變量類型來命名 普通變量/屬性 儘量用簡單易懂的 名詞 結尾,前面可以加 形容詞/名詞 來修飾。 va

命名規範 , 代碼規範 , 重構 , 前端 , Javascript

收藏 評論

京東雲開發者 - 遺留代碼處理技巧與案例演示

1 什麼是遺留代碼 本質是一種技術債務,產生原因一方面是業務原因:如業務本身場景繁多、流程複雜等;另一方面是技術原因:如代碼不規範、設計不合理、祖傳代碼文檔註釋缺失等。它會影響我們的程序很多方面:如可讀性、可修改性、可複用性、可維護性、可測試性等。 2 遺留代碼處理過程拆解 劃分為梳理-重構/重寫-替換/驗證三個階段 2.1 梳理 遺留代碼的處理是一種逆向工程,從已有的代碼+數據模型+文檔倒推出

耦合性 , 複用 , 代碼優化 , 代碼規範 , 重構

收藏 評論

咕咕雞 - 減少80%存儲-風控名單服務重構剖析

引言 小小的 Redis 大大的不簡單,本文將結合風控名單服務在使用 Redis 存儲數據時的數據結構設計及優化,並詳細分析 redis 底層實現對數據結構選型的重要性。 背景 先來交代下使用場景,在風控場景下,名單服務每時每刻都需要承受海量數據查詢。 名單檢索內容涉及維度非常廣:用户業務標識(UID)、手機號、身份證號、設備號、IMEI(International Mobile Equipmen

風險控制 , redis , 重構

收藏 評論

Zilliz - (文末福利)如果代碼莫名其妙跑起來了,就不要去動它了……嗎?

🤫 關注 Zilliz 微信公眾號並回復「重構」🤫 獲取《重構:改善既有代碼的設計》超詳細思維導圖 雖然代碼還是可以跑,但是各種規則越來越複雜、核心繼承體系越來越凌亂、系統的維護工作越來越重…… 1999 年,Martin Fowler 作為技術顧問造訪了一個項目,他建議項目經理好好整理這些亂糟糟的代碼。然而,項目經理表示:🙏算了吧🙏 六個月後,這個項目宣告失敗,因為代碼太複雜難

敏捷開發 , 敏捷 , 書籍 , 重構

收藏 評論

騷銘科技 - [代碼拯救行動] 10月份 代碼檢視案例+重構

代碼檢視問題總結 案例一 首先來看一段代碼 //根據Y01, Y03 匹配 公募基金一年、三年的數據 for (ProfitRelative profitRelative : publicFund.getProfitRelativeList()) { if ("Y01".equals(profitRelative.getDuration())

JAVA , 代碼質量 , 重構

收藏 評論

站在巨人的肩上 - 關於大方法拆成小方法

以前工作時,一位前輩習慣拆方法,把一個很長的方法拆成多個小方法,當時費解,直到此時此刻 當時覺得,沒必要啊,我看代碼熟悉業務的時候,還得來回返回,一整個大方法,看起來多方便 剛才,我在寫一個複雜的方法,因為代碼複用,拆出了很多小方法, 這算是需要拆方法的原因之一 關鍵是,當我在改某個方法的時候, 突然忘了這個方法是幹嘛的了,就往上翻註釋,而方法太大,翻到了很多if/else,而我不得不把

方法 , 架構 , 重構

收藏 評論

百度Geek説 - 用增結算數倉化改造:在/離線調度系統的構建與應用

導讀 移動運營推廣平台(OPS)承載着百度內部移動應用/移動搜索業務的用户增長預算的全流程結算線上化管控功能,為了解決用增業務發展規模擴大、原有技術架構老舊、無離線數倉系統等一系列的問題,針對全域結算數據啓動了整體的架構改造。為了解決業務中存在的問題,本文深入探討並提出了一類在線、離線結合的任務調度解決方案,完成了結算業務架構更新換代,更好地服務於業務發展。 01 背景簡述 1.1業務/技術背景

大數據 , 架構 , 百度 , 重構

收藏 評論

得物技術 - 得物複雜 C 端項目的重構實踐

1. 背景 1.1 重構 Q:什麼是重構? 重構是在不改變軟件可觀察行為的前提下,改善其內部結構。--《重構 - 改善既有代碼的設計》 Q:為什麼要重構? 重構可以提高理解性和降低修改成本 。--《重構 - 改善既有代碼的設計》 Q:什麼時候重構? (1)何時不應該重構? 沒有價值,沒有意義或者投入產出比很低時。團隊資源是有限的,有限的資源應該儘可能投入到有意義的事情上去。從團隊的角度考慮投

項目 , 大前端 , 實踐 , 重構 , 前端

收藏 評論

得物技術 - 社區收藏緩存設計重構實戰

一、背景 社區收藏業務是一個典型的讀多寫少的場景,社區各種核心Feeds流都需要依賴用户是否收藏的數據判斷,早期緩存設計時由於流量不是很大,未體現出明顯的問題,近期通過監控平台等相關手段發現了相關的一些問題,因此我們針對這些問題對緩存做了重構設計,以保障收藏業務的性能和穩定性。 二、問題分析定位 2.1 接口RT偏大 通過監控平台查看「判斷是否收藏接口」的RT在最高在8ms左右,該接口的主要作用是

性能優化 , 緩存 , 重構

收藏 評論

百度Geek説 - 通過 Python 腳本支持 OC 代碼重構實踐(一):模塊調用關係分析

作者 | 劉俊啓 導讀 在軟件開發中,經常會遇到一些代碼問題,例如邏輯結構複雜、依賴關係混亂、代碼冗餘、不易讀懂的命名等。這些問題可能導致代碼的可維護性下降,增加維護成本,同時也會影響到開發效率。這時通常通過重構的方式對已有代碼結構進行改進和優化。在重構的工作中,大部分的工作是人工的方式完成,是一個耗時且容易出錯的過程。對於研發人員來講,在不改變軟件的功能和行為的前提下,保證質量和效率完成對

自動化 , 重構 , Python

收藏 評論

LinkinStar - 重構-改善既有代碼的設計

最近正在重構項目,並且正在看《重構》,在實踐的同時總結了一些點,或許能給你一些重構或者寫代碼上的一些思考。 我一直認為代碼結構是一個因人而異的事情,很多時候我們其實判斷一個代碼的好壞往往是通過主觀判斷,比如同樣是實現一個功能,100 行的代碼並非一定比 50 行的差;我們沒有一個合理的標杆去評判。 但是,最近我的想法變了,發現有些代碼一定是毒藥,早點發現他們,往往會對於我們以後需求的修改有莫大的

重構

收藏 評論

cicadasmile - 聊一聊系統重構

打破常規,重立新規; 01 開始想聊這個話題的時候,我是打算放棄的;因為這個話題涉及範圍之廣,內容之多,讓我犯怵; 近幾年,待過兩家公司;一家經歷過重構,另一家也打算重構...... 其實要下定決心,推翻重來,是一個很有勇氣的決定; 歸根結底,不到萬不得已,誰想這麼玩,誰願意花費大精力去做這些髒活、累活; 所以究其原因,也只能説是一種綜合因素吧,就像古話説的,天時、地利、人和; 至於為什麼這是個很

系統 , 重構 , 後端

收藏 評論

程序員伍六七 - Reactor 第九篇 WebFlux重構個人中心,效果顯著

1 重構背景 原有的開發人員早已離職,代碼細節沒人知道,經過了一段時間的維護,發現有以下問題: 個人中心繫統的特徵就是組裝各個業務的接口,輸出個人中心業務需要的數據,整個系統調用了幾十個第三方業務線的接口,如果編排不合理,可能會導致響應時間急劇上漲,尤其是彈窗業務,新的彈窗會不斷接入,整個接口可能會不可用。 2 整體架構 service:是最小的業務編排單元,request方法對infrast

響應式編程 , JAVA , 併發編程 , 重構 , 後端

收藏 評論

Datenlord - Xline社區會議Call Up:揭秘Xline 0.7版本更新

為了更全面地向大家介紹Xline的進展,同時促進Xline社區的發展,我們將於2024年7月31日北京時間11:00 p.m.召開Xline社區會議。 歡迎您屆時登陸zoom觀看直播: 會議號: 975-8012-1637 會議鏈接: https://zoom-lfx.platform.linuxfoundation.org/meeting/97580121637?password=8

rust , 測試 , 重構

收藏 評論

京東雲開發者 - 同城售後系統退款業務重構心得 | 京東雲技術團隊

一、重構背景 1.1、退款 到家、小時購、天選退款有2套結構,代碼邏輯混亂; 其中小時購、天選部分售後單是和平生pop交互退款,部分是和售後中台交互退款;並且兼容3套邏輯; 痛點:代碼繁重,缺乏合理性的設計,後續迭代開發以及維護成本高,同時增加了系統的風險和不穩定性 1.2、金額計算 到家、小時購兩套獨立的邏輯結構計算,在此基礎上針對退差和非退差又實現了2套邏輯; 針對商品件維度、商品行維度、售後

架構設計 , 重構和設計模式 , 架構 , 重構 , 後端

收藏 評論