惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
G
Google Developers Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
J
Java Code Geeks
U
Unit 42
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Docker
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
V
V2EX
T
Tailwind CSS Blog

博客园 - 天天爱晴天

招Android软件测试人员 从.net星移居到android星 测试好书推荐,从理念到实践 测试好BLOG推荐-微软测试大将的BLOG 不知庐山真面目,看微软测试圣经How we test software at ms Powershell大印象系列3: 解惑,真相?补充一下 Powershell大印象系列2:丰富的帮助,丰富的资源 Powershell大印象系列1:惊艳呀 Book review..看了一下午的.NET Framework.归纳了几点 第二次CODE REVIEW (d) 微软2008年的CEO SUMMIT的视频(大家可以领会一下未来的趋势呀) 我犯了的错误 by 第一次 CodeReview(Updated 毕业啦,去深圳文思创新工作,找房子租ING 被抛弃的感觉 游走回忆 回顾2006年的N个没有实现的构思(上) 苦思论文题目,灵感触发VISIO 2007 开始写论文啦(各位给点意见) 汇丰笔筋(未知版)
恐怖故事和童话故事-可靠代码实践1
天天爱晴天 · 2009-10-09 · via 博客园 - 天天爱晴天

不要只顾着看标题,看看这里,我们要开始介绍这个危险的地球,程序的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