- 博客(8)
- 收藏
- 关注
转载 软件系统中错误类型的定义,处理(转载)
不知道大家是否有同感,在开发软件应用系统的过程中我们经常面临一个非常tedious的问题,即如何分类和处理软件行为产生的错误值,大致有这样几个方面的问题: 第一.错误值如何分类。参考microsoft的开放文档,按照错误值的严重程度分为critical、error、warning、information等四个级别。 第二.错误值如何在各个软件子模块中有效的表示和沟通。
2007-07-15 18:45:00
1894
原创 异步IO性能探究
一、异步IO 对于应用程序而言,有两种类型的IO调用:即同步IO与异步IO。其本质的区别是:同步IO会block当前的调用线程,而异步IO则允许发起IO请求的调用线程继续执行,等到IO请求被处理后,会通知调用线程。在windows平台上,应用程序可以调用CreateFile API, 并通过设置FILE_FLAG_OVERLAPPED标志来决定是否发起异步IO请求。 对
2007-07-01 18:36:00
1170
1
原创 面向对象分析方法与算法
作为程序员,一直困扰我的一个问题是:一名优秀的程序员,应该是注重面向对象分析能力的培养,还是注重算法分析能力的培养。我相信,这也是一个很多人面临的问题。我的感觉是:很多system level的程序员更加侧重于算法,而application level的程序员,更多的倾向于讨论面向对象。大家也可以看到,很多知名IT公司的面试,比如google,比如微软,很喜欢考察程序员的算法方面的
2007-06-24 22:28:00
1317
原创 通讯协议的选择,TCP or UDP
在网络应用系统的实现中,一般来说,有两类协议可供选择, TCP或者UDP。关于这个话题,网上有大量的文章讨论,我在这里只是做一个比较简单的总结:a. 从应用程序者角度来看,我们可以看到这样一些区别:在整个TCP的会话过程中,总是与一个socket句柄相关联。在对于UDP,是没有这样一个固定的socket句柄。TCP的socket句柄,你可以把它作为一个普通的IO句柄一样看待,可以读入数据,或者写入
2007-06-17 21:30:00
1577
原创 CS Model Based, Message Driven应用系统开发
我毕业后的两年时间里,一直在从事着这样的系统开发:基于CLIENT-SERVER架构,依赖于消息驱动完成应用逻辑的网络应用系统。在两年的时间里,也积累了不少这方面开发的经验,有必要写出来与大家共同讨论。从定义可以看出,这类网络应用系统,具有以下明显的特征:1) Client-Server Based 架构。2)完全依赖于客户端到服务器的消息完成事务逻辑。对于开发这样一类系统,从我的经验来看
2007-06-10 20:11:00
683
原创 CS Model Based, Message Driven应用系统之服务器实现
一般来说,服务器的实现,我们从设计模式的角度看,有两种设计方案可供选择:Reactor服务器,或者Proactor服务器。无论是Reactor,或者Proactor, 都是基于事件驱动的架构设计(Event-driven architecture), 它们的核心是思想是:分离网络事件的监视,驱动与事物本身的逻辑处理。我们能看到的是:对任何的网络应用而言,其对网络事件的监视,处理往往是大同小异的,
2007-06-10 19:53:00
725
原创 计算机系统性能的重要估计法则:little's law
1. 引语:性能估算是一个优秀的程序员应该具备的基本素质。在排队理论中,little‘s law是一个重要而通用的估算公式,它对于我们估算我们所开发的系统的性能,特别是当我们开发服务器端的并发软件系统时,有很重要的指导意义。2. little‘s law 估计公式。在一个稳定的系统中,平均的客户数(访问该系统的客户)等于客户到达该系统的平均速率乘以客户在该系统中花费的平均时间,即: 这是一个粗略
2007-05-12 22:07:00
4049
原创 C++与double dispatch设计模式
1. 什么是Multi-methods.在阐述这个概念之前,我们先看一下什么是多态(Polymorphisn)。多态是面向对象程序设计的一个重要的特征, 多态是允许你将父对象的指针(或者引用)设置成为它的子对象的技术,赋值之后,该父对象指针(或者引用)就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚
2007-05-06 00:50:00
1399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人