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

我們一起聊聊架構(gòu)老化與重構(gòu)

開發(fā) 前端
完成接口改造后,剩下的工作就相對簡單了。核心系統(tǒng)和每個周邊系統(tǒng)都彼此獨(dú)立,可以單獨(dú)進(jìn)行調(diào)整和優(yōu)化。如果覺得當(dāng)前的核心系統(tǒng)太糟糕,那就開始改進(jìn)。這樣輕松決策的原因在于,即使我們要重新編寫核心系統(tǒng),要做的事情也很清晰,不會影響到整體。這與那些邊界不清晰的業(yè)務(wù)系統(tǒng)不同。要改動核心系統(tǒng)的代碼?不要命了嗎??

架構(gòu)的重要性在于日常的積累與細(xì)致打磨。無論是不斷完善我們的架構(gòu)范式,還是處理架構(gòu)老化所需的經(jīng)驗(yàn)積累,都離不開日常工作的不懈努力。我們不能奢望架構(gòu)水平會在某一天突然有所飛躍。

架構(gòu)能力的提升完全依賴于日常持續(xù)的反思和精益求精的打磨。今天,我們要探討的主題是架構(gòu)老化和重構(gòu)。

架構(gòu)老化是如何產(chǎn)生的呢?在我們不斷向系統(tǒng)添加新功能的過程中,常常會遇到實(shí)現(xiàn)功能需求的方法已超出了最初設(shè)定的框架范圍,導(dǎo)致許多功能代碼脫離了框架的約束。這些散落在各處的代碼使系統(tǒng)變得支離破碎。久而久之,代碼就會老化并散發(fā)出異味。

代碼老化的跡象包括添加新功能變得越來越困難,迭代效率降低,問題不斷涌現(xiàn),解決一個問題卻會引發(fā)多個新問題。在理想情況下,如果我們堅(jiān)持以“最小化的核心系統(tǒng) + 多個相互正交的周邊系統(tǒng)”這一指導(dǎo)思想構(gòu)建應(yīng)用,那么代碼老化的情況就會大大減少。然而,這只是理想情況。

在現(xiàn)實(shí)情況下,有許多原因會導(dǎo)致架構(gòu)老化難以避免,例如:軟件工程師的技術(shù)能力不足,只注重完成功能,而不考慮項(xiàng)目的長期維護(hù)成本;公司缺乏架構(gòu)評審環(huán)節(jié),系統(tǒng)的代碼質(zhì)量得不到持續(xù)有效的關(guān)注;需求理解不夠深入,最初的架構(gòu)設(shè)計(jì)無法滿足迭代發(fā)展的需要;架構(gòu)迭代不及時,導(dǎo)致大量趕時間產(chǎn)生的補(bǔ)丁式代碼等。

那么,我們該如何應(yīng)對架構(gòu)老化呢?這個問題可以從兩個視角來思考:一是如何重構(gòu)系統(tǒng),使軟件重新煥發(fā)活力?二是在重構(gòu)系統(tǒng)之前,我們應(yīng)該如何進(jìn)行局部改進(jìn)?在增加新功能時又該如何考慮?

首先,讓我們先探討后者,因?yàn)橹貥?gòu)系統(tǒng)聽起來更像是一項(xiàng)系統(tǒng)性工程,而添加新功能和進(jìn)行局部調(diào)整則是日常工作中經(jīng)常發(fā)生的事情。

老系統(tǒng)怎么添加新功能

當(dāng)我們要添加新功能時,特別是當(dāng)我們加入項(xiàng)目組較晚且已有大量歷史代碼時,通常會將要添加的功能定位為周邊功能。在考慮周邊功能時,我們通常會著重考慮如何最小化對核心系統(tǒng)的影響,盡量減少對核心系統(tǒng)的修改。然而,這種考慮還不夠。

