寫(xiě)前端文檔
我想前端開(kāi)發(fā)過(guò)程中, 無(wú)論是團(tuán)隊(duì)開(kāi)發(fā), 還是單兵做站, 有一份開(kāi)發(fā)文檔做規(guī)范, 對(duì)開(kāi)發(fā)工作都是很有益的.
前端文檔缺失的原因
前端開(kāi)發(fā)的文檔相信大多數(shù)情況下都沒(méi)有后端的服務(wù)描述詳細(xì),而大多數(shù)測(cè)試也僅僅在黑盒測(cè)試,所以很多情況下對(duì)這片文檔的描述都廖廖無(wú)幾。
1、前端開(kāi)發(fā)的代碼分散——沒(méi)有規(guī)范化,沒(méi)有很好的設(shè)計(jì),大多數(shù)人仍以業(yè)務(wù)為主的開(kāi)發(fā)方式。
2、測(cè)試人員對(duì)前端仍然處于黑盒測(cè)試,有沒(méi)有文檔都不影響到他們的測(cè)試進(jìn)程。
3、一旦業(yè)務(wù)定型,用傳統(tǒng)方式的文檔模式,很難復(fù)制到前端開(kāi)發(fā)來(lái)。——改變了開(kāi)發(fā)方式(從作坊式到規(guī)范化)讓人難以適應(yīng)。
嘗試對(duì)癥下藥
對(duì)于代碼分散的問(wèn)題需要從源頭解決。從規(guī)范化開(kāi)始,試點(diǎn)從頭到尾慣穿規(guī)范化,強(qiáng)制的約定,使代碼質(zhì)量提高。
這一塊需要下大力氣,中間加入設(shè)計(jì)review、代碼review等環(huán)節(jié)。需要注意的是粒度把控,即什么是必須的,什么是可選的,什么是約定的等有共識(shí)。
1、功能描述
開(kāi)發(fā)前的工作,對(duì)編碼者來(lái)說(shuō)必須收集需求。對(duì)于使用者來(lái)說(shuō),能夠知道寫(xiě)這個(gè)代碼的目的是什么,解決了什么問(wèn)題,還有什么問(wèn)題沒(méi)有解決,或需要改進(jìn)。
2、設(shè)計(jì)描述
分享你的思想,這很重要,一個(gè)成熟的開(kāi)發(fā)人員看開(kāi)碼的時(shí)候很多時(shí)候不是看你實(shí)現(xiàn)如何如何,而是看你的設(shè)計(jì)。
3、API描述
使用者快速上手。接口是代碼的眼睛。命名要嚴(yán)謹(jǐn),不能說(shuō)也可這樣,也可那樣。經(jīng)驗(yàn)告訴我們,接口做得不好,歷史原因就會(huì)多。
4、demo/snippets
給使用的人copy/paste沒(méi)什么不好。
5、使用指南
例如庫(kù)的使用指南等手冊(cè)。或者說(shuō)一個(gè)簡(jiǎn)單的上手教程
文檔該由誰(shuí)來(lái)寫(xiě)?
從理論上看,文檔都應(yīng)該由編碼者來(lái)寫(xiě),其實(shí)不然。一個(gè)軟件的周期,可以分為:開(kāi)發(fā)前,開(kāi)發(fā)時(shí),使用時(shí),測(cè)試時(shí),維護(hù)時(shí)。
那么各時(shí)間段上應(yīng)該有不同的人來(lái)參與。縮小些范圍來(lái)看的話(huà),應(yīng)該將:
1、開(kāi)發(fā)前收集需求由大家參與。實(shí)現(xiàn)者收集后存檔到文檔里。此為開(kāi)發(fā)目的與預(yù)期。
2、開(kāi)發(fā)時(shí)的API描述,設(shè)計(jì)描述主要由編碼者來(lái)實(shí)現(xiàn)。
3、開(kāi)發(fā)后/維護(hù)時(shí)的demo及snippets可以由使用者來(lái)完善。
設(shè)計(jì)文檔是否能自動(dòng)化生成
代碼注釋(現(xiàn)在一般都用java doc)可以生成接口文檔。
以往都必須自己畫(huà)設(shè)計(jì)圖,配上描述。那么理論上這塊也應(yīng)該可以通過(guò)注釋加入設(shè)計(jì)的描述,通過(guò)文檔生成的工具自動(dòng)生成設(shè)計(jì)圖。這樣應(yīng)該方便多了。
原文鏈接:http://www.never-online.net/blog/article.asp?id=294
【編輯推薦】