前言
對(duì)于一般軟件開發(fā)人員來講,寫代碼要比寫文字容易得多。很多時(shí)候我們都能看到這樣的事情,項(xiàng)目做完了,設(shè)計(jì)文檔還沒有;
當(dāng)別人問起,某個(gè)項(xiàng)目當(dāng)時(shí)為什么這么設(shè)計(jì),一時(shí)語塞;項(xiàng)目代碼里沒有注釋,時(shí)間長了,自己都忘記當(dāng)時(shí)代碼為什么要這么寫。
以上這些都是我們平時(shí)開發(fā)中可能會(huì)遇到的問題,為什么會(huì)這樣?其實(shí)就是因?yàn)槠綍r(shí)沒有寫文檔的習(xí)慣,文字沒有得以保留,只靠個(gè)人記憶,時(shí)間長了確實(shí)記不住。
寫技術(shù)方案的好處
既然記不住,那么我們就要寫出來,況且寫文檔的好處是顯而易見的。
1.便于討論
在做技術(shù)評(píng)審時(shí),只靠講是不行的,還需要寫出來,甚至畫出來,這樣方便了解和溝通。評(píng)審時(shí),別人更容易通過文檔指出
技術(shù)方案的不足之處,更容易定位到方案技術(shù)點(diǎn)。
2.便于分享
好的技術(shù)方案是可以借鑒的,優(yōu)秀的設(shè)計(jì)方案通過文字保留下來,這樣便于分享和傳播。
3.便于改進(jìn)
在做代碼review的時(shí)候,沒有注釋的話,別人不知道代碼寫那么多行是什么意思,這個(gè)時(shí)候如果有一個(gè)文檔,文檔里面有一個(gè)業(yè)務(wù)流程圖的話,
可以更好的幫助大家理解代碼的業(yè)務(wù)邏輯, 從而可以更好的提高review的效率。
如何寫技術(shù)方案
千萬不要覺得寫文檔麻煩,前期越怕麻煩,往后可能就會(huì)遇到更多麻煩。如何輸出技術(shù)方案?下面一步步梳理下寫技術(shù)方案的步驟。
1.需求背景
通過閱讀需求文檔,了解需求背景、產(chǎn)品周期和產(chǎn)品使用人員。
2.業(yè)務(wù)流程
業(yè)務(wù)流程最好用圖來表示,說的再多可能也不如一張圖看的清楚。畫好業(yè)務(wù)流程圖,確定項(xiàng)目模塊,做好分工。畫圖工具可以使用visio或者是在線工具ProcessOn。
3.存儲(chǔ)系統(tǒng)
軟件的核心就是數(shù)據(jù)存儲(chǔ),找到合適的存儲(chǔ)至關(guān)重要。那怎么樣選擇存儲(chǔ)結(jié)構(gòu)?除了開發(fā)人員自身項(xiàng)目經(jīng)驗(yàn)外,一種比較好的方法是畫圖,
這種方法也是最原始的軟件設(shè)計(jì)流程中的一個(gè)重要部分。畫圖可以畫流程圖、時(shí)序圖、用例圖等,通過看圖可以更直接的看出軟件每一部分
用到的技術(shù)棧,進(jìn)而選擇最合適的存儲(chǔ)結(jié)構(gòu)。
選擇存儲(chǔ)結(jié)構(gòu)的兩種方法:
1.畫出流程圖
最標(biāo)準(zhǔn)的方式也是最有效的方式,通過畫出業(yè)務(wù)流程圖,確定每一個(gè)模塊功能和作用,可以幫助我們選擇需要的存儲(chǔ)。
是用關(guān)系型數(shù)據(jù)庫,還是文件系統(tǒng),或者是用到NoSQL,這些都是根據(jù)具體業(yè)務(wù)功能來確定的。所以一個(gè)描述清晰的業(yè)務(wù)流程圖,
2.做表格
比較存儲(chǔ)和存儲(chǔ)之間有什么區(qū)別,從性能、存儲(chǔ)容量、一致性和開發(fā)成本等方面做對(duì)比,看表格一目了然。結(jié)合需求,通過存儲(chǔ)的數(shù)據(jù)
來選擇合適的存儲(chǔ)結(jié)構(gòu)。
存儲(chǔ)系統(tǒng)確定下來后,接下來就是根據(jù)業(yè)務(wù)需求建立表結(jié)構(gòu),無論是MySQL還是NoSQL都需要有存儲(chǔ)結(jié)構(gòu)。
4.接口設(shè)計(jì)
因?yàn)檫€沒開始開發(fā),只是技術(shù)評(píng)審階段,寫代碼之前可以先把接口確定下。在一個(gè)項(xiàng)目里,前端和后臺(tái)用到的接口都羅列出來,
以及涉及到接口參數(shù)都寫出來。寫出來之后,把文檔提供給接口使用人,把設(shè)計(jì)好的接口給對(duì)方看下,是否需要增加或者修改。
接口需要雙方都明確,一旦明確下來,雙方可以同時(shí)開發(fā),避免有等待的情況。
總結(jié)
做好技術(shù)方案的確可以起到事半功倍的效果,確定好技術(shù)方案后就可以快速的進(jìn)入開發(fā)流程。開發(fā)過程中,如果遇到需求需要調(diào)整也可以快速調(diào)整。