實(shí)際上,當(dāng)我們將視角放在周邊系統(tǒng)時,它本身應(yīng)被視為獨(dú)立的業(yè)務(wù)系統(tǒng)。這樣一來,我們自然會提出新的要求:如何讓新功能的代碼與既有系統(tǒng)解耦,盡量減少依賴關(guān)系。這里的“不依賴”有其含義。在這里,不依賴核心系統(tǒng)的意思是業(yè)務(wù)邏輯不應(yīng)該依賴于核心系統(tǒng)。新功能的大部分代碼應(yīng)該與既有業(yè)務(wù)系統(tǒng)相互獨(dú)立,只有少量橋接代碼與核心系統(tǒng)耦合。

對于任何被正交分解的周邊系統(tǒng) B 與核心系統(tǒng) A,理想情況下我們最終應(yīng)該得到三個模塊:A、B(與 A 無關(guān)的部分)、A 與 B 橋接代碼(與 A 相關(guān)的部分)。盡管 A 與 B 橋接代碼通常也會被放到 B 模塊中,但它應(yīng)盡可能小且盡可能獨(dú)立于與核心系統(tǒng)無關(guān)的代碼。理解這一點(diǎn)至關(guān)重要。只有這樣,我們才能保護(hù)我們的投資,最大限度地保留今天開發(fā)新功能的投入產(chǎn)出,以及在未來進(jìn)行重構(gòu)時將重構(gòu)成本最小化。

另一個重要的“不依賴”話題是是否依賴公司內(nèi)部的基礎(chǔ)庫。對于這一點(diǎn),需要進(jìn)行辯證看待,不能簡單地回答是或否。完全不依賴意味著放棄生產(chǎn)力。在這里,基本的判斷標(biāo)準(zhǔn)是,成熟度越高的基礎(chǔ)庫越值得依賴。成熟度的評估依賴于個人經(jīng)驗(yàn)。首先應(yīng)該評估的是模塊規(guī)格的成熟度,因?yàn)閷?shí)現(xiàn)上的問題可以通過時間來解決。模塊規(guī)格是否符合預(yù)期,以及經(jīng)過了多少用戶使用的打磨,這些是評估成熟度的依據(jù)。

架構(gòu)的局部優(yōu)化

有兩種主要的方法來應(yīng)對架構(gòu)老化:重寫(局部重構(gòu))和依賴優(yōu)化。

  1. 重寫(局部重構(gòu)):這種方法相當(dāng)于徹底移除與要添加功能相關(guān)的代碼,然后重新編寫一份新的代碼。這與開發(fā)新功能并沒有太大區(qū)別,只是在移除的代碼中可能會有一些函數(shù)設(shè)計(jì)是合理的,可以直接引用或稍作修改以使其更符合規(guī)范。然而,我們不應(yīng)該過于熱衷于進(jìn)行局部重構(gòu)。局部重構(gòu)應(yīng)該發(fā)生在你對這部分代碼的業(yè)務(wù)比較了解的情況下,比如你已經(jīng)維護(hù)了一段時間。此外,局部重構(gòu)必須確保清理干凈舊代碼,不要留下不必要的代碼。剩下的工作可以按照我之前提到的實(shí)現(xiàn)新功能的方法來執(zhí)行。
  2. 依賴優(yōu)化:這種方法關(guān)注的重點(diǎn)不是單個功能本身的實(shí)現(xiàn),而是該功能與系統(tǒng)之間的關(guān)系。依賴優(yōu)化實(shí)際上是對代碼進(jìn)行整體搬遷。搬遷代碼的方法類似于刪除代碼,我們需要找到與該功能相關(guān)的所有代碼。但是,我們不是刪除這些代碼,而是將它們集中到一起。我們將對系統(tǒng)的每處修改都轉(zhuǎn)換為一個函數(shù),例如命名為 doXXX_yyyy,其中XXX是功能代號,yyyy是對這段代碼語義的描述。

核心系統(tǒng)的重構(gòu)

對于一個長期存在積弊的系統(tǒng),要成功地完成整體重構(gòu)是非常艱難的。一開始就直接重構(gòu)核心系統(tǒng)存在著極高的風(fēng)險(xiǎn)。首先,改動核心系統(tǒng)可能會引發(fā)全局性的變化,我們無法保證項(xiàng)目的交付周期。其次,由于沒有人能夠充分了解系統(tǒng)的全貌,重構(gòu)可能會過于盲目,導(dǎo)致項(xiàng)目執(zhí)行風(fēng)險(xiǎn)無法控制。

