色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

架構設計:為什么說復用是邪惡的?

jf_ro2CN3Fa ? 來源:芋道源碼 ? 作者:芋道源碼 ? 2022-12-02 14:29 ? 次閱讀

為什么我們喜歡復用呢?

認為復用可以提高效率的推理邏輯是怎樣的?

你說復用帶來了這么多問題,那我們平時使用各種框架,基礎算法庫都要自己寫一份嗎?

那我設計系統時,盡量將我的設計通用化就好了(例如拆很多個 CRUD 的微服務),這樣就能更多的進行復用,提高生產效率對嗎?

那系統設計好的標準是什么?衡量的維度有優先級嗎?

總結

在系統設計和寫代碼的過程中,我經常會聽到「復用」這個詞,以「復用」為目的來設計技術,業務,組織架構。例如:

抽象出一個類,函數,UI 組件,用于不同的場景

抽象出一個微服務,越細越好,這樣可以靈活的組合

抽象出一個業務中臺,沉淀各種基礎業務功能,供全公司使用

組織(管理)架構中,抽象出一個職能豎井(后端,前端,QA,財務),被不同的產品使用

產品設計中要完成一個性能功能,發現跟之前一個功能相似,就復用之前的功能設計,改改繼續用

為什么我們喜歡復用呢?

主要目的:既然一部分功能已經存在,為什么還要自己造呢?直接拿來用,這樣我可以做得更少,所以能夠提升個人的生產效率。

接受的教育:一直以來的教育,大部分工程師都學習過 DRY principle;《設計模式》的的英文書名就是 《可復用面向對象軟件的基礎》,都在強調復用。

編程習慣:在面向對象語言里,工程師習慣了繼承,而繼承對于大部分人來說的目的就是復用

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

認為復用可以提高效率的推理邏輯是怎樣的?

如果我們要寫一個系統的所有代碼,我們需要寫大量的代碼。

如果我們能從其他地方重用一些以前寫過的代碼,我們就能寫更少的代碼。

我們能重用的代碼越多,我們寫的代碼就越少。

我們寫的代碼越少,我們就會越早完成系統!

這樣的推理邏輯是存在如下誤區:

所有的代碼(功能)需要相同的時間來寫

寫代碼是完成系統的最主要工作

如果你要寫得代碼依賴很多其他的「復用」模塊,你就要去理解不同的「復用」模塊提供的接口,很多時候只看文檔都不行;如果「復用模塊」的接口不是正好是適用你的場景,你就必須在講究使用接口和對方排期之間進行選擇。

此外對于如何抽象出一個公共業務模塊,大部分人都沒什么標準,公共業務模塊的負責人成了業務的外包,效率更低。

另一點是任何維護生產環境系統的人都知道寫代碼只是整個工作中一小步,而且是確定性最高的一步,之后維護才是最占用時間的。我們需要不斷地進行調試,部署,再調試,部署。一個用于很多依賴的模塊相對依賴少的模塊做這些工作的難度是高很多的。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

你說復用帶來了這么多問題,那我們平時使用各種框架,基礎算法庫都要自己寫一份嗎?

肯定不需要自己再寫一份,我們平時會使用各種編程語言(Java,Go),框架,庫。我們使用這些沒有任何問題,因為這是共識和標準,他們是足夠「通用,一般化」,并不是為了某個業務或者某個公司定制的。先有「共識,標準」,再談復用,絕對不是隨意的拿過來用。

那我設計系統時,盡量將我的設計通用化就好了(例如拆很多個 CRUD 的微服務),這樣就能更多的進行復用,提高生產效率對嗎?

復用不是系統要追求的目標。很多人認為更多模塊的「復用」,就可以做到像樂高一樣快速搭建系統,但是很多復用并不是樂高,而是器官移植,不僅不能提高效率,要不斷面對各種各樣的排異反應,降低了速度和穩定性。很多創業公司快速發展時系統腐化的主要問題就出現在了強行復用上。強行復用的案例很常見,例如:

上百個字段的數據表(例如訂單表,數據表),不清楚哪個字段在哪個場景下有效

根據名詞來設計系統,出現業務中臺,例如訂單中臺,電商中臺,各部門之間不斷地扯皮

出來無數個小的微服務,然后搞個統一的業務編排調度層(所謂的 gateaway)來處理業務,可能還抽象 DSL;上線十分復雜,需要發布 N 各模塊;調度模塊是系統大單點,穩定性迭代速度都是問題

