一個完整的開源庫必須包含
對於會有很多人參與開發的專案,通常會有一份規範,請大家遵守常見的規範有:
編譯器規範
以下為範例
root = true
[*]
charset = utf-8 //設定 字符集為 utf-8
indent_style = space //縮排方式使用 建議選space
indent_size = 2 //縮排2個空格
end_of_line = lf //換行方式統一為LF
insert_final_newline = true //儲存檔案時在最後新插入一行
trim_trailing_whitespace = true //去掉行尾的空白字元
[*.md] //md檔案
insert_final_newline = false //儲存檔案時在最後新插入一行
trim_trailing_whitespace = false //去掉行尾的空白字元
代碼風格規範
通常我們會有一個代碼檢查小精靈 -- Linter,Linter 會幫我們做靜態語法的分析,在程式執行之前抓出可能的錯誤。更能確保我們的程式碼品質在一定的水準之上,在眾多的Javascript Linter中,推薦使用ESLint喔!
Linter 主要有幾個功能
ESlint 使用方式:
npm install eslint -g
全域下載eslint --init
之後會有幾個問題,可以選擇自己的制定方式喔。設置完後會多一個 eslintrc.js 檔案//eslintrc.js
module.exports = {
root: true,
parserOptions: {
// 這是指 parser 要怎麼把你的程式碼切成 AST(抽象語法樹),這裡會涉及到一些語法分析、詞語分析方面的知識。
},
env: {
// env 是指要在哪些環境執行,譬如說如果你的程式沒有要在瀏覽器執行,那就不應該有 window 或是 document 物件,ESLint 會幫你挑出這些錯誤
},
plugins: [
// 一些資源Eslint的外掛套件,像是 react、flowtype...等。
],
extends: [
//通常會有 "eslint:recommend"這行代碼, 這是代表使用推薦的 ESLint 設定,可以看![ESLINT官方解釋](https://eslint.org/docs/rules/)裡面打勾的就是他的推薦設定喔。
],
rules: {
// 如果上面的 extends 或是 plugins 有你不想要的規則,這時候就可以用 rules 把它蓋掉
}
}
設計規範
版本規範
Git commit規範
在多人協作的項目中,如果Git的提交說明精準,在後期協作以及Bug處理時會處理的容易一些,項目的開發可以根據規範的提交說明快速生成開發日誌,從而方便開發者或用戶追蹤項目的開發信息和功能特性。
雖然這些規範相對於撰寫代碼有些無趣,但是他卻能大大保證library品質