精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊一聊:一個大型軟件系統(tǒng)該如何重構

開發(fā) 架構
在互聯(lián)網行業(yè),每當新員工入職一家新公司時,都要學習一套新的軟件系統(tǒng)。如果該公司的代碼非常規(guī)范,架構設計非常合理,那么新員工上手的速度會非常快。

1、 為什么需要重構

在互聯(lián)網行業(yè),每當新員工入職一家新公司時,都要學習一套新的軟件系統(tǒng)。如果該公司的代碼非常規(guī)范,架構設計非常合理,那么新員工上手的速度會非??臁.斎?,你這個螺絲釘的角色也就非常明顯了。另一方面,如果面對『屎山』一樣的祖?zhèn)鞔a,就會有很多抱怨,學習起來也很痛苦。

從質量上,我把軟件大致分為以下幾種類型:

  • 第一種:它們對穩(wěn)定性、規(guī)范性要求非常高,所以代碼中異常判斷、校驗非常多,代碼看上去就很冗余,最典型代表是華為的電信級產品。
  • 第二種:寫得就很隨意,風格各式各樣,代表的例子是開源項目。
  • 第三種:也是最糟糕的,員工在 PM(產品經理)的高壓下日夜加班趕出來的,毫無設計風格,能跑就行,追求最快速度地實現(xiàn)。

重構應該也是互聯(lián)網公司開發(fā)工作的一部分吧。當一個軟件系統(tǒng)需要重構時,必然是因為以下某種原因:比如二次開發(fā)難度越來越大、新員工上手越來越困難,每個模塊只有特定的人懂;面對日益增長的功能需求,現(xiàn)有架構已經滿足不了;模塊耦合非常嚴重,導致不同的開發(fā)團隊之間互相依賴,嚴重阻礙了開發(fā)進度。

1.1 二次開發(fā)的難度越來越大、新員工上手成本越來越高

模塊之間耦合嚴重,類間調用關系形成雙向依賴。大量的 if/else 分支、運行流程分支太多,圈復雜度爆表,根本理不清。當我們想要增加一個新功能,即使這個功能很小很小,牽扯的鏈條也非常長,涉及需要改動的周邊函數、文件數量巨多。

1.2 腐朽的軟件架構無法滿足日益增長的功能需求

軟件系統(tǒng)從最初的 demo 開始,不斷完善,一點點添加新功能,以適應不同的應用場景。比如滴滴這款軟件,最初只要把司機端和乘客接進來就行,加上調度系統(tǒng)負責派單,用戶規(guī)模也比較小;后來,用戶規(guī)模陡增,需要擴展服務器數量,又牽扯到負載均衡、消息中間件、高并發(fā)等需求  ;再后來,添加各種服務類型,比如順風車、專車、豪華車等等,然后又是各種紅包、優(yōu)惠券等。

1.3 模塊耦合嚴重,無法上云

微服務的前提條件就是模塊間能解耦,這不僅是上云的需求,也能提高研發(fā)團隊整體的開發(fā)效率,更重要的是為了實現(xiàn)服務編排,可以給任意子的服務提供靈活的資源,從而最大化集群的資源利用率,也就是說能更好地做到彈性擴縮容和容錯。

1.4 新功能一起考慮進去

傳統(tǒng)概念中對代碼重構的理解是『不引入任何新功能』。我的看法是,代碼重構和新功能開發(fā)結合起來,這樣更有利于最大化重構效果。

2、 重構設計的指導原則

重構也是軟件架構設計的一種,這里我稱之為『重構設計』。

首先,你要清楚重構的目標是什么。比如側重滿足二次開發(fā),或者側重模塊解耦,或者兼容各種硬件平臺、編程語言等等。

其次,你要對基本的軟件架構和軟件設計風格有清晰的了解,以下是一些必備技能:

2.1、unix 編程藝術

  • 模塊原則:使用簡潔的接口拼合簡單的部件
  • 清晰原則:清晰勝于技巧
  • 組合原則:設計時考慮拼接組合
  • 分離原則:策略同機制分離,接口同引擎分離
  • 簡潔原則:設計要簡潔,復雜度能低則低
  • 吝嗇原則:除非卻無他法,不要編寫龐大的程序
  • 透明性原則:設計要可見,以便審查和調試
  • 健壯原則:健壯源于透明與簡潔
  • 表示原則:把知識疊入數據以求邏輯質樸而健壯
  • 通俗原則:接口設計避免標新立異
  • 緘默原則:如果一個程序沒什么好說的,就沉默
  • 補救原則:出現(xiàn)異常時,馬上退出并給出足夠多的錯誤信息
  • 經濟原則:寧花機器一分,不花程序員一秒
  • 生成原則:避免手工hack,盡量編寫程序去生成程序
  • 優(yōu)化原則:雕琢前要先有圓形,跑之前先學會走
  • 多樣性原則:絕不相信所謂”不二法門“的斷言
  • 擴展原則:設計著眼未來,未來總比預想來得快

