一秋草木

Nothing Is Impossiable!
posts - 11, comments - 10, trackbacks - 0, articles - 2
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

软件预构艺术摘要(一)

Posted on 2009-05-08 15:40 一秋草木 阅读(311) 评论(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分为:errornotifywarning

 

4、系统中每个概念都应该有专有的名称

 

 

 

 

 

 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理