架構(gòu)設(shè)計(jì)00-架構(gòu)師知識(shí)體系03-怎么學(xué)習(xí)架構(gòu)設(shè)計(jì)?

架構(gòu)設(shè)計(jì)系列文章,請(qǐng)參見連接。

背景

前面幾篇文章說了很多問題,什么是架構(gòu)、架構(gòu)為什么重要架構(gòu)師知識(shí)體系等文章,也翻譯了《如何系統(tǒng)學(xué)習(xí)軟件設(shè)計(jì)和架構(gòu)》。而作者在從業(yè)的這么多年以來,也一直在學(xué)習(xí)架構(gòu)設(shè)計(jì)。而業(yè)界也有很多架構(gòu)設(shè)計(jì)的方法論,理論基礎(chǔ)。

對(duì)于系統(tǒng)的學(xué)習(xí)架構(gòu)作者也沒有很好的方法,去系統(tǒng)的學(xué)習(xí)架構(gòu)方法。作者只能盡量的去查找并學(xué)習(xí)架構(gòu)到底應(yīng)該怎樣學(xué)習(xí)。這里對(duì)于這些方面進(jìn)行逐個(gè)的分析與深入,以幫助作者與讀者更好去學(xué)習(xí)架構(gòu)設(shè)計(jì)。

問題定義

學(xué)習(xí)一項(xiàng)事物的時(shí)候,做好的方式是帶著問題去學(xué)習(xí)。那么學(xué)習(xí)架構(gòu)設(shè)計(jì)時(shí)我們應(yīng)該帶著什么問題去學(xué)習(xí)呢?

  1. 架構(gòu)到底干了什么?能給我們帶來什么?
  2. 誰驅(qū)動(dòng)了架構(gòu)設(shè)計(jì)?誰來做架構(gòu)設(shè)計(jì)?
  3. 怎么輸出一個(gè)架構(gòu)?怎么做架構(gòu)設(shè)計(jì)?
  4. 用什么做架構(gòu)設(shè)計(jì)?
  5. 什么架構(gòu)才是好架構(gòu)?
  6. 架構(gòu)怎么落地實(shí)施?架構(gòu)落地偏差怎么樣解決?
  7. 實(shí)踐中的架構(gòu)模式有哪些?

前面文章中也提過IASA這個(gè)組織,這個(gè)組織提出來架構(gòu)師的技能圖表。這個(gè)技能表比作者之前編寫的《架構(gòu)師知識(shí)體系》更加以人為本的方式進(jìn)行架構(gòu)師技能描述。下面會(huì)總結(jié)IASA的技能表和其他的一些內(nèi)容進(jìn)行學(xué)習(xí)架構(gòu)設(shè)計(jì)的方法。

思維轉(zhuǎn)變

在解決上面的問題之前,需要做一些簡單但是很難的事情。從一個(gè)程序員升級(jí)到架構(gòu)師并不像從初級(jí)到中級(jí)、再到高級(jí)的這個(gè)過程,而從程序員到架構(gòu)師是一個(gè)質(zhì)的變化。所以說升級(jí)到架構(gòu)師時(shí)需要做下面這幾件簡單而又很難的事情。

  • 第一條思維:從代碼跳出來才可以真正的學(xué)習(xí)架構(gòu)

現(xiàn)在很多高級(jí)程序員或者初級(jí)架構(gòu)師有一個(gè)重要的誤區(qū):"架構(gòu)就是框架"、"架構(gòu)就是《高級(jí)》技術(shù)"。作者只能說架構(gòu)和技術(shù)是兩個(gè)領(lǐng)域的東西。架構(gòu)是追求美的,技術(shù)是準(zhǔn)求準(zhǔn)的。兩個(gè)事物的目標(biāo)都不一樣,怎么可能是一種東西。

  • 第二條思維:最新的并不是最好的。

適時(shí)適事分析決斷是最新的技術(shù)并不是最好的思維的精華。作者一直堅(jiān)持著一件事:所有的技術(shù)都有它適用的范圍,一項(xiàng)技術(shù)不可能適用于所有的場(chǎng)景。需要根據(jù)具體的使用場(chǎng)景去確定在一個(gè)領(lǐng)域內(nèi)使用的具體技術(shù)。例如:通信,在iot場(chǎng)景下的通信最好的方式是mqtt。而在互聯(lián)網(wǎng)場(chǎng)景的通信最好的方式是HTTP,在微服務(wù)場(chǎng)景下最好的通信方式是rpc。

  • 第三條思維:方法論是必不可缺的。

