🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`审核人:谢洋` `被审核代码负责人:李伟&舒曼` `代码地址:https://192.168.1.240:8443/svn/repos/kunming` ### 存在的问题 #### 1、代码可读性优化(未修改) 代码应该空格的地方未留空,可读性降低。这种情况在变量名或其他自定义名称过长的情况下尤为明显 ```javascript renderJQProportion:function(data) { var jingqingProportionChart = require('jingqingProportionChart') jingqingProportionChart.drawCharts('#jingqingProportionChart',data,{}) } ``` 解决方案: ```javascript renderJQProportion: function (data) { var jingqingProportionChart = require('jingqingProportionChart') jingqingProportionChart.drawCharts('#jingqingProportionChart', data, {}) } ``` > 注意:该项目中的代码普遍存在这个问题,在编写代码的时候注意 #### 2、代码规范问题(未修改) ```javascript diandongchetop5: function(data) { for (var i = 0, length = data.length; i < length; i++) { data[i].name = data[i].name.substring(0, data[i].name.indexOf('分局')) } var bar = new DiandongcheBar() bar.updateData(data) } ``` 存在的问题: 1、函数名未使用驼峰命名方式 2、在属性或方法的级联调用超过3层以上时,尽量采用换行的方式 3、此问题不止这一处 解决方案: ```javascript dianDongCheTop5: function (data) { for (var i = 0, length = data.length; i < length; i++) { data[i].name = data[i] .name .substring( 0, data[i] .name .indexOf('分局') ) } var bar = new DiandongcheBar() bar.updateData(data) } ``` #### 3、注释问题(未修改) 注释应该与代码的缩进保持同步 ```javascript /** * 引用Mock数据 */ require('data/infocenter/overview/index.js') /** * 引入业务模块 */ var alarmcount = require('./server.js') ``` 解决方案: ```javascript /** * 引用Mock数据 */ require('data/infocenter/overview/index.js') /** * 引入业务模块 */ var alarmcount = require('./server.js') ``` #### 4、数据未做异常处理(未修改) 在数据为none或undefined的时候容易引起报错 ```javascript request.sendAjax(apiURL.map, function(data) { map.alarmcount(data.alarmcount) mapChart.updateData(data.map) }) ``` 解决方案: 使用try catch或者使用if检测数据的合法性 #### 5、函数名可读性优化(未修改) ‘jjqs’这种函数名不利于管理和维护 ```javascript jjqs:function(data) { trendChart.drawCharts('#jiejingtrendChart',data,{}) } ``` 解决方案: 建议使用可读性更强的名称 #### 6、变量优化(未修改) 未使用到的引用 或 只需引入库而不需要申明引用的变量不需要使用var保存 ```javascript var Map = require('../../../charts/map.js') var rectBar = require('../../../charts/takepolice/rectBar.js') ``` 解决方案: ```javascript require('../../../charts/map.js') var rectBar = require('../../../charts/takepolice/rectBar.js') ``` #### 7、css累赘(未修改) 重复声明了两次 vertical-align 属性 ```css .ove-ser-cartogram .value { display: inline-block; width: 160px; vertical-align: text-bottom; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; } ``` 解决方案: 去掉前面的一个属性,保留最后的一个同名属性 ```css .ove-ser-cartogram .value { display: inline-block; width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; } ``` #### 8、css缩进优化(未修改) ```css .ove-ser-cartogram .name { display: inline-block; width: 320px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; vertical-align: middle; } ``` 解决方案: 请保持所有同级的样式使用相同的缩进 ```css .ove-ser-cartogram .name { display: inline-block; width: 320px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; vertical-align: middle; } ``` #### 9、css书写顺序优化(未修改) ```css .groupsales rect:first-of-type { transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%; /*transform: skewY(30deg) translateY(-20px);*/ transform: skewY(10deg) translateY(-20px); -webkit-transform: skewY(10deg) translateY(-20px); } ``` 解决方案: 通常将不带前缀的css属性写在带前缀的属性之后,以保持浏览器的最佳兼容性 ```css .groupsales rect:first-of-type { -webkit-transform: skewY(10deg) translateY(-20px); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; transform: skewY(10deg) translateY(-20px); } ``` #### 10、存在错误的css代码(未修改) ```css .distributed-control-time li { border-width: 1px solid; border-style: solid; border-color: rgb(24, 48, 80); border-radius: 3px; background: linear-gradient(-90deg, rgba(20, 54, 83, 0.43137) 0%, rgba(23, 43, 80, 0.54) 50%, rgba(5, 18, 38, 0.55) 52%, rgba(15, 45, 71, 0.65098) 100%); width: 62px; height: 62px; display: inline-block; line-height: 62px; text-align: center; font-size: 28px; color: #2c6377; cursor: pointer; position: relative; } ``` 解决方案: ```css .distributed-control-time li { border-width: 1px solid; } ``` 这种写法浏览器无法解析, 建议border的三个基本属性都存在的情况下建议采用简写的方式: ```css .distributed-control-time li { border: 1px solid rgb(24, 48, 80); } ``` 另外注意background属性过长时为了保持可读性应该尽量换行 ```css .distributed-control-time li { background: linear-gradient( -90deg, rgba(20, 54, 83, 0.43137) 0%, rgba(23, 43, 80, 0.54) 50%, rgba(5, 18, 38, 0.55) 52%, rgba(15, 45, 71, 0.65098) 100% ); } ``` #### 11、建议不要在项目中出现情绪化的表现词(未修改) ```css /*20170928-fuck*/ .right-wrap .alarm{ left:2354px; background: url(../../images/takepolice/alarm-bg-right.png) no-repeat; background-size: 100% 100%; } ``` 解决方案: 虽然有时写代码会遇到情绪化(特别是在改需求的时候),但是建议不要在代码中出现类似语句。一是影响不好,二是以后忘了删,被其他人看见就不好了!!