Skip to content

Latest commit

 

History

History
25 lines (23 loc) · 3.36 KB

coding-spec.md

File metadata and controls

25 lines (23 loc) · 3.36 KB
  • 代码中对所有东西的命名,一律采用驼峰命名法,例如checkProperty,而不要命名为 check_property
  • 关于类型的总体原则,包括变量、方法返回值、形参等,全部加上类型,并且类型越具体越好。any类型的变量尽可能的少用。
    • 作用域大于等于类时,必须严格遵守这个规范,不允许无类型。包括类的成员变量、成员方法(形参和返回值),包括全局变量、方法。
    • 对于函数的局部变量、代码块内的局部变量,在编译器能够精确推导得到其类型时,可以忽略类型。比如 const a = "a string";
  • 所有命名严禁以拼音来命名,必须以词义恰当的英语单词来命名。命名时,要注意单词的时态、单复数等情况。总体原则是让他人能够“顾名思义”,而不用去猜测其作用。
  • 命名时,尽量避免使用缩写(现在的IDE提示很强大,即使很长的变量名,也不需要手敲很多字符),不要出现类似checkPropStatus一半单词缩写一半全写的情形。
    • 尽量采用约定俗成的缩写,不要自己发明,比如property常常缩写为prop,就别自己发明一个prpt,pro,proper这样的奇怪的缩写。
  • 所有的类、接口、自定义类型、枚举类名,都以大写字母开头。其中接口一律以字母I开头,抽象类一律以Abstract开头,枚举项以小写字母开头。
  • 所有的方法、变量,都以小写字母开头。所有json对象的属性,也以小写字母开头
  • 对于方法命名
    • 命名时一般以动宾结构的方式,比如checkProperty,其中check是一个动词,property是一个宾语,而不要命名为propertyCheck
    • 对于一些类型是Function的变量的命名,建议也采用这个方式命名,比如 const removeClickEvent = window.listen('click', ...)
    • 对于一些回调函数,也可根据习惯命名为 xxxxHandler,但是应该尽量避免。
    • 类的private成员方法一律以下划线开头,public/protected成员方法不得以下划线开头
    • 必须在组件内的其他类调用,且不希望对应用开放的成员方法,也以下划线开头。尽量避免出现这个情形。
  • 对于类、变量、自定义类型、枚举类名的命名
    • 一般以名词或者形容词+名词的结构来命名,比如data,更具体的data可以命名为initialData,更具体且有时态的initializedData
    • 对于类的成员变量、成员方法,尽量避免使用单一的单词,应该尽可能的增加一些形容词、时态来修饰成员变量、成员方法,特别是public的成员变量、方法,更是需要描述的精确。比如光秃秃的一个data,鬼才知道这是啥data
    • 类的private成员变量一律以下划线开头,public/protected成员变量不得以下划线开头
    • 必须在组件内的其他类调用,且不希望对应用开放的成员变量,也以下划线开头。尽量避免出现这个情形。
  • 在模板中用到的组件的变量和方法,都以 _$ 开头。因为这些变量必须定义成public的,否则在prod模式下编译会失败,而这些变量、方法往往都是私有的。

更多详细的规范请参考这里 http://wiki.zte.com.cn/pages/viewpage.action?pageId=38540246

http://gitlab.zte.com.cn/10045812/jigsaw/issues/266