国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

架構之重構的十二條軍規

開發 架構
對于開發者來說,架構設計是軟件研發過程中最重要的一環,所謂沒有圖紙,就建不了房子。在遍地App的互聯網時代,架構設計有了一些比較成熟的模式,開發者和架構師也可以經常借鑒。

[[410018]]

對于開發者來說,架構設計是軟件研發過程中最重要的一環,所謂沒有圖紙,就建不了房子。在遍地App的互聯網時代,架構設計有了一些比較成熟的模式,開發者和架構師也可以經常借鑒。

但是,隨著應用的不斷發展,最初的架構往往面臨著各種問題,比如無法滿足客戶的需求、無法實現應用的擴展、無法實現新的特性等等。在這種情況下,我們如何避免一些坑,盡量比較成功地實現架構的重構,是很多開發者和架構師亟需解決的問題。

在這里,跟大家分享一下Uber的工程主管Raffi Krikorian的12條規則,并附上一些解讀,希望對大家有所啟發。

確定重構的目的和必要性

看起來這個規矩有些多余,但是請不要忽略。每一次架構的重構都是“傷筋動骨”,就像做手術一樣,即使再成功,也會傷元氣,所以決策者們首先要分析架構重構的理由和其他備選方案,明確重構的目的是為了滿足業務需求,并且是不得不做的最佳方案,然后再考慮其他問題。有時候,經過分析就會發現,也許還有其他解決方案,比如增加計算資源,或者重構的目的不是為了業務需求,那就沒有必要做了。

檢查清單:

  • 架構重構的原因是什么,是為了滿足業務的需要還是只是覺得架構不好看?
  • 除了架構重構之外,還有其他備選方案嗎?是否都分析過這些方案的利弊?

定義“重構完成”的界限

如果確定要重構,那么要把目標明確下來,也就是重構的邊界條件,怎么才算是“完成”了重構,目標要有數據量化,或者有能夠測試的辦法。這也是一個需求分析的過程,如果需求不明確,那么規格說明書沒法寫清楚,負責重構的團隊也沒有明確的目標,不能以重構的時間或者主觀的判斷為結束的依據。前幾天和一朋友聊天,他最近在負責系統的性能優化,也要做一些重構的事情,開始的時候團隊的目標不明確,大家不知道優化到什么程度,所以不敢下手。如果目標是提高10%,那么可以從細節處著手;如果是提高50%,那可能要搞大動作才能實現了。后來目標明確之后,團隊才找到合適的辦法。

檢查清單:

  • 重構的目標可以量化,或者說可以測試嗎?
  • 重構完成的標準是什么?得到業務部門或者領導的認可了嗎?

漸進式重構

現在軟件研發最流行的就是快速迭代、持續交付、盡早反饋。這同樣可以用在架構的重構上,重構過程的難度不亞于構建一個新產品,所以在設計重構的時候,要引入持續交付的流程,每一個重構步驟或者模塊都要快速部署并得到反饋,以便評估重構的效果,及時作出策略調整。有的讀者會說,我們的架構重構是釜底抽薪型的,沒法漸進,只能一蹴而就。如果是這種情況,可以考慮在另外一套拷貝的系統中做重構,經過謹慎測試之后,將數據和業務遷移過去。

檢查清單:

  • 能否把重構過程分成小的迭代,每一次改進都能盡快得到反饋?
  • 重構過程中的效果能夠定期展示給業務部門或者領導嗎?

確定當前的架構狀態

在啟動重構之前,團隊要對當前的架構狀態有清晰的了解,也就是設定好基準,以便評估重構的效果。據我的經驗,負責重構的架構師或者開發者,往往還沒有搞清楚現有的架構設計,就開始重構了,結果經常出現這樣的情況:重構到某個階段,發現行不通,然后一拍腦袋說,哦,原來這塊的架構是這個樣的,是為了達到某某業務需求啊,這塊不能動,得想別的辦法。類似的例子在研發團隊中時有發生,也提醒我們要慎重小心。記得有位哲人說過,了解別人很容易,了解自己很難。

檢查清單:

  • 你了解當前的架構設計嗎?它的設計初衷和之前的選型方案知道嗎?
  • 你能給架構設定一個基準狀態嗎?

不要忽略數據

數據的重要性不言而喻,業務都是以數據流為載體的,所以架構重構的本質就是對于數據流的重構。數據對重構的重要性主要體現在兩個方面:在重構設計時,需要考慮業務數據的需求,重構之后的系統對于數據的存儲、處理、分析等功能是否有影響;在重構過程中,考慮依靠數據甚至是實際的數據來驗證重構的效果,提供評估的支持。

