一.單一職責
Angular是基於WebComponents思想設計而來,全部核心概念包括組件、服務、指爲都是遵循單一職責原則的,這龍員佳實踐中很重要的一條,它有助於代碼保持良好的可讀性和可維護性,並且極大地方便單元測試。Anglar 應用中建立的全部組件、服務或者其餘的模塊都應該遵循單一職責原則,如下是關於單一職責原則在Anglar開發中的具體要求。
1.單一文件
單一規則是指在一個文件中,應該只定義一個組件、服務或者指令等。
一個組件對應一個文件能夠保證代碼簡單易讀,具備更好的可維護性,正常一個文件的代碼量不該超過400行
,若是太長,多是組件拆分得不夠細緻.並且在團隊開發中,不一樣成員修改的功能存在於不一樣的文件中,能夠在必定程度上避免跟其餘成員的修改產生衝突,大大減小耦合,例如,例如,在向卷調查系統的組件樹中,首頁組件HomeComponent.登陸組件LoginComponent.註冊組件RegisterComponent 等組件一對應着home.component.ts.login.component.ts.register.component.ts 等文件,符合一組件一文件的規則。
2.簡單函數
簡單函數是指定義的麗數儘可能功能簡單、目的明確、職責單一。保持函數簡單的好處和單一規則相似。都是爲了代碼的易讀易維護。一般一個函數的代碼不該超過75行,目的更明確且職責更單一的函數具備更高的可
複用性,也便於進行測試。
二.命名約定
關於命名約定是一個老生常談的問題,但它確實是編寫高可維護性和易讀性代碼很是重要的規範。良好的命名規範能起到見名知意的效果,能使維護代碼的開發者僅僅在只通覽代碼文件結構或名稱的狀況下就能大體瞭解整個項目,而且在須要瞭解細節的狀況下能快速定位到相應的代碼位置。對於Angular項目,也有關於命名約定方面的最佳實踐
1.命名風格統一
使用統一的命名風格是指保持命名方式和命名模式一致。在Angular中一般採用feature.type.ts 的命名模式,即先描述特性,再描述類型。例如用戶列表組件的文件名爲userlist.component.ts.而用來作日誌上報的日誌服務的文件名爲loggerservice.s或自定義管道文件命名爲lipsispipe.s等。統一命名風格的好處很明顯,例如咱們能夠經過在IDE中搜索home關鍵詞就能找出全部與首頁相關的組件、服務、模板等文件,或者經過搜索component關鍵字找出項目中定義的全部組件文件等。而且經過這些文件的名稱,開發者能夠輕易地判斷出這個組件是爲哪一個功能特性編寫的。這極大地提升了定位代碼的效率,對於越大型的項目做用越明顯。
2.名稱格式保持一致
對於文件的名稱,一般使用.點號來分隔特性和類型,而對於特性名稱由多個英文單詞組成的狀況,則可使用短橫線做爲分隔符,例如上面提到的用戶列表組件的文件名稱就能夠命名爲user-list.component.ts。
使用完整的類型名稱,不要使用簡寫。例如使用.service 做爲服務的類型描述,而不是使用.srv、.SVC、.serv 等容易讓人產生困惑的命名。
使用一致的名稱格式還有一個好處,就是能夠方便地使用正則表達式匹配的方式去作一些自動化任務,例如自動在組件文件開頭添加統一的文件註釋、版本號等。
3.選擇器命名約定
對於組件的選擇器,一般採用「烤肉串」命名形式,例如在一個問卷調查系統實例中的問題大綱組件,其sledor 屬性的值爲qustionaire-outline示.示例代碼以下:正則表達式
@Component({ inputs:['questionaire'], selector:'questionaire-outline', template:'...' }) export class QuestionaireOutline{ private questionairs:QuestionaireModle; constructor(){}
而對於通常指令的選擇器,一般採用首字母小寫的駝峯命名形式,以便於與組件的選擇器命名區分開來,例如:less
@Directive({selector:'[myUnless]'}) export class UblessDirective{ @Input('myUnless') condition :boolean; }
未完待續!函數