命名規(guī)范

from https://github.com/AlloyTeam/CodeGuide

項(xiàng)目命名

  • 全部采用小寫方式, 以中劃線分隔
    示例:my-project-name

目錄命名

  • 參照項(xiàng)目命名規(guī)則
  • 有復(fù)數(shù)結(jié)構(gòu)時,要采用復(fù)數(shù)命名法。
    示例:scripts, styles, images, data-models

JS 文件命名

  • 參照項(xiàng)目命名規(guī)則。

示例:account-model.ts
示例:scan-file.component.ts

CSS, SCSS 文件命名

  • 參照項(xiàng)目命名規(guī)則。
    示例:retina-sprites.scss

HTML 文件命名

  • 參照項(xiàng)目命名規(guī)則。
    示例:error-report.html

JS 命名規(guī)范

  • js命名應(yīng)遵循 簡潔、語義化 的原則

angular 項(xiàng)目命名規(guī)范

文件命名規(guī)范

  • 文件名采用feature.type.**,feature表示特性,type表示類型
  • 模塊用 .module.ts
  • 路由模塊用 -routing.module.ts【*目前模塊中既有.routing也有-routing】
  • 組件用 .component.ts|html|css
  • 服務(wù)用 .service.ts
  • 管道用 .pipe.ts
  • 指令用 .directive.ts
  • 類型用 .model.ts
  • 數(shù)據(jù)用 .data.ts
  • 用"-"來分割單詞,比如hero-list.component.ts
  • 單元測試文件名保持和測試對象一致,并以.spec.ts結(jié)尾
  • 端到端測試文件名保持和測試對象一致,并以.e2e-spec.ts結(jié)尾

命名規(guī)范

  • 模塊:比如app.module.ts定義的類名為AppModule

  • 路由模塊:比如app-routing.module.ts定義的類名為AppRoutingModule

  • 組件:比如hero-list.component.ts定義的類名為HeroListComponent

  • 服務(wù):比如logger.service.ts定義的類名為LoggerService

  • 管道:比如address.pipe.ts定義的類名為AddressPipe

  • 指令:比如highlight.directive.ts定義的類名為HighlightDirective

  • 類型:按模塊來劃分,一個.model.ts定義多個類型【*有疑義,我們的模塊比較大,model會很多】

  • 數(shù)據(jù):比如address-book.data.ts定義的變量名為addressBook

  • 腳本啟動入口的文件名規(guī)定為main.ts,里面不包括任何業(yè)務(wù)邏輯,但要記得處理失敗的情況
    // main.ts
    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

      import { AppModule }              from './app/app.module';
    
      platformBrowserDynamic().bootstrapModule(AppModule)
        .then(success => console.log(`Bootstrap success`))
        .catch(err => console.error(err));
    
  • 指令選擇器的命名采用小寫駝峰規(guī)則,比如clickOutSide

  • 組件選擇器的命名采用分隔符“-”連接小寫字母的形式,比如hero-list

變量

  • 命名方法: 小駝峰式命名法
  • 命名規(guī)范:前綴為形容詞 (函數(shù)前綴為動詞, 以此來區(qū)分函數(shù)和變量)
  • 支持ES6的環(huán)境下,禁止使用var定義變量
  • 變量命名要求見名知意,控制在5個單詞以內(nèi),有常見縮寫形式的單詞可采用縮寫形式
// 好的命名方式
let maxCount = 10;
let tableTitle = 'tableTitle';

// 不好的命名方式
let setConut = 10;
let getTitle = 'getTitle';

常量

  • 定義用const
  • 全部大寫,如果有多個單詞,用“_”連接
const MAX_COUNT = 10;
const URL = '//www.huifenqi.com';

函數(shù) & 方法

  • 命名方法: 小駝峰式命名法
  • 命名規(guī)范: 前綴應(yīng)該為動詞
  • 命名建議: 常用動詞約定
// 是否可閱讀
function canRead() {}
// 獲取名稱
function getName() {}
// 事件回調(diào)
function onSelectChange() {}

類 & 接口

  • 命名方法:大寫駝峰式命名法,首字母大寫
  • 命名規(guī)范:前綴為名稱
class Persion {
  constructor(name) {
   ...
  }
}

let person = new Person('TOM');

類的成員

  • 類的成員包括:
    公共屬性和方法:跟變量和函數(shù)命名一樣。
    私有屬性和方法:用小寫駝峰
    ts中,私有屬性和方法,用private修飾符,不建議以“”為前綴
    ts中,公共屬性和方法,不需要寫修飾符,默認(rèn)是public
    ts中,攔截屬性可以使用下劃線“
class Person {
  // 私有屬性 
  private name: string;
  private _hobby: string;
  constructor() { }

  set hobby(hobby) {
    this._hobby = hobby;
    this.doSomething();
  }
  // 公共方法
  getName() {
    return this._name;
  }
  // 公共方法
  setName(name) {
    this._name = name;
  }
}

示例

前綴 含義 類型
can 判斷是否可執(zhí)行某個動作 方法
get 獲取某個值 方法
set 設(shè)置某個值 方法
load 加載某些數(shù)據(jù) 方法
has 判斷是否含義某個值 boolean型變量
is 判斷是否為某個值 boolean型變量
nsOn Output輸出屬性 EventEmitter

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容