架構(gòu)師修煉之道-讀書(shū)筆記-一二章
一、成為架構(gòu)師
架構(gòu)師的職責(zé)
1、從工程角度定義問(wèn)題
架構(gòu)師需要了解需求,知道要做的軟件項(xiàng)目的需求和目標(biāo)。
產(chǎn)品經(jīng)理關(guān)注功能需求,架構(gòu)師關(guān)注質(zhì)量屬性
2、分解系統(tǒng)、分配職責(zé)
將需求分解成幾個(gè)小的模塊,給每個(gè)模塊分配職責(zé)。
3、關(guān)注大局
從大局角度出發(fā),考慮后續(xù)需求的演變方向,提前做好準(zhǔn)備。
4、在質(zhì)量屬性之前取舍
提升需求方想要的質(zhì)量屬性,抑制需求方不想要的質(zhì)量屬性。
5、管理技術(shù)債務(wù)
技術(shù)債務(wù):為了短期利益或目標(biāo),做出欠佳的決策
把握技術(shù)債務(wù),將其控制在一定的范圍內(nèi),通過(guò)一定手段彌補(bǔ)。
6、提升團(tuán)隊(duì)的架構(gòu)技能
適當(dāng)?shù)膫魇谠O(shè)計(jì)技巧和理念,幫助團(tuán)隊(duì)成員成長(zhǎng)。減輕自己的工作量。
軟件架構(gòu)
如何組織軟件的一系列重大決策的集合,旨在實(shí)現(xiàn)期望的質(zhì)量屬性和其他軟件特性。
元素是軟件的基本組成成分,關(guān)系則描述元素如何協(xié)作完成任務(wù)。
模塊
組件連接器
分配
質(zhì)量屬性
利益相關(guān)方判斷軟件系統(tǒng)是否好用的一切外部可見(jiàn)特性、包括可伸縮性、可用性、可維護(hù)性、可測(cè)試下等。
程序員到架構(gòu)師轉(zhuǎn)變
參與系統(tǒng)的開(kāi)發(fā),并承擔(dān)更多的職責(zé),把握好一切設(shè)計(jì)架構(gòu)的機(jī)會(huì)。
二、設(shè)計(jì)思維基礎(chǔ)
四條原則
1、以人為本
尊重所有直接或間接與架構(gòu)有關(guān)的人,換位思考,理解他們的感受
2、推遲決策
需求是善變的,對(duì)于影響范圍大、難以更改的需求不到最后一刻,不要輕易做最終的設(shè)計(jì)決策。
3、善于借鑒
研究以往的設(shè)計(jì)、探索其中規(guī)律。借鑒別人的設(shè)計(jì),取之精華,棄之糟粕。
4、化虛為實(shí)
將腦中的想法寫(xiě)下來(lái),呈現(xiàn)出來(lái)。
設(shè)計(jì)思維模式
1、理解
理解問(wèn)題,想清楚要做的是什么
2、探索
探索想法,找到解決問(wèn)題的方法
3、展示
展示想法,將解決問(wèn)題的方法呈現(xiàn)出來(lái)
4、評(píng)估
評(píng)估適用性,將解決問(wèn)題的方法根據(jù)實(shí)際情況進(jìn)行分析和取舍。
TDC
T think 思考 思考問(wèn)題
D do 動(dòng)手 動(dòng)手解決問(wèn)題
C check 檢查 檢查是否解決問(wèn)題