確定要對核心系統(tǒng)進(jìn)行重構(gòu)時,最高優(yōu)先級是確定其邊界,也就是使用界面(接口)。最好的情況是能夠在不修改實(shí)現(xiàn)的情況下調(diào)整核心系統(tǒng)的使用界面以滿足我們的需求。周邊系統(tǒng)對核心系統(tǒng)的依賴主要分為兩類:一是核心系統(tǒng)的功能,表現(xiàn)為它提供的 DOM 接口;二是核心系統(tǒng)提供的事件,讓周邊系統(tǒng)能夠介入其業(yè)務(wù)流程。

為了確定核心系統(tǒng)需要暴露的事件集合,首先需要對所有周邊模塊進(jìn)行依賴優(yōu)化的整理,并進(jìn)行細(xì)致的分析。然后,需要將核心系統(tǒng)的 DOM 接口抽象出來。這一步比較復(fù)雜,包括將周邊系統(tǒng)對核心系統(tǒng)的依賴轉(zhuǎn)變?yōu)榻涌谝蕾嚕约皩徱暫诵南到y(tǒng)功能的 DOM 接口的合理性,明確出期望的接口設(shè)計(jì)。

接下來,是最關(guān)鍵的一步。我們需要對核心系統(tǒng)的接口進(jìn)行重新設(shè)計(jì)。這一步的難點(diǎn)在于,一方面我們對業(yè)務(wù)的理解已經(jīng)有了長足的進(jìn)步,我們抽象的業(yè)務(wù)接口應(yīng)該更加精煉、符合業(yè)務(wù)本質(zhì)的表達(dá)方式;另一方面,需要充分預(yù)計(jì)周邊系統(tǒng)切換到新接口的成本。對于周邊系統(tǒng)來說,這是從老接口過渡到新接口的過程。

完成接口改造后,剩下的工作就相對簡單了。核心系統(tǒng)和每個周邊系統(tǒng)都彼此獨(dú)立,可以單獨(dú)進(jìn)行調(diào)整和優(yōu)化。如果覺得當(dāng)前的核心系統(tǒng)太糟糕,那就開始改進(jìn)。這樣輕松決策的原因在于,即使我們要重新編寫核心系統(tǒng),要做的事情也很清晰,不會影響到整體。這與那些邊界不清晰的業(yè)務(wù)系統(tǒng)不同。要改動核心系統(tǒng)的代碼?不要命了嗎?

責(zé)任編輯:武曉燕 來源: 二進(jìn)制跳動
相關(guān)推薦

2022-04-06 08:23:57

指針函數(shù)代碼

2025-02-10 02:20:00

微服務(wù)SOA架構(gòu)

2023-06-30 08:18:51

敏捷開發(fā)模式

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-09-10 21:42:31

2024-02-20 21:34:16

循環(huán)GolangGo

2021-08-27 07:06:10

IOJava抽象

2025-06-10 03:00:00

2023-12-06 08:26:19

Service數(shù)據(jù)庫

2024-01-29 09:01:20

React列表模式

2023-07-04 08:06:40

數(shù)據(jù)庫容器公有云

2024-07-26 09:47:28

2022-10-08 00:00:05

SQL機(jī)制結(jié)構(gòu)

2022-02-23 08:41:58

NATIPv4IPv6

2022-09-22 08:06:29

計(jì)算機(jī)平板微信

2024-11-28 09:57:50

C#事件發(fā)布器

2021-08-12 07:49:24

mysql

2023-07-24 09:41:08

自動駕駛技術(shù)交通
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

