恐怖故事和童话故事-可靠代码实践1

不要只顾着看标题,看看这里,我们要开始介绍这个危险的地球,程序的CRASH是一件屡见不鲜的事情。。数字我就不列举啦,从大家对蓝屏的记忆就知道我没有说谎。关于这个话题,特意收集了一些资料,写成这个文章。

首先,我们谈谈怎样设计可靠的组件。

1. 有反应的程序

恶劣的,让用户恼火的情况:

打开程序,等待Response,没有LOADING,没有任何的信息。用户这个时候可能会再打开一次程序,结果就恶性循环,程序不断在后台打开,但UI却没有显示。

打开程序,以前白色,据说是在LOADING中,尝试关闭。依旧没有任何反应。

设计可以再好点:

从设计开始,让程序做个有反应的程序。具体来说:
A. 打开的时候可以选择Loading,让用户知道还有多久完成。当然要注意一点,LOADING的界面要提供一个CANCEL按钮,让用户可以停止等待。

B. 先把界面和信息显示出来,然后再更新某部分的内容,如黄色框框那里。
 image

2. 竞争和死锁

A. 尽可能避免共享状态。

B. 注意管理和控制LOCKS,不要Lock任意的OBJECT,特别是Types,String类。

C. 保持锁在页的等级,特别是SPINLOCK. SPIN LOCK(http://msdn.microsoft.com/en-us/library/aa490179.aspx), 大致就是个多CUP环境下,高效率的LOCK.

D. 使用LOCK层级结构去避免死锁。(http://www.ddj.com/cpp/204801163;jsessionid=QFZ1KOWEBUIPTQE1GHRSKH4ATMY32JVN?pgno=3

posted @ 2009-10-09 16:37  天天爱晴天  阅读(1869)  评论(3编辑  收藏  举报