軟件架構(gòu)淺譯

OOP教義的宗旨是你弦,讓軟件開發(fā)過程變得更容易考传。 —— 《Java語言程序設(shè)計(jì)》

平臺(tái)團(tuán)隊(duì)的主要目的應(yīng)該是其屏,讓使用平臺(tái)的人,減少認(rèn)知負(fù)擔(dān)措译。 —— 《AIDevOps》

軟件開發(fā)(Software Development)和軟件架構(gòu)(Software Architecture)的區(qū)別是很模糊的别凤。有的人會(huì)說,這兩個(gè)概念沒有區(qū)別领虹,架構(gòu)只是編程者開發(fā)過程的一個(gè)擴(kuò)展规哪;有的人則指出,這兩個(gè)概念之間有著巨大的鴻溝塌衰,如果想要跨越诉稍,那么必須堅(jiān)持概念抽象并且擺脫細(xì)節(jié)糾纏。

Well最疆,模糊的邊界會(huì)引起一個(gè)有趣的問題:我們?nèi)绾螐囊环N角色到另一種角色呢杯巨?

在軟件開發(fā)過程中,有一些關(guān)鍵的指標(biāo)用來區(qū)分“架構(gòu)”和“開發(fā)”: 量級的增長努酸、抽象層級的增長服爷、決策重要性的增長。軟件架構(gòu)获诈,是用更全局的視角仍源、更宏大的圖景來理解軟件整體是如何運(yùn)轉(zhuǎn)的√蛳眩或許镜会,這個(gè)角度能夠區(qū)分“架構(gòu)”和“開發(fā)”,但并不能回答“如何從一種角色到另一種角色”终抽,同理戳表,它也不能回答“你是不是一個(gè)軟件架構(gòu)師”桶至,“誰能做出好的軟件架構(gòu)”。

經(jīng)驗(yàn)非常重要匾旭,并且你必須看的很深镣屹,想的更多。

你不會(huì)因?yàn)槟炒温殬I(yè)的晉升就突然成為一名架構(gòu)師价涝。架構(gòu)師是一個(gè)角色女蜈,而不是一種等級。成為一名架構(gòu)師是一個(gè)漫長的色瘩、演變的過程伪窖,你必須在這個(gè)過程中積累足夠的經(jīng)驗(yàn)和自信。

當(dāng)觀察其他的架構(gòu)師時(shí)居兆,你會(huì)發(fā)現(xiàn)他們除了都有一把年紀(jì)之外覆山,還有許多不同的品質(zhì),比如:項(xiàng)目的參與度泥栖、影響力簇宽、領(lǐng)導(dǎo)力、以及特殊的職責(zé)任務(wù)吧享。廣義上魏割,大多數(shù)項(xiàng)目中的軟件架構(gòu)能夠被拆分成兩塊:定義架構(gòu)、保證交付钢颂。

架構(gòu)的定義

設(shè)計(jì)架構(gòu)钞它,顧名思義,就是厘清需求并設(shè)計(jì)系統(tǒng)滿足它殊鞭。但在實(shí)際工作中遭垛,架構(gòu)并沒有那么簡單,取決于“你的投入程度”和“你對待自身角色的嚴(yán)肅程度”钱豁,它會(huì)在某個(gè)區(qū)間內(nèi)波動(dòng)耻卡。

  • 非功能性需求的管理
    開發(fā)者一般會(huì)持續(xù)追問用戶想要的功能特征,而很少問他們想要的系統(tǒng)品質(zhì)牲尺。有時(shí)候業(yè)務(wù)方會(huì)說系統(tǒng)要快卵酪,但“快”這個(gè)詞太主觀了。非功能性需求必須準(zhǔn)確谤碳、可度量溃卡、可完成、可測試蜒简。大多數(shù)非功能性需求是一些技術(shù)的天然屬性瘸羡,并且會(huì)直接影響軟件架構(gòu)。

