国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難

這篇具有很好參考價值的文章主要介紹了架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ?

目錄

業(yè)務(wù)迭代和技術(shù)優(yōu)化難以兼顧

缺少“上帝”視角思維

系統(tǒng)架構(gòu)腐化

缺少架構(gòu)師視角

系統(tǒng)迭代機制

設(shè)計規(guī)范把控


最近在組織團隊內(nèi)的系統(tǒng)架構(gòu)優(yōu)化,總而言之就是難,至于為什么難我這邊總結(jié)了以下六個方面,記錄一下自己的架構(gòu)師進階之路吧。??

架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難,架構(gòu),系統(tǒng)架構(gòu),架構(gòu)

業(yè)務(wù)迭代和技術(shù)優(yōu)化難以兼顧

重要的事:架構(gòu)設(shè)計優(yōu)化,讓系統(tǒng)具有足夠的“彈”性

緊急的事:業(yè)務(wù)迭代支持,讓系統(tǒng)支撐業(yè)務(wù)持續(xù)發(fā)展

我們將日常中的事情分為重要、緊急四個象限,然后對系統(tǒng)架構(gòu)優(yōu)化和業(yè)務(wù)迭代填空在四個象限內(nèi)。

1)重要且緊急

2)重要不緊急

3)不重要但緊急

4)不重要且不緊急

系統(tǒng)架構(gòu)設(shè)計優(yōu)化:重要(占據(jù)第 1、2 位)

業(yè)務(wù)迭代支持:緊急(占據(jù)第 1、3 位)

但是我們?nèi)粘9ぷ髦?,業(yè)務(wù)、產(chǎn)品與研發(fā)部門經(jīng)常犯的錯誤就是將第三優(yōu)先級的事情提到了第二優(yōu)先級去做。顯而易見重要的系統(tǒng)技術(shù)優(yōu)化事項被業(yè)務(wù)迭代所排擠。為此我們研發(fā)人員經(jīng)常會抱怨,沒有時間來做技術(shù)優(yōu)化,自我調(diào)侃為:“又在搬磚...”、“又在加班寫 BUG ...”

似乎我們忘記了:業(yè)務(wù)部門就是只盯著業(yè)務(wù)的,對于系統(tǒng)架構(gòu)的評估和優(yōu)化,本來就是研發(fā)人員的工作職責(zé)!如何平衡好這兩者的工作,是研發(fā)人員的晉級修養(yǎng)之路。

不要忽略系統(tǒng)架構(gòu)的價值,假如有一天系統(tǒng)難以維護到只能推翻重來的地步,可以說是系統(tǒng)技術(shù)優(yōu)化跟不上業(yè)務(wù)的快速迭代,同時側(cè)面說明了研發(fā)同學(xué)的本職工作做得不夠格!

缺少“上帝”視角思維

我們在以往的需求迭代中更多的是掉入到“需求陷阱”里,只關(guān)注自己負責(zé)的業(yè)務(wù)部分,而忽視“全局”。緊密的需求迭代節(jié)奏也是我們忙于堆砌代碼,從而忘記停下腳步來回頭看看是否走在了岔路上。我們都知道最終都會達到羅馬,但是有的人走的是“直道”,有的人走得是“彎道”。我們要時不時跳脫出來,回過頭來重新審視一下全局的業(yè)務(wù)、產(chǎn)品、系統(tǒng)設(shè)計是否合理。

系統(tǒng)架構(gòu)腐化

架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難,架構(gòu),系統(tǒng)架構(gòu),架構(gòu)

多人協(xié)作問題:如果系統(tǒng)的開發(fā)人員沒有嚴(yán)格遵循一致的開發(fā)規(guī)范,或者沒有建立好有效的代碼管理機制,可能會導(dǎo)致代碼結(jié)構(gòu)上的混亂,從而增加系統(tǒng)的開發(fā)復(fù)雜度和維護成本。

無規(guī)劃性的技術(shù)棧升級:開發(fā)人員過于頻繁地嘗試新技術(shù),不僅會使技術(shù)棧變得復(fù)雜,也可能會影響系統(tǒng)的穩(wěn)定性和安全性。

缺乏良好的測試機制:系統(tǒng)的測試機制如果缺乏,可能會嚴(yán)重影響代碼質(zhì)量,就像沒有人為項目提供反饋似的,從而使代碼中的錯誤不被及時發(fā)現(xiàn),令錯誤在系統(tǒng)中逐漸積累。

研發(fā)人員變動:如果組織的團隊成員經(jīng)常性更換,新舊人員之間沒能形成有效的銜接和匹配,可能會導(dǎo)致系統(tǒng)的連續(xù)性和穩(wěn)定性受到影響,乃至出現(xiàn)系統(tǒng)架構(gòu)腐化的問題。

