前端架構之路(4) - 前端開發(fā)文檔

前端開發(fā)文檔

1. 為什么需要 “前端開發(fā)文檔”

上一節(jié)講到開發(fā)規(guī)范幌绍,不以規(guī)矩署鸡,不成方圓般贼,團隊開發(fā)離不開規(guī)范,這一節(jié)講的開發(fā)文檔是對開發(fā)規(guī)范的一個補充劣挫。

從目的上講,規(guī)范與文檔都是為了降低團隊的協(xié)作成本和維護成本东帅,提高開發(fā)效率和質量压固,保證不會因為開發(fā)人員的變動而產(chǎn)生較大的影響。

2. 哪些需要形成文檔

2.1 注釋(只討論 js

隨著前端的發(fā)展靠闭,文檔已經(jīng)慢慢的變得不可或缺了帐我,并由社區(qū)的努力而形成了 JSDoc,類似 JavaDoc 和 PHPDoc愧膀。

2.1.1 什么是 JSDoc

JSDoc 是一個根據(jù) javascript 文件中注釋信息拦键,生成 JavaScript 應用程序或庫、模塊的 API 文檔 的工具檩淋。你可以使用他記錄如:命名空間芬为,類,方法,方法參數(shù)等媚朦,并且很多編輯器和 IDE 都是直接支持智能提示的氧敢。

2.1.2 JSDoc 注釋示例

JSDoc 注釋一般應該放置在方法或函數(shù)聲明之前,它必須以 /** 開始莲镣,其他任何以 /*福稳,/*** 或者超過3個星號的注釋,都將被JSDoc解析器忽略瑞侮。例如:

/**
 * Book類的圆,代表一個書本.
 * @constructor
 * @param {string} title - 書本的標題.
 * @param {string} author - 書本的作者.
 */
function Book(title, author) {
    this.title=title;
    this.author=author;
}
Book.prototype={
    /**
     * 獲取書本的標題
     * @returns {string|*}
     */
    getTitle:function(){
        return this.title;
    },
    /**
     * 設置書本的頁數(shù)
     * @param pageNum {number} 頁數(shù)
     */
    setPageNum:function(pageNum){
        this.pageNum=pageNum;
    }
};

2.1.3 JSDoc 標簽一覽

  • {@link: ...}, {@linkplain: ...}, {@linkcode: ...}, {@tutorial: ...}: 內聯(lián)標簽
  • @abstract: 抽象,必須由繼承者實現(xiàn)(或者覆蓋)
  • @access: 訪問級別(private半火、public或者protected)
  • @alias: 別名
  • @augments: 參數(shù)
  • @author: 作者
  • @borrows: 借用
  • @callback: 回調函數(shù)
  • @classdesc: 類描述
  • @constant: 常量
  • @constructor: 構造函數(shù)越妈,可以使用new創(chuàng)建一個實例
  • @constructs: 構造
  • @copyright: 版權
  • @default: 默認值
  • @deprecated: 棄用的
  • @desc: 描述
  • @enum: 枚舉值
  • @event: 事件
  • @example: 范例
  • @exports: 模塊導出(模塊化)
  • @external: 外部模塊(模塊化)
  • @file: 文件
  • @fires: 可觸發(fā)的事件
  • @global: 全局對象
  • @ignore: 忽略
  • @inner: 內聯(lián)對象
  • @instance: 實例
  • @kind: 標識類型
  • @lends: 遍歷屬于同一個標識的所有屬性
  • @license: 軟件授權
  • @link: 內聯(lián)
  • @member: 成員
  • @memberof: 屬于某成員
  • @method: 方法
  • @mixes: 合并
  • @mixin: 最小化
  • @module: 模塊(模塊化)
  • @name: 名稱
  • @namespace: 命名空間
  • @param: 參數(shù)
  • @private: 私有的(訪問控制)
  • @property: 屬性
  • @protected: 受保護的(訪問控制)
  • @public: 公開的(訪問控制)
  • @readonly: 只讀的
  • @requires: 依賴(模塊化)
  • @return: 返回值
  • @see: 引用
  • @since: 開始于
  • @static: 靜態(tài)的
  • @summary: 概述
  • @this: 解釋this關鍵字
  • @throws: 可能拋出的異常
  • @todo: 待辦事項
  • @tutorial: 引用指導手冊
  • @type: 類型
  • @typedef: 自定義類型
  • @variation: 區(qū)分不同的對象具有相同名稱的
  • @version: 版本

2.1.4 把注釋生成文檔的工具

  • jsdoc: 官方提供的工具
  • documentation.js: 另外一個可供選擇的工具,支持生成 html钮糖,markdown梅掠, json
  • dox: tj 大神的作品

2.2 業(yè)務邏輯、更新日志與備注

另外一個需要記錄的信息就是業(yè)務邏輯店归、更新日志與備注阎抒。

2.2.1 業(yè)務邏輯

有些比較復雜的業(yè)務邏輯不太適合放在注釋里面,需要單獨寫邏輯文檔消痛,以備后面查看且叁。

有時候,有些邏輯并不是簡單的用文字描述就能說的清楚的秩伞,還需要圖表或者思維導圖的輔助逞带。

2.2.2 更新日志

更新日志也是一個比較重要文檔,能夠方便查找更新狀態(tài)纱新、時間展氓、開發(fā)人員等。

2.2.3 備注

如果有額外的一些信息脸爱,需要用文檔備注一下遇汞。

3. 后續(xù)

上一篇:前端開發(fā)規(guī)范

下一篇:構建工具 for teamwork

參考文章:

  1. JSDoc 中文文檔

更多博客,查看 https://github.com/senntyou/blogs

作者:深予之 (@senntyou)

版權聲明:自由轉載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末阅羹,一起剝皮案震驚了整個濱河市勺疼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捏鱼,老刑警劉巖执庐,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異导梆,居然都是意外死亡轨淌,警方通過查閱死者的電腦和手機迂烁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來递鹉,“玉大人盟步,你說我怎么就攤上這事□锝幔” “怎么了却盘?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長媳拴。 經(jīng)常有香客問我黄橘,道長,這世上最難降的妖魔是什么屈溉? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任塞关,我火速辦了婚禮,結果婚禮上子巾,老公的妹妹穿的比我還像新娘帆赢。我一直安慰自己,他們只是感情好线梗,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布椰于。 她就那樣靜靜地躺著,像睡著了一般仪搔。 火紅的嫁衣襯著肌膚如雪廉羔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天僻造,我揣著相機與錄音,去河邊找鬼孩饼。 笑死髓削,一個胖子當著我的面吹牛,可吹牛的內容都是我干的镀娶。 我是一名探鬼主播立膛,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼梯码!你這毒婦竟也來了宝泵?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤轩娶,失蹤者是張志新(化名)和其女友劉穎儿奶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳄抒,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡闯捎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年椰弊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓤鼻。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡秉版,死狀恐怖,靈堂內的尸體忽然破棺而出茬祷,到底是詐尸還是另有隱情清焕,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布祭犯,位于F島的核電站秸妥,受9級特大地震影響,放射性物質發(fā)生泄漏盹憎。R本人自食惡果不足惜筛峭,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陪每。 院中可真熱鬧影晓,春花似錦、人聲如沸檩禾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盼产。三九已至饵婆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戏售,已是汗流浹背侨核。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留灌灾,地道東北人搓译。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像锋喜,于是被迫代替她去往敵國和親些己。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,127評論 25 707
  • 臨近臘月的一天嘿般,我從外面回家段标,一進院子,就看到鄰居家兩個孩子炉奴,一個男孩逼庞,一個女孩,三四歲的樣子吧瞻赶,正在我家院子里嘻...
    老杜的菜圃閱讀 398評論 0 1
  • 胡離用一個裝鞋的盒子把過去的一些東西除了一瓶強生嬰兒之外全部快遞給了王子往堡,順便裝了一個聲勢浩大的逼械荷。但是胡離裝完這...
    高韓只是一根蛆閱讀 152評論 0 0
  • 再見吨瞎,卡西尼 黑暗中 一道亮光 蘇醒了你孤獨的靈魂 你來這人間 一生只為一件事 你怎能不知道 這終究會毀了你自己 ...
    木夕2008閱讀 487評論 0 6