2.2、 設計模式 + SOLID

23 種設計模式,你不一定要完全了解代碼怎么寫,但一定要知道每一種設計模式背后的設計思想是什么。有一段時間,我試圖在我的代碼應用各種設計模式,可最終代碼看起來特別冗余而且不是那么必要。從個人經驗上來講,平時業(yè)務代碼中用設計模式的場合非常少,最常用的無非是工廠、適配器、責任鏈等,而且效果并沒那么大,設計模式真正適合的場合是更高層級的,比如模塊間設計等等。

單一職責、開閉原則、里氏替換、迪米特法則、接口隔離、依賴倒置。

2.3、領域驅動設計(DDD)

有了解過一些,沒有親身實踐過。它大體上就是模塊解耦和分層的思想:API(對外訪問層)、Domain(領域層)、Repository(數據源訪問代理層)及基礎設施層(DB、Redis、HTTP、RPC 等)

2.4、逐行代碼的重構方法

參考馬丁.福勒那本經典的《重構:改善代碼的設計》,比如過長的函數、過長的參數、數據泥團怎么處理等等。

這里,也說下個人的小建議:比如縱向的調用關系變?yōu)闄M向的,減少函數調用棧深度;不要過度封裝。相信用戶能找到底層類的實現(xiàn)接口;邏輯上相關的代碼物理上盡可能放在一塊;對于某個小的具體功能,涉及的鏈條越短越好;面向接口編程;訪問 A 表數據的 class 中不能存在訪問 B 表數據的 function;模塊對外暴露的接口部分,數據類型的選擇上盡量做到寬進嚴出(接口要考慮通用性);寫操作接口,接收參數盡可能少;讀操作接口,返回參數盡可能多;減少不必要的類和數據結構等等。

2.5、微服務

2.6、云原生

毫無疑問,云是未來數字世界的基礎設施。

2.7、插件思想

比如約定/注入插件、事件插件、插槽插件等等。

好了,這里不再列舉了,因為根據哈弗大學心理學博士米勒的研究,對于每一類產品,用戶最多只能記住七類品牌,這里我也就列七個重構原則~

3、 如何撰寫重構設計文檔

以面向對象語言為例,這里我把它分為了幾個步驟:

  • 舊系統(tǒng)的類間調用關系圖 vs 新系統(tǒng)的類間調用關系圖
  • 舊系統(tǒng)的整體架構圖 vs 新系統(tǒng)的整體架構圖
  • 舊系統(tǒng)的運行流程圖 vs 新系統(tǒng)的運行流程圖
  • 分模塊逐一拆解:先畫出重構前的樣子,再畫出重構后的樣子
  • 新增功能有哪些,怎么在重構后的系統(tǒng)里添加
  • 考慮對舊系統(tǒng)的影響:兼容性問題
  • 考慮實施可行性: 重構成本和收益之間如何權衡

4、重構的具體執(zhí)行步驟

總體上有兩種方式:

  • 新建分支(不推薦)
  • 新建目錄(推薦),這樣能保證原來舊的那套代碼能用。這里又有兩種方式:
  • 做減法(先跑通舊的代碼,然后一點點刪除冗余代碼,或重構具體子模塊)--推薦,因為如果實在沒有開發(fā)時間了,某些未完成的模塊還可以沿用以前的老代碼。
  • 做加法(從每個子功能開始重構,相當于重新構建這套軟件系統(tǒng))-- 不推薦,因為時間成本不可控

5、總結

用設計原則和架構理論武裝自己,閱讀優(yōu)秀的源碼驗證理論,深入理解具體業(yè)務,方能設計出一套優(yōu)雅的軟件系統(tǒng)。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-12-29 07:18:20

重構工具資源

2020-09-15 12:45:48

系統(tǒng)LinuxUnix

2023-07-25 15:06:39

2018-05-16 08:58:04

用戶畫像存儲