如果有一個好的設計,我們需要謹記《Hints for Computer System Design》中的「Use a good idea again instead of generalizing it. A specialized implementation of the idea may be much more effective than a general one.」

那系統設計好的標準是什么?衡量的維度有優先級嗎?

兩個評價標準自治性和一致性:

自治性:受其他模塊的影響程度,觀測模塊的接口是否穩定。可以使用AutonomyMetrics[1] 進行衡量

一致性:應該使用一個模塊的地方使用一個模塊的程度,也可以衡量是否過早,過度抽象了。可以使用 ConsistencyMetrics[2]

在業務層次是否要從多個業務模塊中抽象出一個底層模塊,可以通過多個業務模塊的這部分公共邏輯部分是否要一起進行改變進行判斷,如果不是需要一起變化的就不要抽象出公共模塊。

根據個人經驗如果你在要從各個業務模塊進行抽象出一個模塊保持一致與保持在模塊保持自治之間猶豫時,要毫不猶豫優先選擇「自治」。

總結

大部分情況下系統的核心復雜度不會減少, 只是轉移;不會因為所有代碼一個人寫,會比分成兩個人寫更快,分工是應該且必須的。但是請注意的是:

不要為了復用隨意通用化,抽象化,復用不是目的。如果要通用化就拿ConsistencyMetrics[2] 來判斷是否是抽象合理的。

不要隨意復用其他的模塊,自治優先,用 AutonomyMetrics[1] 衡量;如果要復用一定要確保共識和標準優先,形不成共識和標準就不用復用。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2719

    瀏覽量

    47562
  • 函數
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62739
  • 架構設計
    +關注

    關注

    0

    文章

    31

    瀏覽量

    6961

