精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

合適的架構(gòu)才是最好的架構(gòu)?

jf_ro2CN3Fa ? 來(lái)源:芋道源碼 ? 2023-05-30 09:55 ? 次閱讀
Andrew Hunt 和 David Thomas 的《程序員修煉之道:從小工到專家》無(wú)疑是軟件開(kāi)發(fā)者們最喜愛(ài)的書籍之一。但是,我有時(shí)會(huì)想,到底有多少軟件工程師真正閱讀過(guò)這本書呢?

盡管這本書并沒(méi)有詳細(xì)闡述微服務(wù)和單體架構(gòu)的方方面面,但它也提供了足夠多的信息 —— 甚至可以說(shuō)是全部信息 —— 幫助我們做出最好的,或者說(shuō)是最務(wù)實(shí)的決定,來(lái)構(gòu)建軟件。僅僅是目錄本身就值得稱贊!但是,即使過(guò)去了 25 年,這個(gè)行業(yè)似乎仍未領(lǐng)會(huì)到其最基本的教誨 —— 那就是,根據(jù)實(shí)際情況選擇合適的工具 。

另一個(gè)大名鼎鼎的人物,就是 Martin Fowler,他因遵循 “根據(jù)實(shí)際情況選擇合適的工具” 這一理念而嶄露頭角的。任何熟悉持續(xù)重構(gòu)這一概念的人,也很可能聽(tīng)過(guò) Martin Fowler 的名字。他甚至寫了一本專門講述這個(gè)主題的書。

但如果你不想讀或者買不起,這里有一個(gè)極簡(jiǎn)的版本:“始終保持重構(gòu)。如果你接觸到代碼,并且有能力改進(jìn)它,那就去改進(jìn),但絕不提前優(yōu)化。 ” 這本書的精髓被濃縮為這句話。在這本書里,他不僅分享了他對(duì)重構(gòu)的見(jiàn)解,還討論了許多其他現(xiàn)代軟件開(kāi)發(fā)的主題,比如架構(gòu),更具體地說(shuō),單體架構(gòu)和微服務(wù)。

相反,從單體開(kāi)始,使它保持模塊化,一旦單體成為問(wèn)題時(shí)把它分解成微服務(wù)。

——martinfowler.com

在 2023 年初,React 的開(kāi)發(fā)人員和維護(hù)人員的行為讓開(kāi)發(fā)者們大吃一驚,現(xiàn)在又出現(xiàn)在了亞馬遜 Prime Video 的開(kāi)發(fā)者身上,最近他們發(fā)表了一篇文章,討論了從微服務(wù)轉(zhuǎn)向單體架構(gòu)的過(guò)程(如果你還沒(méi)讀過(guò),為了理解背景,請(qǐng)閱讀)。這引發(fā)了很大的討論,因?yàn)榭紤]到亞馬遜還擁有 AWS,在其上建立的無(wú)服務(wù)器和微服務(wù)架構(gòu)遠(yuǎn)比我們都應(yīng)該接受的多 —— 但那是另一個(gè)故事了。

那么,到底發(fā)生什么事情了呢?好吧,想象一下。懸崖邊上的第一只羊跳了下去,然后其他羊都跟著跳了下去。但是后面的羊都沒(méi)注意到,第一只羊 —— 亞馬遜 —— 是穿著降落傘跳的。后面的羊都沒(méi)有注意到。不幸的是,這種情況并不少見(jiàn),而這也是我多年來(lái)一直在反對(duì)的。

僅僅因?yàn)榇笮?a target="_blank">科技公司正在采用一些新的架構(gòu)、工具或庫(kù),并不意味著它對(duì)每個(gè)人,包括推出它的那個(gè)公司,都是可行的。還記得谷歌的 Angular.js 嗎?就是這個(gè)道理……

亞馬遜 Prime Video 的故事與此非常非常相似。推動(dòng)了云服務(wù)發(fā)展的這家公司的部分部門,已經(jīng)意識(shí)到了 Martin Fowler 在 2014 年非常恰當(dāng)?shù)刂赋龅囊粋€(gè)事實(shí) —— 這種模式可能并不適用,而且還沒(méi)有足夠的證據(jù)來(lái)證明它會(huì)有效。當(dāng)然,這并不意味著亞馬遜就不應(yīng)該嘗試這種架構(gòu),或者不應(yīng)該構(gòu)建支持這種架構(gòu)的 AWS 產(chǎn)品。Martin 本人也同意,這種嘗試是有價(jià)值的。但是,嘗試與采納是有很大差異的,在產(chǎn)生實(shí)際效果之前的盲目嘗試和盲目采納差異更大。

盡管對(duì)許多人來(lái)說(shuō),亞馬遜開(kāi)發(fā)者決定放棄部分微服務(wù),轉(zhuǎn)而選擇單體架構(gòu)的決定可能令人震驚,但這其實(shí)一點(diǎn)都不出人意料。微服務(wù)是否能成功的可能性一直是五五開(kāi)。

