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

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

读《代码大全2》第4部分 语句  

2009-12-17 14:22:43|  分类: 读书 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

全部书摘参见 读《代码大全2》


第4部分 语句
第14章 组织直线型代码
  1. Key Points:
    1. 组织直线型代码的最主要原则是按照依赖关系进行排列
    2. 可以用好的子程序名、参数列表、注释,以及——如果代码足够重要——内务管理变量来让依赖关系变得明显
    3. 如果代码之间没有顺序依赖关系,那就设法使相关的语句尽可能的接近

第15章 使用条件语句
  1. 首先写正常代码路径;再处理不常见情况(这和秒大刀惯用的“短路”写法是相反的
  2. 把正常的处理放在if后面而不要放在else后面
  3. switch-case中的default子句只用于检测真正的默认情况或用来检测错误
  4. Key Points:
    1. 对于简单的if-else语句,请注意if子句和else子句的顺序,特别是用它来处理大量错误的时候。要确认正常的情况是清晰的。
    2. 对于if-then-else语句串和case语句,选择一种最有利于阅读的顺序
    3. 为了捕获错误,可以使用case语句中的default子句,或者使用if-then-else语句串中的最后那个else子句
    4. 各种控制结构并不是生来平等的。请为代码的每个部分选用最合适的控制结构

第16章 控制循环
  1. for循环就是为了简单的用途,更复杂的循环最好用while循环去处理。在适当的情况下多使用for循环。
  2. 一个循环只做一件事
  3. 循环嵌套应控制在3层以内
  4. Key Points:
    1. 循环很复杂。保持循环简单将有助于别人阅读你的代码
    2. 保持循环简单的技巧包括:避免使用怪异的循环、减少嵌套层次、让入口和出口一目了然、把内务操作代码放在一起
    3. 循环下标很容易被滥用。隐私命名要准确,并且要把它们各自仅用于一个用途
    4. 仔细的考虑循环,确认它在每一种情况下都运转正常,并且在所有可能的条件下都能退出

第17章 不常见的控制结构
  1. Key Points:
    1. 多个return可以增强子程序的可读性和可维护性,同时可以避免产生很深的嵌套逻辑。但是使用它的时候要多加小心
    2. 递归能够很优雅的解决一小部分问题。对它的使用也要倍加小心
    3. 在少数情况下,goto是编写可读和可维护代码的最佳方法。但这种情况非常罕见。除非万不得已,不要使用goto

第18章 表驱动法
  1. 凡是能通过逻辑语句来选择的事物,都可以通过查表来选择。查表法在应对复杂逻辑时会更有效。
  2. 编写到表里面的数据比嵌入代码的数据更容易维护
  3. 表驱动非常灵活并且容易修改
  4. 最好是去找一种好的方案而且同时避免引发灾难,而不要试图去寻找最佳方案
  5. Key Points:
    1. 表提供了一种复杂的逻辑和集成结构的替代方案。如果你发现自己对某个应用程序的逻辑或者继承树关系感到困惑,那么问问自己它是否可以通过一个查询表来加以简化
    2. 使用表的一项关键决策是决定如何去访问表。你可以采取直接访问、索引访问或者阶梯访问
    3. 使用表的另一项关键决策是决定应该把什么内容放入表中

第19章 一般控制问题
  1. 在bool表达式中应该用标识符true和false,而不要用0和1等数值
  2. 清晰的程序比对混乱的程序写清楚的注释好,因为程序员更关心代码,而不是注释
  3. 复杂的逻辑决策可以采用决策表而不是复杂的条件判断
  4. 有一些C传统并不是基于最大化的可读性或者可维护性的
  5. 可以通过重复检测条件中的某一部分来简化嵌套的if语句
  6. 复杂的代码表明你还没有充分的理解你的程序,所以无法简化它
  7. 对减少嵌套层次的技术总结:
    1. 重复判断一部分条件
    2. 转换成if-then-else
    3. 转换成cast语句
    4. 把深层嵌套的代码提取到单独的子程序
    5. 使用对象和多态派分
    6. 用状态变量重写代码
    7. 用防卫子句来退出子程序,从而使代码的主要路径更为清晰
    8. 使用异常
    9. 完全重新设计深层嵌套的代码
  8. 程序复杂度——为了理解应用程序,你必须在同一时间记住的智力实体的数量
  9. “有能力的程序员会充分的认识到自己的大脑容量是多么的有限,所以,他会非常谦卑的处理编程任务”——底杰斯特拉
  10. 人类很难处理好超过5到9个(7±2)智力实体,提高的可能性不大
  11. Key Points
    1. 使bool表达式简单可读,将非常有助于提高你的代码质量
    2. 深层次嵌套使得子程序变得难以理解。所幸的是,你可以相对容易的避免这么做
    3. 结构化编程是一种简单并且仍然适用的思想:你可以通过把顺序、选择和循环三者组合起来而开发出任何程序
    4. 将复杂度降低到最低水平是编写高质量代码的关键


 
  评论这张
 
阅读(1211)| 评论(0)

历史上的今天

评论

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

页脚

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