原文標題:架構設計:為什么說復用是邪惡的?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    探討篇(三):代碼復用的智慧 - 提升架構的效率與可維護性

    作者:京東物流 馮志文 前兩篇從服務粒度和服務內的分層架構角度探討,本文繼續從服務間代碼復用角度探討。 背景 在分布式架構中,代碼復用是個難題。那么如何處理代碼功能共享的問題呢?本文結
    的頭像 發表于 12-27 15:58 ?249次閱讀
    探討篇(三):代碼<b class='flag-5'>復用</b>的智慧 - 提升<b class='flag-5'>架構</b>的效率與可維護性

    架構性需求的基礎知識

    第一次接觸“架構性需求”,大約在六年前,當時一位大佬指導我們,在前期產品規劃時,最重要的就是找到“架構性需求”。本人就一頭的問號,“架構性需求”是什么?我沒有聽錯吧?當時也沒怎么放在
    的頭像 發表于 11-15 11:01 ?219次閱讀
    <b class='flag-5'>架構</b>性需求的基礎知識

    深入理解 Llama 3 的架構設

    在人工智能領域,對話系統的發展一直是研究的熱點之一。隨著技術的進步,我們見證了從簡單的基于規則的系統到復雜的基于機器學習的模型的轉變。Llama 3,作為一個假設的先進對話系統,其架構設計融合了
    的頭像 發表于 10-27 14:41 ?577次閱讀

    邊緣計算架構設計最佳實踐

    邊緣計算架構設計最佳實踐涉及多個方面,以下是一些關鍵要素和最佳實踐建議: 一、核心組件與架構設計 邊緣設備與網關 邊緣設備 :包括各種嵌入式設備、傳感器、智能手機、智能攝像頭等,負責采集原始數據
    的頭像 發表于 10-24 14:17 ?468次閱讀

    頻分復用是如何實現多路通信的

    頻分復用(FDM)是一種經典的多路通信技術,它允許多個信號在同一傳輸媒介上同時傳輸,而互不干擾。
    的頭像 發表于 05-07 15:21 ?1142次閱讀

    交換芯片架構設

    交換芯片的架構設計是網絡設備性能和功能的關鍵。一個高效的交換芯片架構能夠處理大量的數據流量,支持高速數據傳輸,并提供先進的網絡功能。
    的頭像 發表于 03-21 16:28 ?563次閱讀

    交換芯片架構設

    交換芯片架構設計是網絡通信中的關鍵環節,它決定了交換機的性能、功能和擴展性。
    的頭像 發表于 03-18 14:12 ?742次閱讀

    多路復用的原理 為什么要多路復用?多路復用技術的應用

    在計算機網絡中,多路復用是一種重要的通信技術,它允許多個信號通過同一個通信信道進行傳輸。
    的頭像 發表于 03-05 15:09 ?3010次閱讀
    多路<b class='flag-5'>復用</b>的原理 為什么要多路<b class='flag-5'>復用</b>?多路<b class='flag-5'>復用</b>技術的應用

    【RISC-V開放架構設計之道|閱讀體驗】匯編語言和擴展指令集

    【RISC-V開放架構設計之道|閱讀體驗】匯編語言和擴展指令集 匯編語言 將C語言翻譯成可執行的機器語言的重要步驟包括編譯過程,匯編過程,鏈接過程。 函數調用約定過程分為六個階段: 1)將參數存放
    發表于 02-03 13:29

    華為企業架構設計方法及實例

    企業架構是一項非常復雜的系統性工程。公司在充分繼承原有架構方法基礎上,博采眾家之長,融合基于職能的業務能力分析與基于價值的端到端流程分析,將”傳統架構設計(TOGAF)”與“領域驅動(DDD)”方法相結合。
    發表于 01-30 09:40 ?905次閱讀
    華為企業<b class='flag-5'>架構設</b>計方法及實例

    【RISC-V開放架構設計之道|閱讀體驗】理解指令設計思想的好指導

    感謝電子發燒友論壇和電子工業出版社提供的試讀機會。 在上一篇文章中我們簡單地介紹了《RISC-V開放架構設計之道》這本書的情況,今天來談談它在指令設計方面的特色。 我以前在課堂講授過x86和ARM
    發表于 01-28 16:58

    【RISC-V開放架構設計之道|閱讀體驗】一本別出心裁的RISC-V架構之書(第一章)

    【RISC-V開放架構設計之道|閱讀體驗】一本別出心裁的RISC-V架構之書(第一章) 申請這本書的時候就看到了書評中有幾點吸引我,讓我希望拜讀一下: 本書的作者是RISC-V架構的作者、著名
    發表于 01-24 19:06

    【RISC-V開放架構設計之道|閱讀體驗】學習處理器體系架構的一本好書

    感謝電子發燒友論壇和電子工業出版社提供的試讀機會。 《RISC-V開放架構設計之道》由RISC-V架構的作者、著名的計算機體系架構專家David Patterson親自主筆撰寫。David
    發表于 01-23 20:08

    邪惡PLC攻擊技術的關鍵步驟

    今天我們來聊一聊PLC武器化探秘:邪惡PLC攻擊技術的六個關鍵步驟詳解。
    的頭像 發表于 01-23 11:20 ?1076次閱讀
    <b class='flag-5'>邪惡</b>PLC攻擊技術的關鍵步驟

    【RISC-V開放架構設計之道|閱讀體驗】 RISC-V設計必備之案頭小冊

    有幸參加發燒友電子的論壇評測,這兩天收到了這本需要評測的書籍《RISC-V開放架構設計之道》,全書簡單講了RISC-V指令集中目前已經完善的幾個指令集部分,并展望了未來可能會在指令集
    發表于 01-22 16:24
    主站蜘蛛池模板: 国产成人精品午夜福麻豆报告| 99久久re6热精品首页| 一本道手机无码在线看| 高清国语自产拍在线| 美女视频秀色福利视频| 亚洲专区区免费| 国产最新进精品视频| 小黄文污到你湿| 国产精品自在拍在线播放| 亚洲理论片在线中文字幕| 国产二区自拍| 娇小8一12xxxx第一次| 无码人妻丰满熟妇区五十路久久 | 国产精品女上位好爽在线短片| 久久综合丁香激情久久| 忘忧草在线影院WWW日本动漫| 高清毛片一区二区三区| 特级做A爰片毛片免费看108| 国产精品爽爽久久久久久竹菊 | 国产精品久久久久久搜索| 午夜亚洲WWW湿好爽| 99亚偷拍自图区亚洲| 欧美白人战黑吊| 在线视频免费国产成人| 夫妻日本换H视频| 爽爽影院线观看免费| 2020国产成人免费视频| 免费视频国产| 中文字幕精品AV内射夜夜夜| 老师给美女同学开嫩苞| 97午夜理论片影院在线播放| 琪琪婷婷五月色综合久久| 月夜直播免费观看全集| 麻豆蜜桃国语精品无码视频| wwwzzz日本| 暖暖 视频 免费 高清 在线观看 | 强奷乱码欧妇女中文字幕熟女| 工口肉肉彩色不遮挡| 亚洲精品线在线观看| 麻豆啊传媒app黄版破解免费| 超碰免费视频caoporn|