登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

读《代码大全2》第3部分 变量  

2009-11-26 19:24:34|  分类: 读书 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
全部书摘参见 读《代码大全2》

第3部分 变量
第10章 使用变量的一般事项
  1. 隐式变量声明对于任何一种语言来说都是最具危险性的特性之一(动态语言不都是这样的吗)。要求显式声明数据的语言实际是在提醒你要更加仔细的使用这些数据。
  2. 开始时采用最严格的可见性,然后根据需求扩展变量的作用域
  3. 你能够隐藏的信息越多,在同一时间所需要考虑的信息就越少
  4. Key Points
    1. 数据初始化过程很容易出错
    2. 最小化每个变量的作用域。把同一变量的引用点集中在一起。把变量限定在子程序或类的范围内。避免使用全局数据
    3. 把使用相同变量的语句尽可能集中在一起
    4. 早期绑定会降低灵活性,但有助于减少复杂度。晚期绑定可以增加灵活性,同时增加复杂度
    5. 把每个变量用于唯一的用途

第11章 变量名的力量
  1. 要求使用短变量名是早期编译器的遗留物
  2. 不要采用给变量后后面加数字后缀的方法,请使用数组来代替一组单个变量
  3. Key Points:
    1. 好的变量名是提高程序可读性的一项关键要素。对特殊种类的变量,比如循环下标和状态变量,需要加以特殊的考虑。
    2. 名字要尽可能的具体。那些太模糊或者太通用以至于能够用于多种目的的名字通常都是很不好的。
    3. 名字规则应该能够区分局部数据、类数据和全局数据。他们还应当可以区分类型名、常量、枚举类型名字和变量名。
    4. 无论做那种类型项目,你都应该采用某种变量命名规则。你所采用规则的种类取决于你的程序规模,以及项目成员的人数
    5. 现代编程语言很少需要用到缩写。如果你真的要使用缩写,请使用项目缩写词典或者标准前缀来帮助理解缩写。
    6. 代码阅读的次数远远多于编写的次数。确保你所取的名字更侧重于阅读方便而不是编写方便

第12章 基本数据类型
  1. 一堆相差较大的浮点数求和,应该先排序,然后从小到大依次相加,以防止大数吃小数。
  2. 如果需要,程序中出现0和1的MagicNumber是可以接受的,其他的都可以换掉
  3. 避免硬编码字符串
  4. 在程序生命期中尽早决定国际化/本地化策略,尽早决定是否采用Unicode
  5. calloc在分配内存同时自动初始化为0,malloc仅负责分配内存,_alloca和_malloca则是在栈上进行空间分配
  6. 把枚举类型的第一个元素留作非法值
  7. 像C++这样要求通过头文件来分发定义的语言是较难实现真正的信息隐藏的
  8. Key Points:
    1. 使用特定的数据类型就意味着要记住适用于各个类型的很多独立原则。
    2. 如果你的语言支持,创建自定义类型会使得你的程序更容易修改,并更具有自描述性
    3. 当你用typedef或者其等价方式创建了一个简单类型的时候,考虑是否更应该创建一个新的类

第13章 不常见的数据类型
  1. 每一个指针都包含两部分:内存中的某处位置;如果解释该位置中的内容。
  2. 在与指针分配相同的作用域中删除指针
  3. Key Points:
    1. 结构体可以使得程序更简洁、更容易理解,以及更容易维护(对没有类概念的语言来说
    2. 每当你打算使用结构体的时候,考虑采用类是不是会工作的更好
    3. 指针很容易出错。用访问器子程序或类以及防御式编程实践来保护自己的代码
    4. 避免用全局变量,不只是因为它们很危险,还是因为你可以用其他更好的方法取代它们
    5. 如果你不得不使用全局变量,那么就通过访问器子程序来使用它。访问器子程序能为你带来全局变量所能带来的一切优点,还有一些额外好处
  评论这张
 
阅读(1156)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018