Posted on 2009-05-08 15:40
一秋草木 阅读(308)
评论(0) 编辑 收藏 引用 所属分类:
C++ 、
读书笔记
主题观点:
1. Extreme readability
2. Extreme separate
3. Extreme abstraction
详细内容:
Chp3
1、不要使用基本数据类型。
每种数据都有特定意义。具有使用规则、范围等限制。使用基本数据类型会淹没其信息特征。
2、尽量重用已有的类或代码。
是否有替代的、类似的程序可用。是否有完全重新实现的必要性?
3、被调用者检测输入参数的合法性
相对于调用方,被调用者更熟悉该函数的使用环境,参数限制。
通常情况下应该由被调用者检测输入数据。验证规则。
4、不使用magic number
5、工具要善用
尽量使用熟悉的工具进行工作,提高效率
同时新的工具增加了新的选择。
所以需要根据实际情况作出选择。
6、记录决策分支
当一个问题存在多种解决办法时,需要记录问什么采用当前的解决方式。以备将来需求发生变化的时候进行快速决策。
7、对失败的地方要分析失败原因、如何避免不不犯相似的错误。
8、质量比单纯地追求速度更重要
因为慢速的系统至少可以作为参考平台。并且可以针对瓶颈优化提高性能。
错误的系统修改为正确的系统工作量更大,更困难。
9、错误汇报
错误情报应该对用户有意义。包含两部分信息:
①失败的意义
②用户可能会怎样响应这样的失败
例如:永久失败、暂时失败、瞬间失败
用户需要采取的处理是不一样的。
10、错误记录
提供给用户的错误情报是用于用户决策的。
对于内部的实现细节的错误,应该记录。以备追踪问题。
11、不要自我重复
信息应该有某个可靠的来源处。如果信息需要以不同的方式来运用,则应该有一个转换的过程,将之从单一源转换为其它形式。可以保证修改的地方只有一处。
12、预构的态度
让重复情况无法发生。
拷贝的是什么,是否应该移到单独的函数中。
如果在函数内实现另外的一个特定的算法,那么应该将该算法移到专用函数中。
Chp2
1、原型比图形、文字更容易沟通
2、将数据凝结成块
可以减少必须记住的概念的数量。
把一组属性结合到单一命名的概念中。
3、概念细分
结合两个概念比分离一个概念来要简单许多。
如message分为:error、notify、warning。
4、系统中每个概念都应该有专有的名称