2020-12-29 05:33:40

TomcatSpringBoot代碼

2023-07-03 07:27:41

進程線程Win32

2018-06-07 13:17:12

契約測試單元測試API測試

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2020-01-17 09:07:14

分布式系統(tǒng)網絡

2023-03-05 18:40:39

iptables防火墻軟件

2018-11-30 12:48:36

SDS故障硬件

2022-01-11 15:44:15

JavaScript圖表庫數據

2022-11-02 08:51:01

2023-12-07 07:26:04

2020-05-12 22:24:44

JVM系統(tǒng)加載器

2024-10-16 15:11:58

消息隊列系統(tǒng)設計

2020-03-31 10:08:15

零信任安全軟件

2021-01-01 09:01:05

前端組件化設計
點贊
收藏

51CTO技術棧公眾號

中文字幕最新精品| 欧美丝袜自拍制服另类| 免费中文日韩| 又骚又黄的视频| 888久久久| 亚洲精品一线二线三线无人区| 欧美 日韩 激情| 午夜视频在线观看网站| 成人午夜电影网站| 国产精品久久久久久一区二区| 欧美xxxx黑人xyx性爽| 久久av网址| 欧美大胆人体bbbb| 亚洲一二三区av| av免费不卡国产观看| 国产精品不卡一区二区三区| 国产在线精品一区二区中文 | 欧洲一级黄色片| 久久三级毛片| 一本色道综合亚洲| 国产中文字幕乱人伦在线观看| jizz日韩| 久久午夜国产精品| 成人黄色短视频在线观看| 精品成人av一区二区在线播放| 国产精品videosex性欧美| 亚洲老头同性xxxxx| 国产成人精品综合久久久久99| 亚洲电影有码| 日韩欧美一区二区三区| 农民人伦一区二区三区| 黄a在线观看| 国产免费观看久久| 欧美主播一区二区三区美女 久久精品人 | 亚洲成人网在线观看| mm131亚洲精品| 日韩影片中文字幕| 精品动漫一区二区| 黄页网站在线观看视频| 中中文字幕av在线| 亚洲三级电影网站| 一级全黄肉体裸体全过程| 国产精品一区二区婷婷| 久久久久久久一区| 久久大片网站| 色视频免费在线观看| 成人av电影免费观看| 国产乱人伦精品一区二区| 国产麻豆免费视频| 国产综合色精品一区二区三区| 国产精品黄色av| 天天干天天插天天射| 日韩福利视频导航| 国产精品视频免费观看www| 久草热在线观看| 日本亚洲视频在线| 国产精品一区二区3区| 一级黄色片在线看| 久久成人免费日本黄色| 91老司机在线| www.av日韩| 高清不卡在线观看| 久久久久久草| 狠狠色伊人亚洲综合网站l| 久久精品欧美一区二区三区不卡| 奇米视频888战线精品播放| 搞黄视频免费在线观看| 中文字幕一区二区视频| 黄色特一级视频| 波多野结衣久久| 欧美日韩国产丝袜美女| 久久久国产欧美| 欧美在线一级| 精品免费视频一区二区| 丰满大乳奶做爰ⅹxx视频| 精品美女视频| 久久精品国产一区二区三区| 欧美日韩成人免费观看| 亚洲韩日在线| 国产精品久久久精品| 国产一区二区三区四区视频| 国产成人免费视频网站| 精品久久久久久中文字幕动漫| 毛片网站在线| 亚洲婷婷在线视频| 国产精品又粗又长| 国产韩日精品| 日韩欧美你懂的| 中文字字幕码一二三区| 欧美电影《轻佻寡妇》| 九色精品美女在线| 91视频在线视频| 国产一二三精品| 久久精品国产精品青草色艺| 97人人在线| 午夜精品一区二区三区三上悠亚| 日韩无套无码精品| 一区二区三区高清在线观看| 亚洲性av网站| 国产一级视频在线| 蜜臀av国产精品久久久久| 成人免费视频观看视频| 国产美女视频一区二区三区| 亚洲综合激情小说| 国产一区二区在线免费播放| 精品国产影院| 操91在线视频| 中文字幕+乱码+中文| 成人av免费在线播放| 中文字幕欧美日韩一区二区| jizz内谢中国亚洲jizz| 日韩欧美激情四射| 精品一区二区6| 亚洲深夜影院| av电影成人| 夜级特黄日本大片_在线| 天天操天天干天天综合网| 九九热精品国产| 国产一区二区三区电影在线观看| 久久久久久久久久久网站| 亚洲视屏在线观看| www国产成人| 粉嫩av一区二区三区天美传媒| 78精品国产综合久久香蕉| 日韩黄在线观看| 国产亚洲精品久久久久久打不开| 麻豆国产精品一区二区三区| 日韩影片在线播放| 亚洲风情在线资源| 亚洲国产成人久久综合一区| 2021亚洲天堂| 精品亚洲免费视频| 亚洲日本无吗高清不卡| 亚洲精品555| 影音先锋欧美精品| 欧美一级淫片免费视频黄| www.日韩av| 欧美视频免费看欧美视频| 成人18夜夜网深夜福利网| 美女扒开尿口让男人操亚洲视频网站| 一本色道久久综合熟妇| 中文字幕乱码久久午夜不卡 | 国产一区二区在线观看视频| 色综合久久久久久久久五月| 桃子视频成人app| 国产亚洲视频在线| 日韩黄色一级视频| 国产午夜精品理论片a级大结局| 成人网站免费观看入口| 成人偷拍自拍| 性欧美xxxx视频在线观看| 人人妻人人玩人人澡人人爽| 亚洲成av人综合在线观看| 奇米777第四色| 一本色道久久综合亚洲精品不| 精品欧美一区二区三区久久久| 国产伦久视频在线观看| 日韩成人在线免费观看| 九九九在线观看| 久久免费的精品国产v∧| 日韩毛片在线免费看| 精品99久久| 国产日韩在线看| 国产精品实拍| 亚洲国产精品小视频| www.欧美色| 亚洲三级理论片| 在线观看免费视频黄| 亚洲一区日韩| 婷婷五月色综合| 国产日韩中文在线中文字幕| 欧美精品成人在线| 黄色在线视频观看网站| 欧美精品三级日韩久久| 日韩在线观看视频一区二区| av午夜精品一区二区三区| 国产三级三级三级看三级| 68国产成人综合久久精品| 国产精选一区二区| 中文字幕系列一区| 欧美成人合集magnet| 婷婷综合激情网| 欧美日韩午夜在线视频| 欧美日韩大片在线观看| 久久人人爽爽爽人久久久| 日韩中文字幕a| 亚洲精品激情| 曰韩不卡视频| 清纯唯美亚洲经典中文字幕| 国产精品欧美风情| 啦啦啦中文在线观看日本| 精品在线观看国产| 国产露脸国语对白在线| 欧美日韩国产专区| 国产中文av在线| 99久久精品免费看| 五月婷婷激情久久| 99视频精品| 91嫩草国产丨精品入口麻豆| 日韩精品福利一区二区三区| 7777奇米亚洲综合久久| 蜜臀国产一区| 欧美精品videosex牲欧美| 日本在线播放| 亚洲奶大毛多的老太婆| 不卡视频免费在线观看| 欧美网站一区二区| 日韩av大片在线观看| 亚洲日本va在线观看| a级片在线观看| 99久久亚洲一区二区三区青草| 97超碰人人爽| 巨乳诱惑日韩免费av| 99热久久这里只有精品| 亚洲国产精品久久久久蝴蝶传媒| 欧美精品在线一区| 国产精品zjzjzj在线观看| 成人av番号网| 岛国精品在线| 国产精品夫妻激情| 最新日韩精品| 91精品国产沙发| 久久亚洲资源| 久久天天躁日日躁| 欧洲不卡视频| 日韩性xxxx爱| 北岛玲一区二区三区| 日韩精品中文字| 天天操天天射天天舔| 欧美成人高清电影在线| 国产乱子伦精品无码码专区| 欧美日韩综合在线免费观看| 免费看污视频的网站| 日韩欧美999| 探花视频在线观看| 欧美日韩裸体免费视频| 日韩三级视频在线播放| 夜夜嗨av一区二区三区网页| 国产精品成人免费观看| 亚洲精品国产品国语在线app| 一级片一级片一级片| 国产精品久久久久影院亚瑟 | 欧美日韩国产探花| 亚洲美女自拍偷拍| 中国成人一区| 300部国产真实乱| 中文字幕一区二区av| 日韩中文字幕亚洲精品欧美| 影视一区二区| 欧美黄色免费网址| 亚洲人成人一区二区三区| 免费看日本毛片| 免费精品视频| www.日本一区| 国产一区二区在线电影| 少妇伦子伦精品无吗| 不卡一区二区中文字幕| 亚洲最大成人网站| 中文字幕免费观看一区| 黄色录像免费观看| 亚洲综合色丁香婷婷六月图片| 日韩av片在线播放| 欧美性少妇18aaaa视频| 日本视频www色| 91精品国产入口在线| www.97av.com| 亚洲精品国产精品国产自| 免费在线性爱视频| 日韩在线视频观看正片免费网站| 91高清在线观看视频| 久久噜噜噜精品国产亚洲综合| 日韩脚交footjobhd| 国产精品自产拍在线观看中文| 国产成年精品| 精品麻豆av| 日韩精品一区二区三区免费观看| 中文字幕乱码免费| 日韩视频久久| 亚洲一级免费在线观看| 成人午夜视频在线观看| 美女爆乳18禁www久久久久久 | 亚洲一二三在线| 麻豆传媒视频在线| 97视频网站入口| 国产麻豆一区| 黄色99视频| 99久久www免费| 免费人成在线观看视频播放| 日韩精品视频网站| 亚洲无人区码一码二码三码| 久久嫩草精品久久久精品一| 国产精品白丝喷水在线观看| 精品成人av一区| 97在线公开视频| 精品亚洲一区二区三区在线播放| 午夜视频成人| 91av成人在线| 精品国产亚洲一区二区三区在线| 久久国产手机看片| 欧美激情五月| 三级在线免费看| 99视频超级精品| 国产一区二区播放| 欧洲一区在线观看| 少妇一级淫片免费看| 日韩在线观看网站| 奇米777日韩| 精品视频免费观看| 欧美日本不卡| 免费成年人高清视频| 久久新电视剧免费观看| 精品在线视频免费观看| 欧美久久久久久久久| 伦理片一区二区三区| 久久男人资源视频| 国产精品va视频| 亚洲人久久久| 日韩高清一区在线| 国产肉体xxxx裸体784大胆| 亚洲一二三级电影| 国产免费无遮挡| 中文字幕精品久久| 日韩电影av| 久久久久一区二区三区| 精久久久久久| 久久久久久无码精品人妻一区二区| 国产精品美女一区二区三区 | 欧美做爰爽爽爽爽爽爽| 欧美日韩精品欧美日韩精品一| 欧美美女色图| 青草青草久热精品视频在线观看| 国产精品jk白丝蜜臀av小说| 成人短视频在线观看免费| 国产精品影视在线观看| 中文字幕求饶的少妇| 欧美日韩一区中文字幕| jizz在线观看中文| 国产日韩欧美成人| 欧美激情黄色片| 亚洲一区二区三区观看| √…a在线天堂一区| 国产精品国产精品国产专区| 日韩在线免费视频| 亚洲一区二区av| 中文字幕一区二区三区最新| 韩国女主播成人在线| 亚洲国产美女视频| 欧美成人高清电影在线| av白虎一区| 久久久久se| 日韩中文字幕一区二区三区| 国内精品卡一卡二卡三| 欧美自拍丝袜亚洲| 日本三级视频在线播放| 亚洲一区二区日本| 欧美日韩三级| www.日本高清| 色综合一个色综合| seseavlu视频在线| 亚洲淫片在线视频| 亚洲午夜精品久久久久久app| 尤物网站在线观看| 色婷婷综合久久久| 精品国产99久久久久久| 国产成人精品一区二区三区福利| 亚洲美女色禁图| 波多野吉衣中文字幕| 欧美日韩精品一二三区| 亚洲淫性视频| 久久久久久九九| 麻豆精品在线看| 毛片a片免费观看| 亚洲精品日韩在线| 久久青草免费| 青青青青草视频| 亚洲国产精品v| 成 人 黄 色 片 在线播放| 91av福利视频| 亚洲蜜桃视频| 精品国产av色一区二区深夜久久 | 亚洲免费看av| 亚洲综合视频在线| 欧美新色视频| 成人亚洲激情网| 亚洲少妇自拍| 国产福利视频网站| 日韩精品久久久久久福利| 在线免费成人| www.com毛片| 亚洲色图另类专区| 青青免费在线视频| 3d蒂法精品啪啪一区二区免费| 免费永久网站黄欧美| 一区二区视频免费看| 亚洲网站视频福利| 98视频精品全部国产| 性生活免费在线观看| 欧美丝袜第一区| 人人超在线公开视频| 亚洲国产精品久久久久婷婷老年|