老九门--β冲刺代码规范


这个作业属于哪个课程 2021春软件工程实践S班
这个作业要求在哪里 作业要求
这个作业目标 β冲刺代码规范
其他参考文献 阿里巴巴Java开发手册终极版v1.3.0, Vue.js风格指南

代码规范

后端代码规范

后端代码规范参考:阿里巴巴Java开发手册终极版v1.3.0

一、缩进

  • 缩进采用4个空格,禁止使用tab字符。

二、变量命名

  • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
  • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
  • 成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。

三、函数、类命名

  • 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
  • 类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO等。
  • 异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。

四、包命名

  • 包名必须全小写

五、常量命名

  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

六、各层命名规约

  • DAO层命名规约(1-7为前缀):
  1. 单条插入:insert
  2. 多条插入:batchInsert
  3. 单条查询:selectOne
  4. 多条查询:selectList
  5. 更新:update
  6. 统计:count
  7. 删除:delete
  8. 根据XXX删改查:后缀byXXX
  • Service层命名规约(1-7为前缀):
  1. 单条插入:add
  2. 多条插入:batchAdd
  3. 单条查询:find
  4. 多条查询:findXXXList
  5. 更新:modify
  6. 统计:sum
  7. 删除:remove
  8. 根据XXX删改查:后缀byXXX

七、每行最多字符数

单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则:

  • 第二行相对第一行缩进 4个空格,从第三行开始,不再继续缩进。
  • 运算符与下文一起换行。
  • 方法调用的点符号与下文一起换行。
  • 在多个参数超长,逗号后进行换行。
  • 在括号前不要换行。

八、函数最大行数

  • 函数的规模尽量限制在100行以内。
    说明:不包括注释和空格行。

九、空行规则

  • 相对独立的程序块之间、变量说明之后必须加空行。
    说明 :
    以下情况应该用空行分开:
    1)函数之间应该用空行分开;
    3)用空行将代码按照逻辑片断划分;

十、注释规则

  • 类、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式
  • 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。

十一、操作符前后空格

  • 值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“ =”、“ +=”
    “ >=”、“ <=”、“ +”、“ *”、“ %”、“ &&”、“ ||”、“ <<” 、“ ^” 等二元操作符的前后应当加空格。
  • 一元操作符如“ !”、“ ~”、“ ++”、“ --”、“ &”( 地址运算符) 等前后不加空格。
  • 像“[ ]”、“ .”、“ ->” 这类操作符前后不加空格。
  • 左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格。
  • if/for/while/switch/do等保留字与左右括号之间都必须加空格。
  • 函数名之后不要留空格,紧跟左括号' ( ' ,以与关键字区别。
  • 方法参数在定义和传入时,多个参数逗号后边必须加空格。
  • ' , ' 之后要留空格。如果' ; ' 不是一行的结束符号 ,其后也要留空格。

十二、单元测试

  • 单元测试应该是全自动执行的,并且非交互式的。测试框架通常是定期执行的,执行过程必须完全自动化才有意义。
    输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用 System.out 来进行人肉验证,必须使用 assert 来验证。
  • 单元测试代码必须写在如下工程目录:src/test/java,不允许写在业务代码目录下。
  • 单元测试的基本目标:语句覆盖率达到 70%;核心模块的语句覆盖率和分支覆盖率都要达到 100%

十三、安全规约

  • 未登录用户除了登录、修改密码的其他请求必须被拦截。
  • 采用预编译防止 SQL 注入,禁止字符串拼接 SQL 访问数据库
  • 用户请求传入的任何参数必须做有效性验证。
  • 表单、AJAX 提交必须执行 CSRF 安全过滤。
  • 对用户敏感数据进行处理。

十四、其他规约

  • 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;
    如果是非空代码块则:左大括号和右大括号都单独占一行。
  • 日期格式为:yyyy-MM-dd HH:mm:ss
    例:2021-04-23 16:06:20

前端代码规范

前端代码规范参考:Vue.js风格指南

一、组件名为多个单词

组件名应该始终是多个单词的,根组件 App 以及 之类的 Vue 内置组件除外。
这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。

二、组件数据

组件的 data 必须是一个函数。
当在组件中使用 data property 的时候 (除了 new Vue外的任何地方),它的值必须是返回一个对象的函数。

三、Prop 定义必要

Prop 定义应该尽量详细,至少需要指定其类型。

四、为 v-for 设置键值

总是用 key 配合 v-for,以便维护内部组件及其子树的状态。甚至在元素上维护可预测的行为,比如动画中的对象固化 (object constancy),也是一种好的做法。

五、避免 v-if 和 v-for 用在一起

永远不要把 v-if 和 v-for 同时用在同一个元素上。

六、为组件样式设置作用域

对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped attribute。

七、私有 property 名

使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突(比如 $yourPluginName)。

八、组件文件强烈推荐

只要有能够拼接文件的构建系统,就把每个组件单独分成文件。

九、单文件组件文件的大小写

单文件组件的文件名应该始终是单词大写开头 (PascalCase)。

十、基础组件名

应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 Base、App 或 V。

十一、单例组件名

只应该拥有单个活跃实例的组件应该以 The 前缀命名,以示其唯一性。

十二、紧密耦合的组件名

和父组件紧密耦合的子组件应该以父组件名作为前缀命名。

十三、JS/JSX 中的组件名大小写

JS/JSX 中的组件名应该始终是 PascalCase 的

十四、Prop 名大小写强烈推荐

在声明 prop的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用 kebab-case。

十五、多个 attribute 的元素

多个 attribute的元素应该分多行撰写,每个 attribute 一行。
在 JavaScript中,用多行分隔对象的多个 property 是很常见的最佳实践,因为这样更易读。模板和 JSX 值得我们做相同的考虑。

十六、带引号的 attribute 值强烈推荐

非空 HTML attribute值应该始终带引号 (单引号或双引号,选JS里不用的那个)。

十七、组件/实例选项中的空行

当你的组件开始觉得密集或难以阅读时,在多个 property 之间添加空行可以让其变得容易。在一些诸如 Vim 的编辑器里,这样格式化后的选项还能通过键盘被快速导航。

posted @ 2021-06-11 21:40  老九门999  阅读(103)  评论(4编辑  收藏  举报