與那些永遠(yuǎn)看好未來(lái)、天真樂(lè)觀的人不一樣,軟件開(kāi)發(fā)并非非黑即白,無(wú)論它最終如何編譯成 0 和 1。這就是為什么我們需要回歸到由 Andrew Hunt 和 David Thomas 在《程序員修煉之道:從小工到專家》中闡述的基本原則,這是每一個(gè)緊隨亞馬遜步伐,一頭扎向同樣深淵的人都應(yīng)該做的。

亞馬遜 Prime Video 團(tuán)隊(duì)的決定并不應(yīng)被視為一種普遍的方案,盡管我確信會(huì)有許多人走進(jìn)辦公室,或者登錄 Slack,準(zhǔn)備召開(kāi)緊急的工程全員會(huì)議,提出一個(gè)計(jì)劃,要么恢復(fù)原狀,要么將他們的微服務(wù) “單體化”。我相信我不必須這么說(shuō),但請(qǐng)你不要這樣做。如果你最終運(yùn)行的微服務(wù)是從解決實(shí)際問(wèn)題的單體架構(gòu)中剝離出來(lái)的,那么你顯然已經(jīng)做出了正確的選擇,推翻這個(gè)決定至少不會(huì)解決任何問(wèn)題。

另一方面,如果你從一開(kāi)始就由于像 “其他人都在這么做” 這樣的輕率理由而采用微服務(wù),那么你可能需要坐下來(lái)對(duì)你的架構(gòu)進(jìn)行一次真正的成本效益分析,甚至可能需要與亞馬遜 Prime Video 的案例進(jìn)行對(duì)比。他們勇敢地承認(rèn)微服務(wù)是錯(cuò)誤的選擇,這至少表明這個(gè)決定并非出于市場(chǎng)炒作。你的分析結(jié)果可能會(huì)證明,采用單體架構(gòu)所解決的問(wèn)題少于其帶來(lái)的問(wèn)題和投入,在這種情況下,你應(yīng)當(dāng)堅(jiān)持你現(xiàn)有的選擇。

Martin Fowler 和我都贊同一個(gè)簡(jiǎn)單的事實(shí),那就是

我們?cè)谟懻撨@個(gè)話題,對(duì)前端開(kāi)發(fā)也同樣適用。微前端是一種可能的解決復(fù)雜前端問(wèn)題的方案,但這并不一定意味著它是每個(gè)復(fù)雜前端的正確解決方案。

這篇文章就是要說(shuō)明,不要盲目追隨大型科技公司。務(wù)實(shí)的編程依然占主導(dǎo)地位,根據(jù)實(shí)際情況選擇合適的工具永遠(yuǎn)是最佳建議。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    608

    瀏覽量

    27337
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    510

    瀏覽量

    25451
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    950

    瀏覽量

    29768