Clearly Define Harder Than Maybe Assume

  • 系統(tǒng)設(shè)計(jì)
    每一個(gè)軟件系統(tǒng)都有一套設(shè)計(jì)搓茬,但不是每一個(gè)軟件系統(tǒng)都有一套架構(gòu)犹赖。
    架構(gòu)一定是設(shè)計(jì)队他,而設(shè)計(jì)不一定是架構(gòu)。架構(gòu)是重要的設(shè)計(jì)峻村,架構(gòu)給出被強(qiáng)制執(zhí)行的限制麸折,并在限制基礎(chǔ)上解決問題。 架構(gòu)是框架粘昨、綱領(lǐng)垢啼、原則和技術(shù)預(yù)言。

Define From Blank Harder Than Re-use From Other

  • 技術(shù)選型
    技術(shù)選型包括但不限于復(fù)雜度张肾、三方依賴芭析、技術(shù)策略、部署方案吞瞪、升級政策馁启、端用戶環(huán)境。技術(shù)選型的本質(zhì)是管理風(fēng)險(xiǎn)尸饺,既要知道選型帶來的高復(fù)雜度和不確定性进统,也要知道選型帶來的好處助币。

Confidently Evaluate Harder Than Easily Pick

  • 設(shè)計(jì)評估
    當(dāng)你在設(shè)計(jì)軟件時(shí)浪听,你需要問自己這套架構(gòu)可行么?我會(huì)有三個(gè)思考方向眉菱,滿足非功能性需求迹栓,提供實(shí)現(xiàn)功能需求的框架、以及足夠的空間去解決潛在的業(yè)務(wù)問題俭缓。 實(shí)際上克伊,我們在持續(xù)不斷的驗(yàn)證架構(gòu)可行,前期UML設(shè)計(jì)圖的評審华坦、中期反復(fù)的測試愿吹、后期線上的監(jiān)控。越早驗(yàn)證系統(tǒng)惜姐,就能降低更多的風(fēng)險(xiǎn)犁跪。

Prove Harder Than Assume

  • 架構(gòu)協(xié)作
    軟件系統(tǒng)幾乎不會(huì)在孤立中存在,從需要理解并認(rèn)同架構(gòu)的實(shí)際開發(fā)者歹袁,到對系統(tǒng)的安全性坷衍、維護(hù)性等感興趣的人,架構(gòu)一定需要被人理解条舔。
    為了軟件產(chǎn)品的成功枫耳,架構(gòu)師有必要和系統(tǒng)相關(guān)的人密切合作,以便保證架構(gòu)能夠和環(huán)境完美的集成孟抗。

Involved Work Harder Than Delivered Document

架構(gòu)的交付

同“定義”一樣迁杨,取決于“架構(gòu)師的投入程度”钻心,交付也會(huì)在一個(gè)區(qū)間內(nèi)波動(dòng)。

  • 架構(gòu)的所有權(quán)
    為了讓架構(gòu)成功的落地铅协,需要有個(gè)人堅(jiān)持架構(gòu)原則并不斷向開發(fā)團(tuán)隊(duì)確認(rèn)扔役,在整個(gè)開發(fā)周期中負(fù)起責(zé)任。

Take Ownership Better Than Hand Over

  • 領(lǐng)導(dǎo)力
    在開發(fā)過程中警医,團(tuán)隊(duì)是否處于正確的方向亿胸,是否需要技術(shù)引領(lǐng),是否做了合適的技術(shù)決策预皇,作為架構(gòu)師侈玄,有必要保證每件事都被認(rèn)真對待了。

Take Leadership Better Than Receive Direction

  • 教練和指導(dǎo)
    領(lǐng)導(dǎo)是在團(tuán)隊(duì)層面保證開發(fā)在正確的方向上穩(wěn)步前進(jìn)吟温,個(gè)體的支持和幫助序仙,在不少團(tuán)隊(duì)中被忽視了,這會(huì)增強(qiáng)個(gè)人的能力和事業(yè)鲁豪。值得注意的是潘悼,在架構(gòu)和設(shè)計(jì)上提供指導(dǎo),和解決變成問題是有很大差距的爬橡。

