zoukankan      html  css  js  c++  java
  • js024-最佳实践

    js024-最佳实践

    本章内容:

    可维护的代码

    保证代码性能

    部署代码

    24.1 可维护性

    24.1.1 代码的可维护性

    代码可维护性的特征:

    特性

    说明

    可理解性

    其他人可以理解它的用途和一般途径

    直观性

    代码中的东西能一看就明白,不论其操作过程多么复杂

    可适应性

    代码以一种数据上的变化不要求完全重写的方法撰写

    可扩展性

    在代码架构上已考虑到在未来允许对核心功能进行扩展。

    可调试性

    当有地方出错时,代码可以给予你足够的信息来尽可能直接的确定问题所在。

     

    24.1.2 代码约定

    1、可读性

    在必要的地方进行必要的注释

    A、函数和方法

    B、 大段代码

    C、 复杂的算法

    D、Hack

    2、变量个函数名

    变量名应为名词

    函数名应以动词开始,返回布尔类型的一般以is开始

    变量和函数都应使用合乎逻辑的名字

    3、变量类型透明

    有3种表示数据类型的方式:

    A、初始化;

    B、 使用匈牙利标记法来指定变量信息

    C、 使用类型注释

    24.1.3 松散耦合

    1、HTML/JavaScript

    2、CSS/JavaScript

    3、应用逻辑/事件处理程序

    24.1.4 编程实践

    1、尊重对象所有权

    不要为实例或原型添加属性;

    不要为实例或原型添加方法;

    不要重定义已存在的方法;

    2、避免全局量

    3、避免与null进行比较

     如果看到了与null比较的代码金陵尝试一下技术替换:

    A.如果值应为一个引用类型,使用instanceof操作符检查其构造函数;

    B. 如果值应为一个基本类型,使用typeof操作符检查其类型;

    C. 如果是希望对象包含某个特定的方法名,则使用typeof操作符确保指定名字的方法存在于对象上。

    !!代码中的null比较越少,就越容易确定代码的目的,并消除不必要的错误。

    4、使用常量

    将数据和使用它的逻辑进行分离:

    A、重复值:任何在多处用到的值,都应该抽取为一个常量。(这样容易造成当一个值变了另一个值没变的错误);

    B、 用户界面字符串:任何用于显示给用户的字符串,都应该抽取出来以方便国际化;

    C、 URLs:在web中,资源位置很容易变更,所以推荐用一个公共地方存放所有的URL;

    D、任意可能会更改的值:每当你用字面量的时候,都应该考虑该变量的值是否不会再改变,如果是的话,这个值应该被提取出来作为一个常量

    24.2 性能

    24.2.1 注意作用域

    1、避免全局查找

    2、避免with语句

    24.2.2 选择正确的方法

    1、避免不必要的属性查找

    2、优化循环

    A、减值迭代

    B、简化终止条件

    C、简化循环体

    D、使用后测试循环:for和while是前测试循环,do-while是后测试循环,可以避免最初终止条件的计算,因此运行更快。

    3、展开循环

    4、避免双重解释

    5、性能的其他注意事项

    A、原生方法比较快

    B、Switch语句比较快

    C、位运算符比较快

    24.2.3 最小化语句数

    1、多个变量生命

    2、插入迭代值

    3、使用数组和对象字面量

    24.2.4 优化DOM交互

    1、最小化现场更新

    2、使用innerHTML

    3、使用事件代理

    4、注意HTMLCollection

    24.3 部署

    24.3.1 构建过程

    注意:

    1、知识产权问题;

    2、文件大小;

    3、代码组织

    24.3.2 验证

    24.3.3 压缩

    1、文件压缩

    压缩器一般进行如下步骤:

    A.删除二外的空白(包括换行)

    B. 删除所有的注释

    C. 缩短变量名

    2、HTTP压缩

    原文地址:http://www.cnblogs.com/lal-fighting/p/5167000.html

  • 相关阅读:
    GridControl 绑定非绑定列
    AutoMapper
    ABP-TaskEver 路线图
    Angular--页面间切换及传值的四种方法
    知行合一,止于至善
    AutoFac 依赖注入--问题集
    【入门】依赖注入(DI)-开始
    利用JAVA生成二维码
    sqlserver如何关闭死锁进程.
    Hadoop/HBase 配置snappy压缩
  • 原文地址:https://www.cnblogs.com/lal-fighting/p/5167000.html
Copyright © 2011-2022 走看看