原文標(biāo)題:合適的架構(gòu)才是最好的架構(gòu)?

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    軟件架構(gòu)

    軟件架構(gòu)軟件架構(gòu)軟件架構(gòu)
    發(fā)表于 03-29 21:54

    哪款放大器才是最好的驅(qū)動(dòng)器?

    哪款放大器才是最好的驅(qū)動(dòng)器?ADC架構(gòu)、分辨率、信號(hào)帶寬和其他特定應(yīng)用細(xì)節(jié)在決定最佳方法上都發(fā)揮著作用。在本文中,我們?cè)隍?qū)動(dòng)SAR(逐次逼近寄存器)ADC的情況下將考慮一下這些問(wèn)題。
    發(fā)表于 04-09 06:05

    ARM架構(gòu)是什么

    從單片機(jī)轉(zhuǎn)到ARM,主要需要學(xué)習(xí)ARM的架構(gòu),ARM相比單片機(jī)多了一些外設(shè)和總線。在僅僅是裸奔的情況下,如果熟悉了ARM架構(gòu),那么我認(rèn)為使用任何ARM架構(gòu)的芯片和用單片機(jī)將沒(méi)有區(qū)別。ARM架構(gòu)
    發(fā)表于 07-01 09:23

    ARMARM的架構(gòu)與ARM架構(gòu)的區(qū)別

    目錄文章目錄目錄ARMARM 的架構(gòu)x86 架構(gòu)與 ARM 架構(gòu)的區(qū)別ARM 的技術(shù)實(shí)現(xiàn)ARMARM 架構(gòu)過(guò)去稱作進(jìn)階精簡(jiǎn)指令集機(jī)器(Advanced RISC Machine,更早稱
    發(fā)表于 07-16 06:43

    arm架構(gòu)和cortex架構(gòu)

    arm架構(gòu)和cortex架構(gòu),ARM Cortex內(nèi)核系列提供非常廣泛的具有可擴(kuò)展性的性能選項(xiàng),設(shè)計(jì)人員有機(jī)會(huì)在多種選項(xiàng)中選擇最適合自身應(yīng)用的內(nèi)核,而非千篇一律的采用同一方案。Cortex系列組合
    發(fā)表于 07-27 07:02

    淺析ARM架構(gòu)與STM32系統(tǒng)架構(gòu)

    ARM架構(gòu)是怎樣構(gòu)成的?STM32系統(tǒng)架構(gòu)地基本原理是什么?
    發(fā)表于 10-20 06:10

    軟件架構(gòu)存在的意義

    1、前言在嵌入式軟件開(kāi)發(fā),包括單片機(jī)開(kāi)發(fā)中,軟件架構(gòu)對(duì)于開(kāi)發(fā)人員是一個(gè)必須認(rèn)真考慮的問(wèn)題。軟件架構(gòu)對(duì)于系統(tǒng)整體的穩(wěn)定性和可靠性是非常重要的,一個(gè)合適的軟件架構(gòu)不僅結(jié)構(gòu)清晰,并且便于開(kāi)發(fā)
    發(fā)表于 10-27 09:34

    如何來(lái)選擇合適電源逆變器的隔離架構(gòu)

    在電源逆變器的實(shí)際應(yīng)用中,應(yīng)該如何來(lái)選擇合適的隔離架構(gòu),以及對(duì)電路和元件的選擇要求有哪些,電工天下小編整理了有關(guān)《電源逆變器應(yīng)用中選擇隔離架構(gòu)電路和元件的要求》,希望對(duì)大家有所幫助。電機(jī)和電源控制
    發(fā)表于 11-15 06:02

    什么是RISC架構(gòu)?RISC架構(gòu)的優(yōu)點(diǎn)與缺點(diǎn)

    什么是RISC架構(gòu)?RISC架構(gòu)的優(yōu)點(diǎn)與缺點(diǎn)
    發(fā)表于 02-27 11:22

    微服務(wù)架構(gòu)多微才合適

    大家也都認(rèn)可,隨著數(shù)據(jù)量、流量、業(yè)務(wù)復(fù)雜度的提升,服務(wù)化架構(gòu)架構(gòu)演進(jìn)中的必由之路,今天要討論的話題是:微服務(wù)架構(gòu)多“微”才合適
    的頭像 發(fā)表于 02-07 17:14 ?3345次閱讀
    微服務(wù)<b class='flag-5'>架構(gòu)</b>多微才<b class='flag-5'>合適</b>

    什么樣子的物聯(lián)網(wǎng)架構(gòu)才是合適

    隨著公司采用物聯(lián)網(wǎng),他們面臨著影響網(wǎng)絡(luò)和系統(tǒng)架構(gòu)的連接性、數(shù)據(jù)量和安全性挑戰(zhàn)。
    發(fā)表于 03-23 15:36 ?604次閱讀

    ARM Cortex-A7合適CPU處理應(yīng)用才是最好的 (2)

    ARM Cortex-A7,ARM史上最省功耗處理器橫空出世!更小身材,更高性能,術(shù)業(yè)有專攻,再也沒(méi)有“大材小用”,再也沒(méi)有“力所不及”,我們相信,用最合適的CPU處理最合適的任務(wù),才是最好
    的頭像 發(fā)表于 07-02 12:52 ?4179次閱讀

    ARM Cortex-A7合適CPU處理應(yīng)用才是最好的 (1)

    ARM Cortex-A7,ARM史上最省功耗處理器橫空出世!更小身材,更高性能,術(shù)業(yè)有專攻,再也沒(méi)有“大材小用”,再也沒(méi)有“力所不及”,我們相信,用最合適的CPU處理最合適的任務(wù),才是最好
    的頭像 發(fā)表于 07-02 12:51 ?8578次閱讀

    什么是架構(gòu)架構(gòu)本質(zhì)

    Linux有架構(gòu),MySQL有架構(gòu),JVM也有架構(gòu),使用Java開(kāi)發(fā)、MySQL存儲(chǔ)、跑在Linux上的業(yè)務(wù)系統(tǒng)也有架構(gòu),應(yīng)該關(guān)注哪一個(gè)?想要清楚以上問(wèn)題需要梳理幾個(gè)有關(guān)系又相似的概念
    的頭像 發(fā)表于 09-22 14:18 ?1000次閱讀

    什么是系統(tǒng)架構(gòu) 為什么要做架構(gòu)設(shè)計(jì)

    以上的定義從高層抽象視角對(duì)什么是架構(gòu)給予了自己的回答,相比之下,Neil Ford 在《軟件架構(gòu)基礎(chǔ)》一書中對(duì)架構(gòu)給出了更具象的闡述,其從架構(gòu)組成元素入手,從更偏向?qū)嵺`的角度對(duì)
    的頭像 發(fā)表于 11-10 10:19 ?4324次閱讀