檢查清單:

  • 業務數據的需求在重構設計中有體現嗎?
  • 重構過程中能否通過實際數據來驗證效果?

管理好技術債務

技術債務在平常的軟件研發過程中也是比較突出的問題,現在單獨拿出來強調是希望提醒開發者們:架構重構往往是為了償還技術債務,所以請不要在償還技術債務的過程中制造技術債務了。技術債務就像信用卡一樣,會有很高的利息率,就如同給團隊留下了大量的帳務開銷。組織應該培養一種保證設計質量的文化。應當鼓勵重構、同時也應當鼓勵持續設計以及其它有關代碼質量的實踐。在開發時間中應當專門抽出一部分以解決技術債務。如果沒有合適的照料,那么真實世界中的代碼會變得越來越復雜難懂。

檢查清單:

  • 團隊對技術債務有跟蹤和備忘錄機制嗎?還是開發人員可以隨意的產生債務?
  • 針對技術債務有定期的培訓、回顧機制嗎?

遠離那些虛榮的東西(例如使用“熱門”的技術棧)

架構的重構過程應該是以目標為導向,換句話說“注重實效”。對于技術人來說,一個經常被輕視的問題在于,喜歡追逐新鮮的熱門技術,這其實是個好事情,說明技術人勇于創新,不斷接受新技術。但是對于架構的重構這樣的關鍵性任務來說,是不是新技術并不重要,重要的是能不能實現重構的目標。對于新技術來說,雖然熱度大,但是人才儲備還不足,大家踩過的坑還不多,積累的失敗教訓和成功經驗還不夠,在這種情況下,建議大家不要頭腦一熱就上馬新技術,應該客觀冷靜地評估新技術和成熟技術對架構重構的影響和效果,以數據和經驗來說話,而不要追趕時髦。

檢查清單:

  • 重構的技術選型是否有詳實的數據和專家評估?
  • 選用的技術是否有良好的人才積累和足夠的經驗支持?你是不是實驗小白鼠?
  • 在技術選型時,是否至少有兩個方案待評估?有沒有成熟的技術方案?

做好準備面對壓力

這條軍規更像是對架構師們的心理建議,軟件開發過程中,壓力無處不在。對于架構重構來說,壓力來源于多個方面:管理層、團隊成員、同級部門等等。說白了,架構重構對個人來說往往是一件出力不討好的事情。和做一個新產品能夠取得很高的贊賞相比,重構的成績往往并不受領導重視,而且出了問題還要承擔很大的責任。從軟件開發角度看,做新產品是從0到1,而架構重構是從-1到1,復雜性和難度通常更大。因此,重構的負責人要提前做好心理準備,舒緩壓力的一個技巧是,設置好里程碑,將重構的成果量化,并且和業務的變化關聯起來,定期向利益相關各方同步狀態,得到大家的理解和支持。

檢查清單:

  • 架構的重構是否得到了管理層(特別是最高管理層)的支持?他們是否對重構的時間、任務量有直接的認識?
  • 你的重構計劃中是否包含了一些可以量化的成果?是否定期向管理層展示這些成果?

了解業務

雖然看起來像是一句廢話,但是我想Raffi Krikorian特意把這條提出來一定是有理由的。架構重構的最終目的是改進業務,所以對于業務的了解將有助于架構師和技術人確定重構目標的優先級和關鍵路徑。比如,我們需要知道哪些關鍵業務的架構是不能碰的,哪些業務之間是互相關聯的,哪些業務的架構是需要優先重構的.....等等。除了了解業務本身,我們還需要了解“人”,表面上管理層是重構目標的裁決者,但實際上業務部門的人才是。技術人需要了解他們的業務需求,并將其轉化為重構目標。通過這種方式,架構重構的意義才能得到具體的體現。

檢查清單:

  • 是否與業務部門就架構重構所能實現的業務目標進行過充分的討論和確認?
  • 是否對關鍵業務和優先重構的業務進行了確認?

做好面對非技術因素的準備

恩......這又是一個不那么讓人舒服的建議。不管你是否愿意相信,技術在架構重構(以及其他很關鍵的公司決策中)的影響因素中并不是最高的,我們還會涉及到商業利益、管理層偏好、大客戶影響、辦公室zhengzhi、站隊問題等等,對于架構師和技術人來說,這些因素往往不是他們所能掌控的。我們能做的就是,與利益相關者設定重構目標,然后,根據不同的影響因素,調整目標。請記住,不要死扛這個目標,當有人提出不同的意見時,要坦誠地和他們交流,并告知他們如何采納意見,那么重構目標會有變化,然后讓其他利益相關者也知道這些變化。非技術因素的影響是客觀存在的,而且從商業層面來說也是合理的,所以對于技術人來說要學會適應。

