精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

超碰人人人人人人| 破处女黄色一级片| 精品裸体bbb| 国产精品理论片| 69堂成人精品视频免费| 免费一级全黄少妇性色生活片| 国产亚洲成av人片在线观黄桃| 欧美日韩一区二区三区在线免费观看 | 亚洲天堂男人| 亚洲一区二区久久| 五月六月丁香婷婷| 自拍视频在线看| 亚洲视频一二三| 美女亚洲精品| 精品人妻午夜一区二区三区四区| 午夜在线视频观看日韩17c| 日韩视频中文字幕| 制服丝袜第二页| 成年永久一区二区三区免费视频| 亚瑟在线精品视频| 一本一道久久a久久综合精品 | 一本一道久久a久久精品综合 | 色爱精品视频一区| 国产视频久久久久久| 日韩一级特黄| 色婷婷综合视频在线观看| 欧美一级爱爱视频| av在线免费观看网| k8久久久一区二区三区| 亚洲自拍高清视频网站| 久草热在线观看| 亚洲乱码久久| 欧美激情伊人电影| 国产在线免费看| 欧美最新另类人妖| 日韩精品在线影院| 在线视频 日韩| 亚洲日本一区二区三区在线| 欧美久久婷婷综合色| 苍井空浴缸大战猛男120分钟| 国内精品不卡| 国产精品久久久久7777按摩| 秋霞久久久久久一区二区| 蜜臀av免费在线观看| 国产一区在线视频| 成人网在线免费看| 亚洲综合精品国产一区二区三区| 久久久久中文| 青青精品视频播放| yjizz国产| 国产欧美一级| 91国语精品自产拍在线观看性色| 国产在线拍揄自揄拍无码视频| 天天色天天射综合网| 日韩中文av在线| 亚洲国产精品一区二区久久hs| 欧美限制电影| 欲色天天网综合久久| 国产午夜精品福利视频| 狠狠做六月爱婷婷综合aⅴ| 亚洲人成毛片在线播放| 国产女主播喷水高潮网红在线| 色天下一区二区三区| 精品网站999www| 免费看污黄网站在线观看| 亚洲婷婷伊人| 在线日韩中文字幕| 亚洲欧美综合7777色婷婷| 色一区二区三区四区| 日韩中文字幕精品| 国产va在线播放| 激情91久久| 国产91精品久| 亚洲精品91天天久久人人| 麻豆一区二区三区| 亚洲一区二区三区在线免费观看| 成人1区2区3区| 99re6这里只有精品视频在线观看| 蜜桃91精品入口| porn视频在线观看| 亚洲欧美视频在线观看| 国产无限制自拍| 二吊插入一穴一区二区| 欧美日韩日日夜夜| 香蕉在线观看视频| 国产精品欧美在线观看| 久久精品成人动漫| 久久99久久98精品免观看软件| 亚洲欧洲日本mm| 国产精品成av人在线视午夜片| 在线视频 中文字幕| 国产精品白丝jk黑袜喷水| 国产亚洲欧美另类一区二区三区| 国产无套粉嫩白浆在线2022年| 国产精品国产自产拍在线| 妞干网在线播放| 亚洲1234区| 日韩一级黄色片| av在线网站观看| 91超碰国产精品| 97av视频在线| 国产又粗又长视频| 91视频国产观看| 自拍偷拍99| 成人美女视频| 欧美一区二区不卡视频| 97人妻精品一区二区免费| 欧美国产日本| 国产精品久久97| 蜜桃av噜噜一区二区三区麻豆 | a在线视频播放观看免费观看| 亚洲国产一区二区精品专区| 国产精品一区二区久久精品| 日本黄视频在线观看| 国产精品国产三级国产普通话99| 欧美激情 国产精品| 四虎精品在线观看| 亚洲免费电影一区| 免费在线一级片| 麻豆国产精品视频| 欧美精品亚洲| h片在线观看视频免费免费| 7777女厕盗摄久久久| 少妇真人直播免费视频| 亚洲国产影院| 91影视免费在线观看| 国产视频三级在线观看播放| 婷婷丁香激情综合| 成年人看片网站| 国产精品99视频| 国产精品黄视频| 污视频网站在线播放| 亚洲综合一区二区精品导航| gai在线观看免费高清| 国产一卡不卡| 2018中文字幕一区二区三区| 亚洲欧美高清视频| 亚洲最大成人网4388xx| 日本高清免费在线视频| 色777狠狠狠综合伊人| 国产99久久久欧美黑人| 四虎影院在线播放| 午夜成人免费视频| 亚洲熟女一区二区| 伊人久久大香线蕉综合热线| eeuss一区二区三区| av网址在线| 91麻豆精品91久久久久同性| 小嫩苞一区二区三区| 久久精品免费看| 杨幂一区欧美专区| 色综合一区二区日本韩国亚洲 | 久久午夜精品视频| 美国毛片一区二区三区| 在线精品亚洲一区二区| 欧美成人三级| 精品国产拍在线观看| 国产又粗又长又大视频| 亚洲人成网站色在线观看| 欧美在线a视频| 欧美视频亚洲视频| 国产精品一区二区三区免费| 超碰激情在线| 亚洲精品久久久久中文字幕欢迎你| 日韩成人免费在线观看| 91亚洲精品乱码久久久久久蜜桃| 久久精品视频16| 亚洲激情77| 国产精品久久精品| 丝袜美腿美女被狂躁在线观看| 欧美日韩国产免费一区二区| 18岁成人毛片| 91视频.com| 在线免费观看视频黄| 91蜜臀精品国产自偷在线| 114国产精品久久免费观看| 免费污视频在线观看| 日韩电影免费观看中文字幕| 欧美成人精品网站| 亚洲欧美乱综合| 黄色激情在线观看| 首页国产欧美久久| 国产福利片一区二区| 丁香婷婷成人| 国产成人在线亚洲欧美| 国产激情在线| 亚洲精品suv精品一区二区| 日本黄色中文字幕| 亚洲欧美另类小说| 日本japanese极品少妇| 蜜臀av一区二区三区| 日韩精品一区二区三区四| 综合干狼人综合首页| 国产中文字幕日韩| 女海盗2成人h版中文字幕| 中文字幕一区二区精品| 亚洲AV无码乱码国产精品牛牛| 日韩欧美大尺度| 日韩欧美综合视频| 91麻豆6部合集magnet| 性生生活大片免费看视频| 亚洲三级视频| 中文字幕一区二区三区乱码| 久久97久久97精品免视看秋霞| 国产精品日韩av| av人人综合网| 久久精品国产99国产精品澳门| 亚洲区小说区图片区| 这里只有精品99re| 午夜精品一区二| 亚洲小说欧美激情另类| 亚洲图片第一页| 97精品久久久午夜一区二区三区| 免费成年人高清视频| 可以看av的网站久久看| 日韩在线观看a| 国产精品不卡| 日韩精品久久一区| 鲁大师精品99久久久| 91成人免费在线观看| 国产成人精品一区二区三区视频| 97在线视频观看| 丝袜国产在线| 久久精品亚洲精品| 成人在线播放视频| 亚洲人成欧美中文字幕| 手机看片1024国产| 日韩女优av电影在线观看| 一区二区三区黄| 欧美在线观看视频一区二区三区| 久久久久久少妇| 五月天中文字幕一区二区| 日本在线一级片| 国产精品蜜臀在线观看| 波多野结衣av在线观看| 99精品欧美一区| 午夜免费福利影院| 国产高清久久久| 91蝌蚪视频在线| 精品中文字幕一区二区小辣椒 | 99久久er| 国产精品美女www爽爽爽视频| 在线高清av| 欧洲成人午夜免费大片| 深夜福利视频一区二区| 91av在线免费观看视频| av资源在线播放| 久久久人成影片一区二区三区观看| 超碰免费公开在线| 久久手机免费视频| 伊人电影在线观看| 欧美激情久久久久久| 日本无删减在线| 久久久久亚洲精品| 丁香花高清在线观看完整版| 久久久久久国产三级电影| 不卡av免费观看| 97在线视频免费播放| 成人性生活av| 国产成人涩涩涩视频在线观看| 久久精品女人天堂av免费观看| 国产91色在线|| 国产精品伦一区二区| 成人女保姆的销魂服务| 日韩亚洲精品在线观看| 国产欧美日韩在线播放| 亚洲精品中文字幕99999| 欧美日韩精品久久久免费观看| 国内黄色精品| 一区二区三区观看| 欧美二区视频| 欧美成人高潮一二区在线看| 久久久久久自在自线| 欧美日韩精品区别| 国产成人精品网址| 日韩网站在线播放| 国产精品美日韩| 欧美国产日韩综合| 欧美日韩日本国产| 一区二区三区在线免费观看视频| 91精品午夜视频| 色欲久久久天天天综合网| 亚洲欧美日韩综合| 好吊日视频在线观看| 欧美亚洲在线观看| 日韩精品第二页| 国内不卡一区二区三区| 欧美在线观看视频一区| 日本福利视频网站| 视频在线观看91| 毛毛毛毛毛毛毛片123| 99久久99久久精品国产片果冻| 亚洲一二三精品| 亚洲午夜精品一区二区三区他趣| 国产一级淫片a视频免费观看| 91精品国产综合久久国产大片| 手机在线精品视频| 日韩在线视频观看| 日韩脚交footjobhd| 成人久久一区二区| 综合综合综合综合综合网| 欧美 国产 精品| 久久人人97超碰国产公开结果| 黄色a级三级三级三级| www日韩大片| 免费一级a毛片夜夜看 | 国产偷拍一区二区| 亚洲精品小视频| jizz性欧美| 国产精品久久久久久久美男 | 麻豆mv在线观看| 国产精品丝袜视频| 日本妇女一区| 国产乱子伦精品视频| 免费不卡在线观看| 国产成人无码一区二区在线观看| 亚洲欧美一区二区三区极速播放| www.com久久久| 亚洲天堂一级片| 久久精品夜色噜噜亚洲aⅴ| 青青草激情视频| 色成人在线视频| 日韩wuma| 国产美女裸体无遮挡免费视频| 国产偷自视频区视频一区二区| 在线精品国产欧美| 自拍偷拍 国产| 欧美三级电影一区二区三区| 久久aⅴ国产欧美74aaa| 欧美大片欧美激情性色a∨久久| 能看毛片的网站| 欧美magnet| 91视频一区二区| 成人毛片网站| 黄色片视频免费| 天天影视综合| 日韩精品在线免费| 亚洲一区二区在线视频观看| а√天堂中文在线资源8| 亚洲激情视频在线| 亚洲奶水xxxx哺乳期| 成人激情视频在线观看| 日韩大片在线| 999精品网站| 丁香婷婷综合激情五月色| 日韩黄色免费观看| 日韩一区二区精品| av毛片在线播放| 91免费看片网站| 久久久久午夜电影| 久久人人爽人人片| 亚洲免费观看高清在线观看| 99久久亚洲精品日本无码| 中文字幕自拍vr一区二区三区| 日韩三区在线| 色综合久久av| 久久精品国产一区二区| 91香蕉视频网| 91精品国产91热久久久做人人| 二区三区在线观看| 成人在线视频电影| 国产一区成人| 免费看污片的网站| 欧美日韩亚洲综合在线 | 国产成人超碰人人澡人人澡| 69av视频在线| 亚洲精品成人网| 色老太综合网| 一区二区不卡在线视频 午夜欧美不卡' | 国产裸体永久免费无遮挡| 欧美成人精品三级在线观看 | 麻豆成人免费电影| 午夜激情福利网| 亚洲国产女人aaa毛片在线| 免费看av不卡| 中文字幕中文字幕在线中一区高清| 国产精品亚洲专一区二区三区| 久久国产在线观看| 日韩国产精品视频| 成人全视频在线观看在线播放高清| 国产高清精品软男同| www.av亚洲| 伊人久久一区二区| 久久久免费精品| 精品国产一区二区三区久久久樱花 | 精品中文字幕久久久久久| 成人日韩av| 成人午夜视频在线观看免费| 国产欧美精品一区二区色综合朱莉| 国产乱人乱偷精品视频a人人澡 | 高清亚洲高清| 欧美 日韩 国产精品| 久久久亚洲高清| 999久久久久| 国产福利精品av综合导导航| 欧美激情日韩| 中文字幕有码在线播放| 精品美女被调教视频大全网站| 亚洲不卡系列| 日韩视频免费播放|