发表于: 2021-08-31 20:53:23
0 1670
今天完成的事情:项目开发规范;
图片:
命名全部用小写英文字母或加上数字的组合,其中不得包含汉字、空格、特殊字符;尽量用易懂的词汇便于其他团队成员理解;
保证视觉效果的前提下选择最小的图片格式与质量,减少加载时间;
色彩丰富且没有透明半透明部分的图片,切图使用jpg;色彩较丰富且有透明半透明部分的图片,切图使用png24;有透明且色彩单一边缘清晰的图片,切图使用png8;
html中重要图片加上alt属性;
页面相对稳定情况下,使用css sprite技术,集中小的背景图或图片,减少HTTP请求次数;
Javascript:
基本规则:
每行代码结束必须有分号
命名语义化,避免使用无意义的命名,变量和函数命名用小驼峰法;
避免随意使用全局变量;
项目实战
对于接口异常应有相应提示;
重复调用代码进行封装;
改动公共代码部分需要通知到所有项目组成员,要求自测一遍涉及到改代码的所有页面,确保项目正常。
Angular:
$time 替代 setTimeout、 $interval 替代 setInterval、$window 替代 window、$document 替代document、$http 替代$.ajax
使用promise($q)而非回调
尽可能使用$resource 而非$http。更高的抽象避免冗余
避免使用全局变量或函数,通过依赖注入解决所有依赖,减少bug
不污染$scope,仅添加与视图相关的函数和变量
不使用$前缀来命名变量属性和方法,这是留给angularJS的
检查是否有多余的方法注入
控制器:
不在控制器里操作DOM,违背了关注点分离原则。应该通过指令操作DOM
控制器是js构造函数,所以应该用大驼峰法命名
控制器不应该在全局中定义
使用controller as语法,优点:绑定的属性不属于$scope原型链。非必须由$scope完成的操作移除了$scope,为angular2做好准备。更接近于普通js构造函数。
尽可能的精简控制器,将通用函数抽象为独立服务
Controller中只写主要逻辑,具体的判断由util和service负责
需要跨控制器通讯时,通过方法引用或者$emit,$broadcast,$on方法。发送和广播消息应该限定在最小作用域
指令
小驼峰法命名
link function 中使用scope而不是$scope。
DOM操作只通过指令完成
可复用的组件创建独立作用域
处理不可信的数据时,使用$sce
过滤器
小驼峰法命名
尽可能使过滤器精简
过滤器中只做一件事,更复杂的操作可以用pipe串联多个过滤器
服务
小驼峰法命名
业务逻辑封装到服务中,业务逻辑抽象为服务作为model
使用$cacheFactory进行回话级别的缓存,缓存网络请求或复杂运算的结果
模板
使用ng-bind或者ng-cloak而非简单的{{}}以防止页面渲染的闪烁
避免模板中使用复杂表达式
明天计划的事情:写页面,做项目,理解代码。
评论