檢查清單:

  • 當非技術因素影響架構的重構時,你是否對目標做了調整并告知了利益相關各方?
  • 你是否準備以開放而不是抵制的心態來對待非技術因素的影響?

對于代碼質量有所掌握

這和上篇中所提到的“管理好技術債務”有異曲同工之處。架構的重構對代碼質量要求很高,一方面是重構過程對bug的容忍性比新產品的研發更低,另一方面也決定了下一次重構的難易程度。關于代碼質量的書籍和文章已經有很多,在這里只想提醒大家一點:代碼審查是一個非常好的辦法。代碼審查是軟件開發過程中的必要步驟,既可以幫助被審查者提到代碼質量,又可以讓審查者加深對產品的理解。不論團隊多忙,一定要保證代碼提交之前,是經過其他成員審核過的,短期來看會占用團隊的時間,長期來看是事半功倍的好事。

檢查清單:

  • 團隊成員是否對代碼質量有足夠的重視?是否有獎懲措施?
  • 團隊內部是否有代碼質量的標準文檔和審查流程?

讓團隊做好準備

這是Raffi Krikorian列舉的最后一條軍規,是對之前所有建議的總結,我在這里不做解讀了,請大家自我感覺吧。

結尾

關于架構的重構,Raffi Krikorian給了很好的建議,不過到底有沒有效果,還是要實踐中檢驗。盡信書不如無書,來源于實踐中的經驗是最有價值的,為技術人所用才有意義。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2012-07-26 09:31:14

BYODCIO第二十二條軍規

2018-01-21 23:23:07

戴爾

2012-10-12 10:50:34

Ubuntu技巧

2009-11-24 14:44:00

CCNP 640-50

2020-04-08 12:24:14

人工智能人類AI

2021-08-03 08:13:48

重構API代碼

2023-03-31 09:44:20

云計算架構

2023-09-26 21:55:29

2020-06-17 16:38:22

Rust業務架構

2018-07-10 10:00:15

Android架構MVC

2011-03-31 09:32:25

EclipseRefactor

2024-05-24 08:21:20

2022-08-08 13:24:28

整潔架構架構前端

2025-05-21 00:10:00

2017-09-18 09:35:14

2019-05-28 10:30:16

Java架構微服務

2010-12-23 13:35:05

面向過程

2013-12-22 15:51:00

IT基礎架構關鍵業務英特爾

2017-03-09 19:39:54

微服務架構重構

2012-08-31 10:02:37

點贊
收藏

51CTO技術棧公眾號