Coaching and Mentoring Better Than Being coached or mentored

  • 質(zhì)量保證
    項(xiàng)目完全有可能因?yàn)橐粋€(gè)bug而導(dǎo)致失敗治唤。
    質(zhì)量保證,不僅僅是代碼審查糙申,也可以是代碼規(guī)范宾添、設(shè)計(jì)原則、源碼分析柜裸、AT測試缕陕、覆蓋率檢查等等CI工具,不同的人會(huì)看重不同的事情疙挺,我的是架構(gòu)的重要性扛邑,復(fù)雜度和高度可視化。

Do Something Better Than Do Nothing

  • 設(shè)計(jì)铐然、開發(fā)蔬崩、測試
    回到架構(gòu)角色開發(fā)者的本質(zhì),設(shè)計(jì)架構(gòu)锦爵、開發(fā)實(shí)現(xiàn)舱殿、測試交付。和開發(fā)團(tuán)隊(duì)密切接觸险掀,不是要求你天天寫代碼沪袭,是要求你持續(xù)的投入項(xiàng)目,幫助構(gòu)造和交付。不得不說冈绊,寫代碼也是有必要的侠鳄,它會(huì)讓你感受到開發(fā)者在架構(gòu)設(shè)計(jì)中的痛點(diǎn),從而幫助你從開發(fā)者的視角更好地理解架構(gòu)死宣。
    當(dāng)然伟恶,代碼級別的介入在有些場合并不實(shí)際,因?yàn)樵凇澳菢哟蟆钡捻?xiàng)目中毅该,架構(gòu)師需要關(guān)心的事太多了博秫。

Being Involved Better Than Watching Aside

尾聲

無論你是否感受到了那條虛無的線,文章中提到的點(diǎn)在不同的團(tuán)隊(duì)中確有不同眶掌,“不同”取決于架構(gòu)師的“投入程度”和“對待角色的嚴(yán)肅程度”挡育。 大多數(shù)開發(fā)者不會(huì)在某一天醒來,然后突然宣布自己是一個(gè)架構(gòu)師朴爬。在職業(yè)中開始架構(gòu)是一個(gè)漸變的過程即寒,我敢打賭,有一些開發(fā)者召噩,和他們的職業(yè)頭銜不相符的母赵,已經(jīng)開始承擔(dān)部分架構(gòu)的角色了。

參與軟件系統(tǒng)的開發(fā)具滴,和自主設(shè)計(jì)并負(fù)責(zé)軟件系統(tǒng)凹嘲,是非常不一樣的。是否跨過開發(fā)和架構(gòu)中間的線抵蚊,完全取決于你自己施绎,對自己作出準(zhǔn)確的角色定義是跨越的開始溯革。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贞绳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子致稀,更是在濱河造成了極大的恐慌冈闭,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抖单,死亡現(xiàn)場離奇詭異萎攒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)矛绘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門耍休,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人货矮,你說我怎么就攤上這事羊精。” “怎么了囚玫?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵喧锦,是天一觀的道長读规。 經(jīng)常有香客問我,道長燃少,這世上最難降的妖魔是什么束亏? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮阵具,結(jié)果婚禮上碍遍,老公的妹妹穿的比我還像新娘。我一直安慰自己阳液,他們只是感情好雀久,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趁舀,像睡著了一般赖捌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矮烹,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天越庇,我揣著相機(jī)與錄音,去河邊找鬼奉狈。 笑死卤唉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仁期。 我是一名探鬼主播桑驱,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跛蛋!你這毒婦竟也來了熬的?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤赊级,失蹤者是張志新(化名)和其女友劉穎押框,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體理逊,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橡伞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晋被。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兑徘。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖羡洛,靈堂內(nèi)的尸體忽然破棺而出挂脑,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布最域,位于F島的核電站谴分,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏镀脂。R本人自食惡果不足惜牺蹄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望薄翅。 院中可真熱鬧沙兰,春花似錦、人聲如沸翘魄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暑竟。三九已至斋射,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間但荤,已是汗流浹背罗岖。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腹躁,地道東北人桑包。 一個(gè)月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像纺非,于是被迫代替她去往敵國和親哑了。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容