系統(tǒng)逐漸復(fù)雜化:在系統(tǒng)的長周期的演化過程中,難免會增加新需求、新功能模塊和服務(wù)組合, 由此引進新框架、新模型。然而在此過程中,如果沒有及時做好架構(gòu)積累和提前預(yù)估架構(gòu)變動的影響,可能會導(dǎo)致系統(tǒng)逐漸變得復(fù)雜,就像人體長期積累毒素一樣,最終帶來嚴(yán)重的后果。

總之,系統(tǒng)的架構(gòu)腐化可能源自于開發(fā)人員、組織和系統(tǒng)本身等多方面原因,需要我們在系統(tǒng)的開發(fā)、測試、運維和補救中,有針對性地逐一落實。「預(yù)防勝于治療」,預(yù)防性戰(zhàn)略是減少系統(tǒng)架構(gòu)腐化的關(guān)鍵環(huán)節(jié)。

缺少架構(gòu)師視角

產(chǎn)品需求把控:我們平時的研發(fā)工作中缺少架構(gòu)師思維,缺少結(jié)合產(chǎn)品、技術(shù)層面的全局把控,沒有在產(chǎn)品需求階段指出合理的需求方案,導(dǎo)致在開發(fā)階段出現(xiàn)需求不通臨時需求變更。

缺少系統(tǒng)分解思維:系統(tǒng)分解一般分為縱向分解和橫向分解,縱向分解是將整個系統(tǒng)拆分,從而將整體系統(tǒng)分解成下一級的子系統(tǒng)與組件。橫向分解是在系統(tǒng)分解成不同的邏輯層或服務(wù)后,對邏輯層進行分塊,確定層與層之間的關(guān)系。由于在系統(tǒng)設(shè)計的時候缺少分解思維,導(dǎo)致實現(xiàn)的系統(tǒng)“大而邊界不清晰”。

通常架構(gòu)師也不太會跟每一個需求,這就需要我們團隊中的高階同學(xué),負起必要的責(zé)任,尤其要基于技術(shù)細節(jié)盡量站在全局視角最好技術(shù)把關(guān)。

系統(tǒng)迭代機制

做項目而非做產(chǎn)品:軟件系統(tǒng)的開發(fā)和演進有很多驅(qū)動因素,導(dǎo)致系統(tǒng)更加復(fù)雜的是按照特定需求開發(fā)特定功能,也就是做項目的方式。每次都有明確的目標(biāo),而且這個目標(biāo)的方案多數(shù)也是設(shè)計好的。

做項目的方式對系統(tǒng)最直接的影響就是需求的一致性或幾次迭代,多個不同的項目作用在同一個系統(tǒng)上,為了解決不同的問題,單純的疊加功能,缺少對這個軟件系統(tǒng)的整體認知和規(guī)劃。而不像做產(chǎn)品,每一款產(chǎn)品都有一個愿景和核心要解決的問題,任何不符合愿景或者無法幫助解決核心問題的需求都是偽需求,不應(yīng)該被添加到這個系統(tǒng)中。

因此,以做項目的方式推進的軟件系統(tǒng),隨著項目不斷的推進,多個不相關(guān)或沒有經(jīng)過深思熟慮的需求疊加到系統(tǒng)中,也會不斷加劇軟件系統(tǒng)的復(fù)雜度。而事實就是我們的現(xiàn)狀就是按照項目制去進行軟件開發(fā),這種問題在所難免但是我們可以在同一個系統(tǒng)中做好業(yè)務(wù)分層,不同的業(yè)務(wù)盡量隔離。

設(shè)計規(guī)范把控

架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難,架構(gòu),系統(tǒng)架構(gòu),架構(gòu)

TechnicalDebtQuadrant上圖來自大名鼎鼎的“MartinFowler”,MartinFowler將技術(shù)債按照 魯莽的(Reckless)/謹慎的(Prudent) 以及 故意的(Deliberate)/無心的(Inadvertent) 劃分到4個不同的象限中。

謹慎的 且 故意的:這種場景很常見,是已知技術(shù)債的一種主要來源。為了讓產(chǎn)品快速投入市場,獲得更大的收益,通常團隊會選擇更快速的方案,開發(fā)成本低,時長短,但解決方案并不是最優(yōu),且可能只是臨時方案。然而,團隊對技術(shù)選擇做了詳盡的評估,了解技術(shù)債產(chǎn)生后給產(chǎn)品和架構(gòu)會帶來什么影響,后果是可估量的,甚至已經(jīng)安排好了未來的改進計劃。

魯莽的 且 故意的:相比上一個分類而言,團隊知道當(dāng)前的方案不是最優(yōu)選擇,但通常由于時間緊迫,實現(xiàn)當(dāng)前的業(yè)務(wù)需求是第一優(yōu)先級的,未對當(dāng)前的方案做細致的分析,因此對遺留技術(shù)債可能產(chǎn)生的影響是未知的,甚至具體產(chǎn)生了哪些問題也可能是未知的。

