Beta阶段——代码规范
作业基本信息
这个作业属于哪个课程 | 2021春软件工程实践|W班 |
---|---|
这个作业要求在哪里 | 团队作业六——beta冲刺+事后诸葛亮 |
团队 | Growing light |
这个作业的目标 | 代码规范 |
其他参考文献 | 《构建之法》 |
vue文档规范
组件名应该始终是多个单词的,根组件 App 以及
、 之类的 Vue 内置组件除外。这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
Vue.component('todo-item', {
// ...
})
export default {
name: 'TodoItem',
// ...
}
组件的 data 必须是一个函数。当在组件中使用 data property 的时候 (除了 new Vue 外的任何地方),它的值必须是返回一个对象的函数。
Prop 定义应该尽量详细。
在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类型。
props: {
status: String
}
// 更好的做法!
props: {
status: {
type: String,
required: true,
validator: function (value) {
return [
'syncing',
'synced',
'version-conflict',
'error'
].indexOf(value) !== -1
}
}
}
用 key 配合 v-for。在组件上总是必须用 key 配合 v-for,以便维护内部组件及其子树的状态。
避免v-ifhe v-for一起使用
使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。
<ul>
<li
v-for="user in activeUsers"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
<ul v-if="shouldShowUsers">
<li
v-for="user in users"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped attribute。
使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突
html文档规范
除id、name为驼峰命名法外,标签名及属性名全部字母小写。属性值使用双引号包裹。
id、name属性为驼峰命名;class为短横分隔命名
id、name同一页面必须唯一
<div id="todayNews" class="container-fluid">
<input name="username">
</div>
同一页面,不同元素,应避免使用相同的 name 与 id
<input name="foo">
<div id="foo"></div>
<script>
// IE6 将显示 INPUT
alert(document.getElementById('foo').tagName);
</script>
代码缩进和换行
使用 2 个空格做为一个缩进层级,不允许使用 4 个空格 或 tab 字符。
建议每行不得超过 120 个字符。
禁止为了 hook 脚本,创建无样式信息的 class
不允许 class 只用于让 JavaScript 选择某些元素,class 应该具有明确的语义和样式。否则容易导致 css class 泛滥。使用 id、属性选择作为 hook 是更好的方式。
后端代码规范(Java)
-
缩进
缩进使用4个空格(Tab)
-
变量命名
变量名采用lowerCamelCase风格,使用驼峰命名法,变量名只包含字母和数字,首个单词首字母大写,后面单词首字母小写,有数字的话在最后。使用有意义的名字作为变量名方便阅读代码(作用域很小的临时变量使用 i、j、k....等命名方式),命名使用英文单词不使用拼音
-
每行最多字符数
一行最多只有一个语句,一行最多不超过100个字符
-
函数最大行数
单个函数最多包含50行代码
-
函数、类命名
函数命名采用lowerCamelCase风格,使用驼峰命名法,首个单词首字母大写,后面单词首字母小写,取有函数的功能作为函数名;类名采用UpperCamelCase风格,使用驼峰命名法,首字母大写,类名包含具体含义,可以指明一类事物。
-
常量
常量命名全部使用大写,单词之间使用‘ _ ’分隔
-
空行规则
不同的功能模块之间会留有空行,如函数之间,或函数内部不同部分之间会空行便于阅读。
-
注释规则
单行注释用//,短的注释直接跟在语句后面,长的注释另起一行
多行注释使用/**/
-
操作符前后空格
操作符前后均留有一个空格
-
其他规则
...