女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    2783

    瀏覽量

    49507
  • 函數
    +關注

    關注

    3

    文章

    4367

    瀏覽量

    64143
  • 架構設計
    +關注

    關注

    0

    文章

    32

    瀏覽量

    7070

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    設備遠程監控與預測性維護系統架構設計及應用實踐

    本文探討了在工業4.0與數字化轉型背景下,設備管理系統從傳統人工巡檢向智能運維的深刻變革。文章從技術架構、實施路徑和典型應用三個方面深入解析了設備遠程監控與預測性維護系統的實現方法。
    的頭像 發表于 04-15 10:16 ?192次閱讀
    設備遠程監控與預測性維護系統<b class='flag-5'>架構設</b>計及應用實踐

    SOA架構開發小助手PAVELINK.SOA-Converter 2.1.2新版本發布

    為提升汽車SOA架構設計開發效率,優化用戶體驗,我們對PAVELINK.SOA-Converter進行了全新升級。本次2.1.2新版本升級,聚焦于提升軟件性能、擴展功能特性及增強用戶交互體驗。
    的頭像 發表于 04-09 10:37 ?822次閱讀
    SOA<b class='flag-5'>架構</b>開發小助手PAVELINK.SOA-Converter 2.1.2新版本發布

    芯片架構設計的關鍵要素

    芯片架構設計的目標是達到功能、性能、功耗、面積(FPA)的平衡。好的芯片架構能有效提升系統的整體性能,優化功耗,并確保在成本和時間的限制下完成設計任務。
    的頭像 發表于 03-01 16:23 ?480次閱讀

    NMUX1237模擬多路復用器/解復用器規格書

    電子發燒友網站提供《NMUX1237模擬多路復用器/解復用器規格書.pdf》資料免費下載
    發表于 02-20 16:21 ?0次下載
    NMUX1237模擬多路<b class='flag-5'>復用</b>器/解<b class='flag-5'>復用</b>器規格書

    CBT3257A多路復用器/解復用器規格書

    電子發燒友網站提供《CBT3257A多路復用器/解復用器規格書.pdf》資料免費下載
    發表于 02-11 16:26 ?0次下載
    CBT3257A多路<b class='flag-5'>復用</b>器/解<b class='flag-5'>復用</b>器規格書

    Altium-designer模塊復用詳細教程

    本文介紹兩種復用模塊模式:一種為復用成完全相同的模塊;另一種復用為沿 X 軸、或沿 Y 軸成鏡像的模塊?
    發表于 12-30 16:16 ?1次下載

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

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

    面向服務的整車EE架構(SOA)設計開發咨詢服務

    經緯恒潤多年來一直致力于為客戶提供先進電子電氣架構解決方案,近年來,經緯恒潤在國內率先開展整車SOA架構的技術研發和業務布局,參與多款SOA架構下量產車型的研發,積累了豐富的SOA架構設
    的頭像 發表于 12-12 15:11 ?925次閱讀
    面向服務的整車EE<b class='flag-5'>架構</b>(SOA)設計開發咨詢服務

    架構性需求的基礎知識

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

    GPU服務器AI網絡架構設

    眾所周知,在大型模型訓練中,通常采用每臺服務器配備多個GPU的集群架構。在上一篇文章《高性能GPU服務器AI網絡架構(上篇)》中,我們對GPU網絡中的核心術語與概念進行了詳盡介紹。本文將進一步深入探討常見的GPU系統架構
    的頭像 發表于 11-05 16:20 ?1030次閱讀
    GPU服務器AI網絡<b class='flag-5'>架構設</b>計

    深入理解 Llama 3 的架構設

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

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

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

    架構與設計 常見微服務分層架構的區別和落地實踐

    架構風格越傾向于清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件架構設計過程中又有非常多的架構分層模型。 傳統三層
    的頭像 發表于 10-22 15:34 ?559次閱讀
    <b class='flag-5'>架構</b>與設計 常見微服務分層<b class='flag-5'>架構</b>的區別和落地實踐

    密集波分復用和稀疏波分復用的區別

    密集波分復用(DWDM, Dense Wavelength Division Multiplexing)和稀疏波分復用(CWDM, Coarse Wavelength Division
    的頭像 發表于 08-09 11:18 ?1216次閱讀

    扁平電纜(FFC)為電氣架構帶來新的發展空間

    車輛架構正處在一個關鍵的轉型期。隨著電動汽車的興起,面臨著一次架構設計上的重大突破,這代表了重新思考電氣和電子架構設計的絕佳機會。同時,由于混合動力和內燃機車輛中仍存在大量現有內容,這使得采用創新
    的頭像 發表于 07-18 08:27 ?2155次閱讀
    扁平電纜(FFC)為電氣<b class='flag-5'>架構</b>帶來新的發展空間