魯莽的 且 無心的:不計后果而又是無心之舉,這往往是因為團隊成員的認知還不足以判斷當(dāng)前的選擇是不是會帶來不良影響。這種技術(shù)債在技術(shù)債總體的占比很高,甚至可能比上面提到的第一種技術(shù)債更多。因為不管怎樣的團隊,人員的更替都是避免不了的,個人的經(jīng)驗不同,認知不同,在實現(xiàn)相同的功能時選擇的方案也是不同的,雖然可以通過一些社交活動來減少不同團隊成員的認知差異,如代碼評審,但想通過這種方式來避免技術(shù)債的產(chǎn)生,效果往往并不是很好。

謹慎的 且 無心的:這種技術(shù)債看上去讓人難以理解,既然每次都是深思熟慮,為什么還會有無心之失。然而,這種技術(shù)債確實也是無法避免的,甚至?xí)?jīng)常遇到,最簡單的莫過于當(dāng)下基于當(dāng)下的經(jīng)驗甚至業(yè)界最優(yōu)的一些實踐選擇的技術(shù)方案或者技術(shù)框架,而隨著技術(shù)的進步和發(fā)展,它們的弊端和問題也會逐漸顯現(xiàn)出來,這些過時的技術(shù)方案設(shè)計和框架也就成了技術(shù)債。

解決

技術(shù)債解決日?;?/span>研發(fā)團隊要有守護架構(gòu)的意識,在項目日常開發(fā)中,除了產(chǎn)品的業(yè)務(wù)需求外,應(yīng)該規(guī)劃一部分工作用于架構(gòu)的優(yōu)化,修復(fù)那些已知且有解決方案的技術(shù)債,這樣才能持續(xù)保證軟件系統(tǒng)的響應(yīng)能力和產(chǎn)品質(zhì)量。

明確研發(fā)規(guī)范,加強管理:對于已知且無解決方案的問題,只是沒有深入思考對系統(tǒng)的影響,對于這部分技術(shù)債,為了讓這些技術(shù)債在產(chǎn)生前就避免,或者引導(dǎo)到可以快速解決的方向,首先,需要建立團隊的技術(shù)規(guī)范和標(biāo)準(zhǔn),讓每個決策都有依據(jù)。其次,加強流程上的管理,建立架構(gòu)評審委員會,對架構(gòu)的修改進行評審,一方面規(guī)避問題,另一方面根據(jù)問題完善規(guī)范和標(biāo)準(zhǔn)。

持續(xù)關(guān)注技術(shù)發(fā)展趨勢,提前規(guī)劃:隨著技術(shù)的不斷發(fā)展,很多幾年前被認為非常先進的技術(shù)表現(xiàn)出了一些弊端,也逐漸在被新的技術(shù)替代。研發(fā)團隊需要持續(xù)保持對技術(shù)發(fā)展趨勢的關(guān)注,探索是否有更優(yōu)的解決方案文章來源地址http://www.zghlxwxcb.cn/news/detail-516876.html

