歡迎光臨angular2風(fēng)格指南
目的:本指南的目的是為開發(fā)Angular應(yīng)用程序提供指導(dǎo)原則,展示我們所遵循的約定挫以。
一、單一原則:
我們遵循單一職責(zé)原則來創(chuàng)建的所有組件抡句、服務(wù)和其他標(biāo)志等。這樣能幫助我們把應(yīng)用程序弄的干凈整潔究抓,易于閱讀袭灯、維護(hù)和測試。
1.單一法則
風(fēng)格01-01
堅(jiān)持 每個(gè)文件之定義一樣?xùn)|西(比如服務(wù)或組件)工腋。
考慮把每個(gè)文件限制在400行代碼以內(nèi)蟋恬。
為何趁冈?單組件文件非常容易閱讀、維護(hù)旺坠,并能防止在版本控制系統(tǒng)里與團(tuán)隊(duì)沖突
為何蹋肮?單組件文件可以防止一些隱蔽的程序缺陷病毡,當(dāng)把多各組件合寫在一個(gè)文件中時(shí)淌喻,可能造成共享變量裸删、創(chuàng)建意外的閉包清蚀,或者與依賴之間產(chǎn)生意外耦合等情況。
為何践惑?單獨(dú)的組件通常是該文件默認(rèn)的輸出,這樣就可以利用組件路由器實(shí)現(xiàn)按需加載侦铜。
最關(guān)鍵的是嫁盲,可以增加代碼可重用性和閱讀性羞秤,減少出錯(cuò)的可能性矫限。
切記:?
不要把多個(gè)組件定義在一個(gè)文件里棍苹!
定義文件:
組件: xx.component.ts 枢里、數(shù)據(jù)模型: xx.model.ts豆胸、服務(wù):xx.service.ts
2.小函數(shù)
風(fēng)格01-02
堅(jiān)持定義小函數(shù)
考慮限制在75行之內(nèi)
為何溉卓?小函數(shù)更易于測試,特別是當(dāng)它們只做一件事,只為一個(gè)目的服務(wù)的時(shí)候。
為何故河?小函數(shù)促進(jìn)了代碼的重用凑阶。
為何姨俩?小函數(shù)更加易于閱讀。
為何都伪?小函數(shù)更加易于維護(hù)。
為何的烁?小函數(shù)幫助避免一些大函數(shù)容易產(chǎn)生的那些與外界共享變量、創(chuàng)建意外的閉包或與依賴之間產(chǎn)生意外耦合等隱蔽的錯(cuò)誤。
二.命名約定
風(fēng)格02-01
1.總體命名知道原則
堅(jiān)持為所有符號(hào)使用一致的命名規(guī)則。
堅(jiān)持遵循同一個(gè)模式來描述符號(hào)的特性和類型。推薦的模式為feature.type.ts。
為何击罪?命名約定提供了一致的方法來幫助我們一眼鎖定內(nèi)容。在整個(gè)項(xiàng)目內(nèi)保持一致性是至關(guān)重要的。在團(tuán)隊(duì)內(nèi)保持一致性也很重要台丛。在公司內(nèi)部保持一致性可以大幅提高效率。
為何?命名約定最直接的目的是:幫我們快速找到代碼并讓它們更容易理解钢属。
為何缀遍?目錄和文件的名字應(yīng)該清楚的說明他們的用途。比如 app/heroes/hero-list.compooment.ts包含了一個(gè)用來維護(hù)英雄列表的組件酪呻。
2.使用點(diǎn)和橫杠來分割文件名
風(fēng)格02-02
堅(jiān)持在描述性名字里面贼邓,使用橫杠來分隔單子塑径。
堅(jiān)持使用點(diǎn)來分隔描述名字和類型名劳景。
堅(jiān)持對(duì)所用組件使用一致的類型命名規(guī)則,遵循這個(gè)模式:先描述組件的特性窿克,在描述它的類型。推薦的模式為feature.type.ts。
為何菜循?類型名字提供一致的方法來快速的識(shí)別文件是什么。
為何苞笨?可以讓我們利用編輯器或者 IDE 的模糊搜索功能债朵,很容易的找到特定文件子眶。
為何?沒有被簡寫的類型名字比如.service很有描述性序芦,不含糊臭杰。 簡寫可能造成混淆,比如.srv,.svc, 和.serv谚中。
為何渴杆?與自動(dòng)化任務(wù)的模式匹配。
3.組件與指令命名
風(fēng)格02-03
堅(jiān)持為所有東西使用一致的命名約定:以它們所代表的東西命名宪塔。
堅(jiān)持使用大寫駝峰命名法來命名所有符號(hào)(類)磁奖。保持符號(hào)的名字與他所在的文件名字相同。
堅(jiān)持把符號(hào)的類型(比如組件某筐、服務(wù)比搭、指令等)附件到符號(hào)名的后面。
為何南誊?提供前后一致的方法迅速辨識(shí)和引用東西身诺。
為何?大寫駝峰命名法約定用來辨識(shí)出那些可用過構(gòu)造函數(shù)來實(shí)例化的對(duì)象抄囚。
為何霉赡?Component后綴是常見的用法,它具有精準(zhǔn)的描述性幔托。
4.服務(wù)名
風(fēng)格02-04
堅(jiān)持使用前后一致的命名規(guī)則來命名服務(wù)穴亏,以它們的特性來命名。
堅(jiān)持使用大寫駝峰命名法來命名服務(wù)重挑。
堅(jiān)持當(dāng)不能從它們的名字里清楚的看出它們是什么的時(shí)候(比如它們的名字是名詞時(shí))嗓化,添加service后綴。
為何谬哀?提供前后一致的方法來快速識(shí)別和引用服務(wù)蟆湖。
為何?清楚的服務(wù)名玻粪,比如Logger不需要后綴。
為何诬垂?如果服務(wù)名字是名詞時(shí)劲室,比如Credit,需要一個(gè)后綴结窘。當(dāng)名字不能很明顯的標(biāo)示出它是服務(wù)還是其它東西的時(shí)候很洋,應(yīng)該添加后綴。