1代碼不會(huì)講述完整的故事
代碼=細(xì)節(jié),但是只關(guān)注細(xì)節(jié)卻不好理解整體
2軟件文檔即指南
文檔可以記錄很多,甚至于歷史和文化,有些東西需要文字記載
編碼和文檔是動(dòng)態(tài)更新的,文檔應(yīng)該以大局面的視圖去講述設(shè)計(jì),記錄關(guān)鍵點(diǎn),記錄歷史。不應(yīng)太過于細(xì)致,否則編碼的改動(dòng)文檔難以更新。要找到平衡點(diǎn)
3語(yǔ)境
描述一下這個(gè)軟件使用的環(huán)境
4功能性概覽
整體功能描述
5質(zhì)量屬性
關(guān)心性能,可伸縮,可用性,安全性,可拓展性,靈活性等質(zhì)量,一定要具體化
6約束
時(shí)間,預(yù)算,資源。已有系統(tǒng)兼容。局部標(biāo)準(zhǔn),公共標(biāo)準(zhǔn),團(tuán)隊(duì)人員技能配置等
7原則
原則確保了以相同的方法處理相見問題,有助于向代碼庫(kù)引入一致性。
定制一份軟件開發(fā)原則以保持編碼層面的統(tǒng)一。比如:所有組件都是無(wú)狀態(tài),選擇貧血/充血模型,絕不使用存儲(chǔ)過程等。
8軟件架構(gòu)
使用容器圖和組件圖進(jìn)行描述。這部分主要是讓你從大局的視圖看待軟件
9外部接口
外部接口使用了哪些
10代碼
實(shí)現(xiàn)視圖,保持簡(jiǎn)單
11數(shù)據(jù)
記錄任何從數(shù)據(jù)角度看來(lái)重要的東西
12基礎(chǔ)設(shè)施架構(gòu)
主要關(guān)注點(diǎn)是展示各種硬件/網(wǎng)絡(luò)組件以及如何互相融合的基礎(chǔ)設(shè)施/網(wǎng)絡(luò)圖,配合簡(jiǎn)短的敘述
13部署
軟件和基礎(chǔ)設(shè)施之間的映射
14運(yùn)營(yíng)和支持
描述人們?nèi)绾芜\(yùn)行,檢測(cè)和管理你的軟件。以防將來(lái)沒有人明白如何運(yùn)營(yíng)
15決策日志
簡(jiǎn)單記錄所做的重要決策以及原因,條件,環(huán)境。比如:框架選擇,產(chǎn)品,架構(gòu)風(fēng)格,模式。