到了這里,關(guān)于架構(gòu)師進階之路 - 架構(gòu)優(yōu)化為什么難的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • DDD架構(gòu)為什么應(yīng)該首選六邊形架構(gòu)?

    分層架構(gòu)的一個重要原則是:每層只能與位于其下方的層發(fā)生耦合。 分層架構(gòu)分兩種:一種是嚴(yán)格分層架構(gòu),規(guī)定某層只能與直接位于其下方的層發(fā)生耦合;另一種是松散分層架構(gòu),允許任意上方層與任意下方層發(fā)生耦合。 下圖是一個典型的DDD傳統(tǒng)分層架構(gòu)。 以上分層架構(gòu)

    2024年02月16日
    瀏覽(28)
  • 1.JavaEE進階篇 - 為什么要學(xué)習(xí)SpringBoot呢?

    1.JavaEE進階篇 - 為什么要學(xué)習(xí)SpringBoot呢?

    大家好,我是曉星航。今天為大家?guī)淼氖?JavaEE 進階導(dǎo)讀 相關(guān)的講解!?? 學(xué)習(xí)框架相當(dāng)于從“小作坊”到“工廠”的升級,小作坊什么都要自己做,工廠是組件式裝配,特點就是高效。 框架更加易用、簡單且高效。 框架主要體現(xiàn)在思維方式和編程思想上,與代碼語言無關(guān)

    2024年04月15日
    瀏覽(22)
  • 現(xiàn)代軟件為什么要采用微服架構(gòu)

    現(xiàn)代軟件采用微服務(wù)架構(gòu)是為了解決傳統(tǒng)單體架構(gòu)在開發(fā)、部署和維護大型應(yīng)用時面臨的一系列問題。以下是采用微服務(wù)架構(gòu)的主要優(yōu)勢: 1. **模塊化和組件化**:微服務(wù)通過將應(yīng)用拆分為一系列小型、松耦合的服務(wù)來提高模塊化水平。每個服務(wù)都是圍繞特定的業(yè)務(wù)功能構(gòu)建

    2024年04月26日
    瀏覽(20)
  • 為什么華為、阿里、字節(jié)跳動、微軟等都走上了云原生和數(shù)字化之路?

    為什么華為、阿里、字節(jié)跳動、微軟等都走上了云原生和數(shù)字化之路?

    親愛的開發(fā)者朋友們好哇, 前幾天我發(fā)了篇文章,請各位朋友幫忙給最新一期的《新程序員》選封面,并且和大家說內(nèi)容已經(jīng)全部完成,即將出版和大家正式見面。今天,它來啦!《新程序員003:云原生和全面數(shù)字化實踐》正式開啟預(yù)售,現(xiàn)在下單,在元旦后將正式開放電子

    2024年02月05日
    瀏覽(31)
  • 為什么王者榮耀不使用微服務(wù)架構(gòu)?

    來源:zhihu.com/question/359630395/answer/954452799 今天,在知乎上看到這樣一個問題:\\\"為什么游戲公司的server不愿意微服務(wù)化?\\\" 最近面試了一家游戲公司(滿大間的,有上市) 我問他,公司有沒有做微服務(wù)架構(gòu)的打算及考量? 他很驚訝的說,我沒聽說過微服務(wù)耶,你可以解釋一下

    2024年02月05日
    瀏覽(22)
  • 為什么說過早優(yōu)化是萬惡之源?

    為什么說過早優(yōu)化是萬惡之源?

    ??Donald Knuth(高德納)是一位計算機科學(xué)界的著名學(xué)者和計算機程序設(shè)計的先驅(qū)之一。他被譽為計算機科學(xué)的“圣經(jīng)”《計算機程序設(shè)計藝術(shù)》的作者,提出了著名的“大O符號”來描述算法的時間復(fù)雜度和空間復(fù)雜度,開發(fā)了TeX系統(tǒng)用于排版科技文獻,獲得過圖靈獎、馮

    2023年04月27日
    瀏覽(41)
  • 云架構(gòu)的思考1--云計算有什么不同,為什么上云

    云計算這個詞提出來已經(jīng)很久(大概在2006年),在10年前聽到這個東西,都說是一個未來趨勢?,F(xiàn)在這個東西已經(jīng)不是一個未來趨勢,而是已經(jīng)滲入到方方面面的一個服務(wù),現(xiàn)在一個中小型的創(chuàng)業(yè)公司信息化都會優(yōu)先選擇云;任何一個架構(gòu)師都需要熟悉云上架構(gòu)的一些內(nèi)容。

    2024年02月04日
    瀏覽(19)
  • Doris架構(gòu)包含哪些技術(shù)?為什么進行技術(shù)整合?

    Doris架構(gòu)包含哪些技術(shù)?為什么進行技術(shù)整合?

    Doris主要整合了Google Mesa(數(shù)據(jù)模型),Apache Impala(MPP Query Engine)和Apache ORCFile (存儲格式,編碼和壓縮)的技術(shù)。 為什么要將這三種技術(shù)整合? Mesa可以滿足我們許多存儲需求的需求,但是Mesa本身不提供SQL查詢引擎。 Impala是一個非常好的MPP SQL查詢引擎,但是缺少完美的分布式存儲引

    2024年02月11日
    瀏覽(29)
  • 單元測試優(yōu)化:為什么要對程序進行測試?測試有什么好處?

    單元測試 (Unit Testing)又稱為模塊測試, 是針對程序模塊(軟件設(shè)計的最小單位)來進行正確性檢驗的測試工作。 程序單元是應(yīng)用的最小可測試部件。簡單來說,就是測試數(shù)據(jù)的穩(wěn)定性是否達到程序的預(yù)期。 我們?nèi)粘i_發(fā)時可能在不經(jīng)意間寫錯,如果等到最后階段去檢驗項

    2024年02月13日
    瀏覽(32)
  • 為什么說 QUIC 協(xié)議是現(xiàn)代化網(wǎng)絡(luò)通信的未來之路及如何實現(xiàn)QUIC服務(wù)器

    ??作者簡介: 小曾同學(xué).com,一個致力于測試開發(fā)的博主??,主要職責(zé):測試開發(fā)、CI/CD 如果文章知識點有錯誤的地方,還請大家指正,讓我們一起學(xué)習(xí),一起進步。?? 座右銘:不想當(dāng)開發(fā)的測試,不是一個好測試??。 如果感覺博主的文章還不錯的話,還請點贊、收藏哦

    2024年04月23日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包