亚洲色图在线视频| 成人免费在线播放| 国产精品国产三级国产普通话蜜臀| 国产在线播放不卡| 老司机免费在线视频| 日韩精选在线| 91久久久久久国产精品| 欧美大胆的人体xxxx| 在线看国产精品| 国产区高清在线| 国产精品国产三级国产普通话蜜臀 | 精品无人区一区二区三区| 豆花视频一区| 亚洲国产另类久久精品| 激情小说 在线视频| 亚洲国产精品成人综合色在线婷婷| 亚洲精品国产精品久久| 日韩亚洲在线| 成人欧美一区二区三区在线湿哒哒 | 色哟哟一区二区三区| 国产视频一二三区| 久久嫩草精品久久久精品一| 大桥未久一区二区三区| 欧美亚洲一级| 久久久久久久久久码影片| 欧美96在线丨欧| 亚洲精品日韩av| 外国成人激情视频| 91夜夜揉人人捏人人添红杏| 香蕉av一区二区| 98国产高清一区| 午夜日韩视频| 成人黄色片视频网站| 综合色一区二区| 99一区二区| 国产日韩免费| 亚洲乱码一区二区三区| 精品一区二区久久久| 玖玖精品在线视频| youjizz国产精品| 国产精品欧美激情在线观看| 91蜜桃免费观看视频| 亚洲黄色小视频在线观看| 1024国产精品| 四虎影视在线观看2413| 欧美日韩在线观看一区二区| 国内外激情在线| 亚洲精品影视在线观看| 欲香欲色天天天综合和网| 亚洲欧美国产日韩中文字幕| 国产精品99精品一区二区三区∴| 精品国内亚洲在观看18黄| 国产一区二区三区亚洲| 国产精品免费久久久久久| 欧美三级乱码| 椎名由奈jux491在线播放 | 国产电影精品久久禁18| 人人妻人人澡人人爽欧美一区双| www国产成人| 色老板亚洲精品一区| 色狠狠综合天天综合综合| 视频在线这里都是精品| 精品国产视频在线| 日本成人小视频| 日本一区免费看| www久久久久| 日本免费一二区| 69堂国产成人免费视频| 成人精品动漫| 91精品国产综合久久久久久蜜臀 | 伊人久久综合影院| 福利视频一区二区三区| 久久精品国产色蜜蜜麻豆| 国模无码视频一区二区三区| 亚洲一区二区三区四区五区中文 | 欧美韩日一区二区| 久久精品一区二区不卡| 午夜精品福利一区二区| 久久影院视频免费| 视频一区二区三区在线看免费看| 日韩精品一区二区三区三区免费| 国产精品日韩精品在线播放| 国产精品入口免费视频一| 免费久久精品视频| 激情小说激情视频| 欧美成人精品福利| 欧美变态网站| 久久精品日产第一区二区三区乱码 | 日本国产一区二区三区| 韩国欧美一区| 黄色国产一级视频| 疯狂做受xxxx高潮欧美日本| 色在线中文字幕| 国产成人精品综合久久久| 美女mm1313爽爽久久久蜜臀| 免费一级淫片| 亚洲欧美国产日韩天堂区| 久久五月天小说| 日韩精品 欧美| 欧美高清视频一二三区| 9l视频自拍蝌蚪9l视频成人| 蜜桃视频在线观看91| 亚洲免费av观看| 香蕉视频亚洲一级| 91亚洲精品丁香在线观看| 久久久亚洲高清| 少女频道在线观看免费播放电视剧| 欧美亚洲另类在线| 国模少妇一区二区三区| 免费国产在线观看| 97碰在线观看| 国产iv一区二区三区| 日本网站在线免费观看视频| 91国产美女在线观看| 国产伦精品一区二区三区在线观看| 天堂成人在线| 97成人在线视频| 国产精品66部| 手机在线免费av| 成人做爰66片免费看网站| 亚洲欧洲一区二区在线播放| 成人影院大全| 日本不卡一区二区三区视频| 亚洲国产精品精华液网站| 日本一区二区三区视频在线看| 亚洲精品国产一区| 欧美日韩综合不卡| 99久久99久久精品国产片果冰| 亚洲五月天综合| 色yeye香蕉凹凸一区二区av| 麻豆精品在线视频| 欧美日韩欧美| 成人av资源| 日韩欧美中文免费| 精品成av人一区二区三区| 人人爽人人av| 操日韩av在线电影| a级精品国产片在线观看| 一根才成人网| 五月天色婷婷综合| 亚洲韩国日本中文字幕| 日本伊人精品一区二区三区观看方式| 国产视频精选在线| 亚洲free性xxxx护士白浆| 午夜精品在线看| 日韩精品免费| 天堂av电影在线观看| 96久久精品| 欧美丝袜丝交足nylons图片| 欧美在线亚洲| seseavlu视频在线| 精品国产一区二区三区麻豆免费观看完整版 | 久久久亚洲精华液精华液精华液| 久久久综合av| 中文字幕一区日韩精品欧美| 国产精品麻豆| 99视频在线免费| 久久久噜噜噜久久| 亚洲人成网站在线| 奇米亚洲欧美| 啊灬啊灬啊灬啊灬高潮在线看| 国产精品video| 亚洲一区二区三区四区五区黄 | 成人爱爱网址| 秋霞在线一区二区| 亚洲欧美中文日韩在线v日本| 国产一区二区调教| 欧美最新精品| 99久久激情视频| 热门国产精品亚洲第一区在线| 亚洲一级二级三级在线免费观看| 亚洲成人日韩| 日韩在线免费电影| 亚洲一区二区不卡视频| 亚洲天堂影视av| 国产精品日韩精品欧美在线| 亚洲都市激情| 第九色区av在线| 欧美日韩综合网| 亚洲男人的天堂网站| 久久久久亚洲综合| 成人激情开心网| 黄色网址在线免费| 青草青青在线视频| 国产精品av在线播放| 欧美一区二区三区在线电影 | 美腿丝袜一区二区三区| 怡红院成人在线| 亚洲一级片网站| 国产精品成人一区二区三区| 亚洲精品福利免费在线观看| 91视视频在线观看入口直接观看www | 久久婷婷国产综合尤物精品| 精品伊人久久97| 中文字幕中文字幕在线一区 | 国产精品xxx在线观看www| 亚洲精品一线二线三线| 久久先锋影音av鲁色资源网| 中午字幕在线观看| 大桥未久在线播放|