`审核人:白占宁`
`被审核代码负责人:李祁`
`代码地址:http://192.168.1.170/hyfe/demo-project/tree/master/demo-liqi-es6`
#### 1、定时刷新调用对应的请求方法(已修改)
```
if (update) {
setInterval(() => {
charts.render()
}, duration)
}
```
`request.js`中封装了定时请求的API,在请求数据时候调用该API即可。
#### 2、CSS中各属性的顺序(仅建议)
```
.container {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
}
```
参考《CSS编码规范》,注意CSS中各属性的建议顺序。
#### 3、【严重】项目结构不对(未修改)
业务代码统一放到`scripts`文件夹下面,不要在`apps/xxx/`下再新建charts文件夹,公用的图表组件统一放到`src/charts`目录下。
说明:可能以后会复用到的图表组件,统一放到`src/charts`目录下,demo项目中`src/charts`目录下的组件如果不需要可以全部删除掉。
#### 4、功能实现方式优化(已修改)
```
// 定义渐变元素
// ==========
const hbGradient = svg.append('linearGradient')
.attr('id', 'hb_gradient')
hbGradient.append('stop')
.attr('offset', '0%')
.style('stop-color', '#e11d1d')
hbGradient.append('stop')
.attr('offset','50%')
.style('stop-color', '#ed772b')
```
类似创建渐变、过滤器等所有定义到defs中的内容,建议写到模板里面,减少JS代码量。
#### 5、不必要的中间变量(已修改)
```
const lineTBG = svg.append('g')
const lineHBG = svg.append('g')
this.lineTBG = lineTBG
this.lineHBG = lineHBG
```
修改为:
```
this.lineTBG = svg.append('g')
this.lineHBG = svg.append('g')
```
不局限于这两行代码,其他类似问题都做同样的处理。
#### 6、一行不超过120个字符(已修改)
```
.attr('x2', this.config.axis.width + this.config.padding.left - this.scaleX.rangeBand() / 2)
M0,242.55Q100,368.445,125,386.925C162.5,414.64500000000004,212.5,416.95500000000004,250,427.35S337.5,481.34625000000005,375,456.225S462.5,314.44875,500,259.875Q525,223.49249999999998,625,92.39999999999998
```
适当的换行,提供代码可读性。
#### 7、【严重】业务代码和图表组件代码分离(已修改)
```
renderBelong() {
fetch(url, d => {
this.dataset = d
this.drawAxis()
this.drawLines()
})
}
```
#### 8、【严重】update和enter部分设置公用属性的代码封装成单独的方法调用(已修改)
D3中update和enter部分,处理样式的代码基本一致, 将这些能够复用的代码封装成一个方法,减少代码量,提升复用率。
#### 9、【严重】注释不完善(已修改)
部分文件中注释不全或缺少必要的注释。
#### 10、【严重】命名不规范(已修改)
```
'url': '/cars_count',
```
存在URL命名不规范、图片命名不规范的问题,在所有命名中,禁止出现下划线形式,包括变量名、方法名、类名、文件名、图片名、URL等。
#### 11、【严重】定义的变量没有使用(未修改)
```
let that = this
let update = this.pieG.selectAll('polyline').data(piedata)
```
定义了that变量,后面的代码没有使用到该变量。
#### 12、【中等】数据传参方式(未修改)
```
render(dataset) {
this.dataset = dataset
this.drawPie()
}
```
不用定义实例变量,将数据源作为参数传递给渲染方法,另外,`this.drawPie()`方法体可以全部在render中实现,少定义一个方法,上一次方法调用。
- 1、执法项目
- 1.1 20170523-张红桥
- 1.2 20170523-李伟
- 2、运维项目
- 2.1 20170527-欧阳德才
- 2.2 20170613-尹帮会&欧阳德才
- 2.3 20170706-欧阳德才
- 2.4 20170706-尹帮会
- 3、指挥大屏项目
- 3.1 20170712-欧阳德才
- 4、PC端项目
- 4.1 20170516-张红桥
- 5、万达项目
- 5.1 20170619-李伟&舒曼
- 5.2 20170623-李伟&舒曼
- 5.3 20170803-李伟(未修改)
- 5.4 20170811-李伟(未修改)
- 6、可视化组件
- 6.1 20170718-张红桥
- 7、UI组件
- 7.1 20170522-舒曼
- 8、新员工练习项目
- 8.1 20170401-欧阳德才
- 8.2 20170401-舒曼
- 8.3 20170503-舒曼
- 8.4 20170609-刘黎
- 8.5 20170620-刘黎
- 8.6 20170703-谢洋
- 8.7 20170706-孙雨珩
- 8.8 20170706-谢洋
- 8.9 20170711-谢洋
- 8.10 20170724-谢洋
- 8.11 20170908-谭俊
- 8.12 20171026-廖爽
- 8.13 20171027-廖爽
- 8.14 20171027-廖爽
- 8.15 20171031-廖爽
- 8.16 20171103-覃英琪
- 8.17 20171103-01-廖爽
- 8.18 20171103-02-廖爽
- 8.19 20171110-赵家红
- 8.20 20171110-覃英琪
- 8.21 20171110-02-赵家红
- 8.22 20171115-01-廖爽
- 8.23 20171127-赵家红
- 8.24 20171122-李祁
- 8.25 20180528-吴泓江
- 9、资源监控大屏
- 9.1 20170705-舒曼
- 9.2 20170711-舒曼
- 9.3 20170724-舒曼
- 10、CQ指挥舱
- 10.1 20170906-张红桥&李伟&谢洋
- 11、昆明
- 11.1 20171009-李伟&舒曼
- 12、情报墙
- 12.1 20171025-谢洋
- 13、动态管控
- 14、迪爱斯区县
- 14.1 20171128-欧阳德才
- 15、贵州块数据指挥调度平台
- 16、北京东城区可视化项目
- 16.1 20180425-欧阳德才&谢洋
- 16.2 20180510-谢洋