作為一個(gè)必須要有理論基礎(chǔ)。理論基礎(chǔ)在軟件行業(yè)中很多都是經(jīng)驗(yàn),而不是具體的公式推導(dǎo)。這些方法論有很多很多,在不同的方面體現(xiàn)著不同的作用。這些方法論是經(jīng)過很多次經(jīng)驗(yàn)教訓(xùn)總結(jié)歸納出來的。所以從成長的角度來說從別人的經(jīng)驗(yàn)教訓(xùn)中獲取經(jīng)驗(yàn)是一個(gè)聰明人應(yīng)該做的。例如:奧卡姆剃刀和YAGNI原則都是在不同的場(chǎng)景下總結(jié)出相同的經(jīng)驗(yàn)教訓(xùn)。

  • 第四條思維:為自己織一張知識(shí)的網(wǎng)。

自我管理是自我提升的最重要內(nèi)容。而在自我管理中對(duì)于架構(gòu)師的基本技能的管理就需要有完整的技術(shù)知識(shí)體系(網(wǎng)絡(luò))。有了這張網(wǎng)隊(duì)自己知識(shí)的欠缺,知識(shí)間聯(lián)系就更有把握??梢愿猛晟谱晕乙部梢愿玫闹笇?dǎo)實(shí)踐。

對(duì)于這四條思維轉(zhuǎn)變是逐層遞進(jìn)的。在成為架構(gòu)師的過程中需要不斷的學(xué)習(xí)與總結(jié),總結(jié)出系統(tǒng)化的知識(shí)體系。最后還是一個(gè)現(xiàn)在流行的一句話:人生在于提升認(rèn)知。

解決方案

提出問題是最難的。也就是意識(shí)到這里有問題,才有辦法去解決這些問題。如果一直沒有意識(shí)到問題,那問題就永遠(yuǎn)解決不了。所以,認(rèn)識(shí)問題、認(rèn)識(shí)本質(zhì)、根因分析才是解決問題的本質(zhì)。

而在問題定義中我們對(duì)于學(xué)習(xí)架構(gòu)師這個(gè)問題做了一個(gè)定義。帶著這些問題去解決學(xué)習(xí)架構(gòu)師這件事可以更加體系化。

在之前介紹IASA組織中,有一個(gè)叫做《系統(tǒng)架構(gòu)的五大基礎(chǔ)》的技能表。這個(gè)五支柱的目標(biāo)是基于以人為本的方法創(chuàng)建一本IT架構(gòu)能力指南,該指南傳達(dá)了體系結(jié)構(gòu)發(fā)展的各個(gè)層次的最佳實(shí)踐和學(xué)習(xí)目標(biāo)。

5 Pillars of Architecture

IT架構(gòu)師的知識(shí)體系是通過對(duì)架構(gòu)師工作任務(wù)分析的信息來定義的。我們學(xué)習(xí)并將其組織成有意義的技能支柱。

我們所有這一切的目標(biāo)都是在這個(gè)環(huán)境中,所有人都能找到了學(xué)習(xí)和實(shí)踐體系結(jié)構(gòu)的途徑和方法。大多數(shù)項(xiàng)目失敗是因?yàn)樗鼈儧]有按時(shí)或按預(yù)算完成,更糟糕的是,他們沒有解決他們開始的商業(yè)問題。我們相信通過共同的技能、工具和培訓(xùn)以解決這些問題,這就是我們創(chuàng)造知識(shí)體系的原因。IASA 認(rèn)為, 以下幾點(diǎn)可以說是一個(gè) IT 架構(gòu)師的成功的必要條件:

對(duì)于IASA的五大支柱每一個(gè)都是一個(gè)非常大的領(lǐng)域,而IASA的公開材料中并未對(duì)這些內(nèi)容進(jìn)行完整的闡述。所以,從IASA的這幾個(gè)部分可以自行深入研究,也可以在IASA上報(bào)一個(gè)培訓(xùn)。不過IASA的培訓(xùn)和資料的話沒有接觸過,不知道怎么樣可以自行判斷。

總結(jié)

要成為架構(gòu)師就需要對(duì)自己的認(rèn)知進(jìn)行不斷的提升,不斷的改進(jìn)。而成為架構(gòu)師之路是一條漫長而艱辛的路,而且在這條路上需要不斷的探索新的路徑。在不斷的學(xué)習(xí)中組織出自己架構(gòu)師知識(shí)網(wǎng)絡(luò)才能真正的成為架構(gòu)師。

實(shí)踐與理論在架構(gòu)師成長過程中一樣重要。通過實(shí)踐去驗(yàn)證理論,通過理論去指導(dǎo)實(shí)踐就是架構(gòu)師之路上重要的策略。

參考:

Capability Taxonomy and Descriptions 3.0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容