代码来找茬
找茬项目 | 速搭平台 |
---|---|
开发人员 | 刘金萍 |
找茬人员 | 刘心瑜、刘金萍、王慧敏、魏孟皓、彭从豪、齐继超、许敏 |
下期找茬 | 微服务流立方 |
遵循规范:2022 前端工程师开发规范手册(v22.6.16) https://www.yuque.com/docs/share/6f0825ad-6d9f-4d70-bbd1-ca1a4b5c694c
找茬规则
- 每周四轮流对一个项目进行代码Reivew
- 成员可对项目进行相互找茬,找出可优化的代码片段
- 遵循规范给出调整建议并指出规范问题
- 案例留档整理
找茬案例
找茬者-彭从豪
优化代码片段一 ```vue // not good
// good
该代码存在以下规范问题:<br />4.1【推荐】element-ui组件样式放置在style后
<a name="l1Fem"></a>
#### 找茬者-魏孟皓
优化代码片段一
```css
// not good
.el-icon-question {
top: 50%;
position: absolute;
transform: translateY(-35%);
font-size: 14px;
}
// good
.el-icon-question {
position: absolute;
top: 50%;
transform: translateY(-35%);
font-size: 14px;
}
该代码存在以下规范问题:
4.2【参考】相关的属性声明按以下顺序做分组处理,组之间需要有一个空行
找茬者-刘心瑜
优化代码片段一
// not good
<el-form-item label="提交次数:" class="select-form">
// good
<el-form-item class="select-form" label="提交次数:">
该代码存在以下规范问题:
4.1 属性顺序【参考】属性应该按照特定的顺序出现以保证易读性
优化代码二
// not good
openBrowsing: false, //开启浏览展示
taskSubmTimes: '1', //默认为永久提交一次
// good
openBrowsing: false, // 开启浏览展示
taskSubmTimes: '1', // 默认为永久提交一次
该代码存在以下规范问题:
4.3 代码风格 9.【强制】注释://
后插入一个空格,/*
后插入一个空格,*/
前插入一个空格
找茬者-许敏
优化代码片段一
// not good
<orga :orgid="msg" flag="task" @updata="closeTaskOrga"></orga>
// good
<orga :org-id="msg" flag="task" @updata="closeTaskOrga"></orga>
该代码存在以下规范问题:
4.4 语法 8.【推荐】Prop 名大小写,在声明 prop
的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用 kebab-case
优化代码片段二
// not good
const nameFilter = (rule, value, callback) => {
console.log('ppp');
if (value.trim() === '') {
callback(new Error('任务名不能为空'));
} else {
callback();
}
};
// good
const nameFilter = (rule, value, callback) => {
if (value.trim() === '') {
callback(new Error('任务名不能为空'));
} else {
callback();
}
};
该代码存在以下规范问题:
4.3 语法 14.【推荐】慎用 console.log,因 console.log 大量使用会有性能问题
找茬者-刘金萍
优化代码片段一
// not good
<el-dialog top="2%" class="dialogEditorg" title="组织管理"></el-dialog>
// good
<el-dialog top="2%" class="dialog-editorg" title="组织管理"></el-dialog>
该代码存在以下规范问题:
4.2 CSS / Less 编码规范
【强制】类名使用小写字母,以中划线分隔
找茬者-王慧敏
优化代码片段一
// not good
import { getSessionStorageUserInfo } from '@/utils/auth';
const userInfo = JSON.parse(getSessionStorageUserInfo());
import { mapGetters } from 'vuex';
import { queryorgPerson } from '@/api/organization';
import { queryProjectInfo, queryOnlinePageByProject, handOut, queryProjectOrg } from '@/api/lowCode';
// good
import { getSessionStorageUserInfo } from '@/utils/auth';
import { mapGetters } from 'vuex';
import { queryorgPerson } from '@/api/organization';
import { queryProjectInfo, queryOnlinePageByProject, handOut, queryProjectOrg } from '@/api/lowCode';
const userInfo = JSON.parse(getSessionStorageUserInfo());
该代码存在以下规范问题:
【推荐】全局变量在导入相关文件后,应该写在导入文件的最后
找茬者-齐继超
优化代码片段一
// not good
<el-input placeholder="请输入成员名称或手机号" v-model="valueSearch" @keyup.enter.native="searchprojectPerson" size="small" >
<el-button slot="append" @click="searchprojectPerson"><span>搜索</span></el-button>
</el-input>
// good
<el-input v-model="valueSearch" @keyup.enter.native="searchprojectPerson" size="small" placeholder="请输入成员名称或手机号">
<el-button slot="append" @click="searchprojectPerson"><span>搜索</span></el-button>
</el-input>
该代码存在以下规范问题:
4.1 属性顺序【参考】属性应该按照特定的顺序出现以保证易读性