# 开发规范

# 项目开发规范

规范的目的是为了编写高质量的代码,让你的团队成员每天得心情都是愉悦的,大家在一起是快乐的。

引自《阿里规约》的开头片段:

现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。

# 项目命名

全部采用小写方式, 以中划线分隔。

    // bad
    mall_management-system / mallManagementSystem

    // good
    mall-management-system

# 目录与文件命名

公共组件应采用大驼峰或者中划线的形式,如果是新项目一律采用大写形式,如果项目中已有组件命名形式,要与原有方式保持一致。

除了上述公共组件以外,

普通文件和文件夹全部采用小驼峰形式,方便页面引入,以及编写动态加载文件的部分,有复数结构时,要采用复数命名法, 缩写不用复数

    // bad
    script / demo_scripts / demo-scripts

    // good
    scripts / demoScripts

# 变量命名

方法名、参数名、成员变量、局部变量都统一使用小驼峰风格。

    // bad
    local_value / input-use-id

    // good
    localValue / getHttpMessage() / inputUserId

# css类命名

采用BEM命名规范,Bem 是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex (opens new window) 团队提出的一种前端 CSS 命名方法论。 具体参考 (opens new window)

  • 中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。
  • __ 双下划线:双下划线用来连接块和块的子元素
  • --双中划线:双中划线用来描述一个块或者块的子元素的一种状态

WARNING

注意: 修饰符(modifier)使用--而不是_,这里我们以element-ui使用的方式为准。

    // bad
    .block{}
    .block .element{}
    .block .element.modifier{}

    // good
    .block{}
    .block__element{}
    .block__element--modifier{}

# 命名严谨性

代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用

    // bad
    DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3

    // good
    henan / luoyang / rmb 等国际通用的名称,可视同英文。

杜绝完全不规范的缩写,避免望文不知义:

    // bad
    AbstractClass“缩写”命名成 AbsClass;condition“缩写”命名成 condi,此类随意缩写严重降低了代码的可阅读性。