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

  • 相关阅读:
    UVa 12174 (滑动窗口) Shuffle
    UVa 1607 (二分) Gates
    CodeForces ZeptoLab Code Rush 2015
    HDU 1525 (博弈) Euclid's Game
    HDU 2147 (博弈) kiki's game
    UVa 11093 Just Finish it up
    UVa 10954 (Huffman 优先队列) Add All
    CodeForces Round #298 Div.2
    UVa 12627 (递归 计数 找规律) Erratic Expansion
    UVa 714 (二分) Copying Books
  • 原文地址:https://www.cnblogs.com/lal-fighting/p/5167000.html
Copyright © 2011-2022 走看看