`审核人:谢洋`
`被审核代码负责人:廖爽`
`代码地址:http://192.168.1.170/hyfe/demo-project/tree/master/demo-liaoshuang`
> 注:此文档只作为上一篇的补充,重复问题已省略
### 存在的问题
#### 1、DOM结构优化(已修改)
1. 在标签内没有任何内容的时候,建议不要单独留出空行。
2. 建议不要采用内部样式表(内联样式表和内嵌样式表)的写法,尽量将样式写进单独文件,采用外联(外部样式)的方式,通过 <link /> 标签引入 HTML 结构中。另外,内部样式非常不利于维护。
3. 另外 css 命名不建议使用驼峰命名,虽然 HTML 对大小写不敏感,但 js 或 jsp 等对大小写是敏感的,容易造成‘一个小问题找半天’的情况。
```html
<section class="ruleNum">
<svg class="ruleSvg" height="600" width="1000">
</svg>
</section>
```
解决方案:
```css
/*style.css*/
rule-svg {
width: 600px;
height: 1000px;
}
```
```html
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<section class="rule-num">
<svg class="rule-svg"></svg>
</section>
```
#### 2、js句尾分号问题(已修改,哈哈)
保持句尾分号的统一,要么全部使用分号,要么全部不用。建议全部不用。
> 友情提示:慢慢习惯吧,我也是这么走过来的!因为大家都不用,我也不好意思用了!
#### 3、画图时变量保存的问题(已修改)
建议属性值使用变量保存,统一使用,最好加上变量的注释,
这样随处可见数字的写法使得代码质量非常差,也非常不利于维护。
```javascript
cir.append("circle")
.attr("class", "brandC1")
.attr("cx", 500)
.attr("cy", 300)
.attr("r", 105)
cir.append("circle")
.attr("class", "brandC2")
.attr("cx", 500)
.attr("cy", 300)
.attr("r", 117)
//省略了部分重复的代码
```
解决方案:
```javascript
// 圆的class
var style = ['c1', 'c2']
// 圆的x坐标
var cx = 500
// 圆的y坐标
var cy = 300
// 圆的半径
var r = [105, 117]
cir.append("circle")
.attr({
"class": function (d, i) {
return "brand-" + style[i]
}
"cx": cx,
"cy": cy,
"r": function (d, i) {
return r[i]
}
})
```
#### 4、Number类型和String类型不要混用(已修改)
数字和字符串是js里面的两个基本类型,既然是两个独立的类型,在能传数字的地方尽量传数字,而不要选择字符串类型的数字,这个可以避免很多的坑:比如
```javascript
var num = 123
var str = '123'
console.log(num == str) //true
console.log(num === str) //false
```
同时也可以避免在很多时候不必要的数据转换
建议修改的代码:
```javascript
circle("5", "#ff0", "none", "none", "tongbi")
circle("5", "#ff0", "none", "none", "huanbi")
```
解决方案:
```javascript
circle(5, "#ff0", "none", "none", "tongbi")
circle(5, "#ff0", "none", "none", "huanbi")
```
如果可能,请节约传参的数量和保持传参的质量("none","none"看起来很low)
#### 5、mock数据优化(已修改)
```javascript
'carNum1': [{
'name': '机动车总数',
'value|100000-9999999': 1
},
{
'name': '网约车总数',
'value|1000-9999999': 1
},
{
'name': '重点总数',
'value|10000-9999999': 1
},
{
'name': '货车总数',
'value|100-9999999': 1
}
]
```
解决方案:
```javascript
'carNum1|4': [
{
'name|+1': ['机动车总数', '网约车总数', '重点总数', '货车总数'],
'value|100000-9999999': 1
}
]
```
#### 6、尽可能地验证数据(修改中)
未验证的数据存在很大的安全隐患,也为后期增加了许多bug的风险
```javascript
request.sendAjax(baseConfig.trafNum, function(data) {
trafNum(data)
})
```
解决方案:
```javascript
request.sendAjax(baseConfig.trafNum, function (data) {
if (data) {
trafNum(data)
}
)
```
- 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-谢洋