免费观看a视频| 97人妻精品一区二区三区免费| 电影av一区| 国内精品久久久久影院色| 久久久久国产精品免费| 国产交换配乱淫视频免费| 欧美少妇激情| 午夜不卡av在线| 亚洲高清123| 黄色小视频免费观看| 天堂影院一区二区| 欧美成人小视频| 国产精品国产三级国产专业不 | 欧美日韩一卡二卡| 天堂8在线天堂资源bt| 国产日产精品久久久久久婷婷| 国产成人精品www牛牛影视| 青青久久av北条麻妃海外网| 成人免费精品动漫网站| 国产麻豆一区二区三区精品视频| 日韩一区二区在线观看视频| www.日日操| 91破解版在线观看| 综合色中文字幕| 欧美精品成人一区二区在线观看| 国产高清免费在线观看| 轻轻草成人在线| 3344国产精品免费看| 久操视频免费在线观看| 99久久久久| 国产午夜精品视频免费不卡69堂| 亚洲午夜久久久久久久久| 亚洲欧美综合久久久久久v动漫| 懂色aⅴ精品一区二区三区蜜月| 9l视频自拍9l视频自拍| 无遮挡动作视频在线观看免费入口| 99久久国产综合精品女不卡| 97av影视网在线观看| 在线免费看91| 日本91福利区| 国产精品视频不卡| 艳妇乳肉豪妇荡乳av无码福利| 国产精品女主播一区二区三区| 欧美美女操人视频| 91制片厂在线| 国产精品久久久久久影院8一贰佰| 亚洲人成五月天| 中文字幕一区二区三区人妻不卡| 国产欧美自拍一区| 精品国产一二三| 国产老头和老头xxxx×| 久久免费精品| 精品少妇一区二区三区在线播放| 中文字幕在线视频一区二区| 国产激情精品一区二区三区| 3751色影院一区二区三区| 亚洲 欧美 日韩系列| 不卡亚洲精品| 欧美日韩亚洲综合在线 | r级无码视频在线观看| 天堂亚洲精品| 亚洲风情在线资源站| 欧美又粗又长又爽做受| 国模私拍视频在线播放| 亚洲va欧美va人人爽| 成人免费aaa| 色婷婷综合久久久中字幕精品久久| 色综合天天性综合| 色婷婷综合久久久久中文字幕| 色8久久影院午夜场| 欧美性猛片aaaaaaa做受| 一道本在线免费视频| 91成人短视频在线观看| 日韩欧美成人午夜| 在线xxxxx| 九九在线高清精品视频| 尤物tv国产一区| 91传媒免费观看| 国内在线观看一区二区三区| 91爱视频在线| 中文字幕 日韩有码| 国产精品综合久久| 精品一区久久久久久| www在线免费观看| ...xxx性欧美| 久草热视频在线观看| 久久国产三级| 精品国产一区二区三区久久久蜜月| 91av在线免费| 希岛爱理一区二区三区| 国内精品免费午夜毛片| 性色av一区二区三区四区| 国产伦精品一区二区三区免费迷 | 五月天网站亚洲| 少妇人妻互换不带套| 日韩精品一区二区三区免费视频| 亚洲国产精品一区二区久| 日本乱子伦xxxx| 亚洲精品2区| 欧美尤物巨大精品爽| 国产精品视频一区二区三区,| 成人av免费在线| 亚洲欧洲国产日韩精品| av资源中文在线| 欧美日本一区二区三区四区| 波多野结衣加勒比| 91麻豆国产自产在线观看亚洲| 欧美精品videossex88| 中文 欧美 日韩| 99视频热这里只有精品免费| 一本一生久久a久久精品综合蜜| 国产在线看片免费视频在线观看| 欧美久久久久免费| 91精彩刺激对白露脸偷拍| 午夜国产精品视频| 国产精品福利在线观看| 天天操天天干天天爱| 亚洲视频一区二区在线观看| 妞干网在线免费视频| 韩国女主播一区二区三区| 日韩日本欧美亚洲| 中日韩在线观看视频| www国产成人免费观看视频 深夜成人网| 大地资源第二页在线观看高清版| 香蕉视频亚洲一级| 亚洲第一在线视频| 欧美精品成人久久| 国产一区二区91| 亚洲精品一品区二品区三品区| 亚洲精品日产| 亚洲国产精品福利| 国产精品111| 粉嫩av一区二区三区粉嫩| 亚洲天堂第一区| 久久99成人| 九色精品免费永久在线| av 一区二区三区| 中文字幕一区二区三区不卡 | 9色视频在线观看| 天堂综合在线播放| 久久精视频免费在线久久完整在线看| 波多野结衣毛片| 久久久高清一区二区三区| 99999精品视频| 日韩动漫一区| 欧美亚洲国产视频| 你懂的在线观看| 欧美性少妇18aaaa视频| 成人午夜剧场视频网站| 久久高清国产| 日韩不卡av| 色猫猫成人app| 日韩中文字幕不卡视频| 一区二区三区精| 亚洲欧美日韩在线播放| 亚洲午夜精品在线观看| 欧美va天堂在线| 鬼打鬼之黄金道士1992林正英| 黄色成人在线网| 亚洲国产精品高清久久久| 日韩精品手机在线| 久久久精品综合| 亚洲国产日韩欧美在线观看| 婷婷综合激情| 懂色av一区二区三区在线播放| 538视频在线| 亚洲精品一二区| 日本成人一级片| 亚洲激情自拍偷拍| 日本黄色动态图| 奶水喷射视频一区| 日本一区二区视频| 国产精品日本一区二区不卡视频 | 国产盗摄x88av| 成人精品在线视频观看| 乱子伦视频在线看| 色综合色综合| 高清不卡日本v二区在线| 最近在线中文字幕| 久久久999国产精品| 空姐吹箫视频大全| 色婷婷综合久久久中文字幕| 91九色单男在线观看| 韩国一区二区在线播放| 亚洲精品网址| 国产精品一区二区免费看| 日韩激情电影| 国产一区二区三区在线播放免费观看 | 你真棒插曲来救救我在线观看| 日韩欧美中文字幕电影| 国产精品综合久久久| 牛牛精品在线| 亚洲人成网站免费播放| 精品国产99久久久久久宅男i| 午夜精品一区二区三区免费视频 | 一区二区三区中文在线| 波多野结衣先锋影音| 久久99国产精品麻豆| 成 年 人 黄 色 大 片大 全| 热久久天天拍国产| 国产精品区一区| 国外成人福利视频| 韩日欧美一区二区| 大片免费在线观看| 国产亚洲成精品久久| 亚洲精品一区二区三区蜜桃| 欧美性色aⅴ视频一区日韩精品| 国产一级在线视频| 亚洲欧洲无码一区二区三区| 亚洲天堂网一区二区| 国产高清久久久| 日韩av片网站| 99香蕉国产精品偷在线观看 | 日韩av一卡| 欧美久久精品午夜青青大伊人| 国产一级在线| 亚洲精品ady| av中文字幕播放| 欧美特级限制片免费在线观看| 日本一级片免费看| 一区二区三区美女| 国产又粗又硬又长又爽| 国产色产综合产在线视频 | 国产精品网站一区| 国产麻豆天美果冻无码视频| 国产福利一区二区三区视频在线| 99热一区二区| 日韩电影免费在线看| 男人揉女人奶房视频60分| 欧美视频网站| 91视频成人免费| 91久久国产| 曰韩不卡视频| 国产精品97| 亚洲人成网站在线播放2019| 精品国产一级毛片| 欧美精品v日韩精品v国产精品| 午夜欧洲一区| 久久久一本精品99久久精品66 | 日韩av一区二区在线观看| 亚洲第一视频在线| 欧美一二三区精品| 亚洲第一精品网站| 欧美精品一区二区蜜臀亚洲| 国产成人毛毛毛片| 日韩欧美国产一区二区三区| 99精品免费观看| 欧美一区二区视频观看视频| 国产精品毛片一区二区在线看舒淇| 欧美老人xxxx18| 亚洲怡红院av| 日韩欧美一级二级三级| 亚洲精品网站在线| 亚洲国产精品热久久| 四虎在线观看| 亚洲情综合五月天| aaa日本高清在线播放免费观看| 中文字幕在线看视频国产欧美在线看完整 | 中文字幕乱码一区二区| 欧美日韩高清在线播放| 国产精品久久免费| 精品久久久久久亚洲综合网| 天堂av在线免费| 亚洲乱码av中文一区二区| 国产午夜在线观看| 久久久精品久久久久| 黄网在线免费看| 欧美影院久久久| 欧美大片网站| 国产精品播放| 一区二区三区日本久久久| 日韩高清av| 91tv官网精品成人亚洲| 日韩小视频网站| 水蜜桃久久夜色精品一区的特点| 久久久精品高清| 成人精品视频网站| 亚洲a v网站| 国产精品成人一区二区三区夜夜夜| 久久中文免费视频| 精品久久久久久中文字幕一区奶水 | 六月婷婷久久| 国产精品久久久久蜜臀 | 中文av在线全新| 国产女人精品视频| 精品素人av| 亚洲精品国产精品久久| 国内精品久久久久久久影视麻豆| 欧美女人性生活视频| 国产一区二区三区在线观看免费视频| 伦理片一区二区| 国产精品色在线观看| 国产一级视频在线播放| 欧美色图第一页| 天天操天天操天天干| 精品国产一区二区三区四区在线观看 | 91福利国产成人精品照片| 国产精品久久综合青草亚洲AV| 精品偷拍各种wc美女嘘嘘| 麻豆tv入口在线看| 欧洲亚洲免费视频| 亚洲综合色婷婷在线观看| 欧美日韩天天操| 激情欧美国产欧美| 粉色视频免费看| 97久久超碰国产精品| 夫妻性生活毛片| 欧美亚洲禁片免费| 天天操天天插天天射| 九九久久久久久久久激情| 青青热久免费精品视频在线18| 国内成+人亚洲| 亚洲情侣在线| 一区二区xxx| 久久男人中文字幕资源站| 国产一级做a爰片在线看免费| 欧美日韩一本到| 成人在线观看一区| 欧美诱惑福利视频| 国产伦精品一区二区三区免费优势| 成人短视频在线看| 美女mm1313爽爽久久久蜜臀| 丝袜美腿中文字幕| 亚洲综合一区二区| 国产成人精品亚洲精品色欲| 久久精品99久久香蕉国产色戒| 成人自拍视频网| 日本在线播放不卡| 欧美中文字幕| 亚洲天堂视频一区| 欧美日韩国产在线看| 刘亦菲久久免费一区二区| 久久99精品视频一区97| 国产一区二区三区精品在线观看| 亚洲午夜精品久久久中文影院av| 日本特黄久久久高潮| 中文字幕av久久爽一区| 欧美午夜不卡视频| 超碰国产在线观看| 国产日韩在线亚洲字幕中文| 日韩精品中文字幕第1页| 人人干人人干人人| 国产精品乱人伦中文| 伊人色综合久久久| 日韩在线小视频| 久久精品国产福利| 日本特级黄色大片| 国产乱国产乱300精品| 欧美成人综合色| 亚洲第一精品夜夜躁人人爽| 123区在线| 久久精品国产美女| 久久激情久久| 天天舔天天操天天干| 欧美日韩国产精品自在自线| 麻豆网站在线| 北条麻妃高清一区| 国产精品人人爽人人做我的可爱| 极品人妻一区二区三区| 在线免费观看日本一区| 91在线播放网站| 91综合免费在线| 红桃视频亚洲| 亚洲第一香蕉网| 欧美日韩国产中文| 宅男在线观看免费高清网站| 国产青春久久久国产毛片 | 91欧美一区二区三区| 午夜欧美在线一二页| 青草久久伊人| 国产精品一区二区三区免费视频 | 一女二男3p波多野结衣| 亚洲青青青在线视频| 午夜美女福利视频| 欧美一区二区三区精品电影| 日本一本不卡| 国产精品91av| 色老汉av一区二区三区| 成人黄色在线电影| 国产日韩精品一区观看| 日韩和欧美一区二区| 欧美丰满艳妇bbwbbw| 日韩精品在线观看视频| 国产人妖一区| 国产曰肥老太婆无遮挡| 中文字幕欧美日韩一区| 丰满岳乱妇国产精品一区| 日韩免费中文字幕| 影视亚洲一区二区三区| 性久久久久久久久久| 欧美一区二区精品久久911| 在线最新版中文在线| 四虎免费在线观看视频| 久久亚洲二区三区| jlzzjlzzjlzz亚洲人| 国产精品成熟老女人| 极品日韩av| 久久久精品少妇| 亚洲天堂精品在线| 国产精品xxxav免费视频|