編寫可閱讀的程式碼--基本規約

x007xyz發表於2018-06-06

當我們表達一個意思時,往往會有許多不同的說法,這些說法都是正確,在我們編寫程式碼時,也會有這樣的情況,命名時,會有不同的命名方法,完成同一個功能,總是有不同的方法,他們都可能是正確的,從方便管理和可閱讀性的角度考慮,我們應該統一編碼的基本規約,從正確的編寫方式中選擇一種,然後團隊中所有人一起遵守這個規約。
這個規約最重要的必須存在,讓團隊的成員有標準可以去執行,具體的內容只要合理即可,細節也可以在實踐中不斷去豐富,Java的規約可以參考阿里的文件,JavaScript可以參考如下:

  1. 【強制】程式碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束。
  2. 【強制】程式碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。 說明:正確的英文拼寫和語法可以讓閱讀者易於理解,避免歧義。注意,即使純拼音命名方式也要避免採用。
    反例: DaZhePromotion [打折] / getPingfenByName() [評分] / int 某變數 = 3 正例: alibaba / taobao / youku / hangzhou 等國際通用的名稱,可視同英文。
  3. 【強制】檔案命名使用UpperCamelCase風格,必須遵從駝峰形式。檔名按照層級的方式,高的層級在前,低的層級在後。
    正例: ArticleList / ArticleEditorCreate / ArticleEditorUpdate
    說明: Article表示是與Article相關的檔案;List表示展示的內容是列表,Editor表示對Article進行編輯;Create、Update表示編輯Article後分別進行建立和更新操作。
  4. 【強制】方法名、引數名、成員變數、區域性變數都統一使用lowerCamelCase風格,必須遵從駝峰形式。變數名首字母必須小寫;函式首字母小寫,第一個單詞使用動詞。
    正例: localValue / getHttpMessage() / inputUserId
  5. 【強制】杜絕完全不規範的縮寫,避免望文不知義。
    反例: condition“縮寫”命名成 condi,此類隨意縮寫嚴重降低了程式碼的可閱讀性。
  6. 【推薦】函式保持單一職責,只做一件事;如需要在同一函式中完成多個功能請在函式命名上體現。
    說明: 函式新增子元素並重新整理頁面,請使用addChildAndRefresh,而不是addChild
  7. 【推薦】函式引數保持1-2個,合併同一個物件的不同屬性。
  8. 【推薦】每一個函式一個抽象層級,流程與業務不要同時出現在一個函式中。
    說明: 為表單新增欄位,根據欄位型別賦予不同的初始值;為表單新增欄位為第一抽象層級,賦予初始值為第二抽象層級,具體使用如下:
addFieldToForm(field, form) {
  if (field.type === 'text') {
    setTextDefaultValue(field)
  } else if(field.type === 'number') {
    setNumberDefaultValue(field)
  }
  from.appendChild(field)
}
複製程式碼

相關文章