《C++网络编程.卷1-运用ACE和模式消除复杂性》书评

当前位置:首页 > 计算机网络 > 程序设计 > C++网络编程.卷1-运用ACE和模式消除复杂性

出版社:第1版 (2007年5月1日)
出版日期:2007年5月1日
ISBN:9787121041518
作者:施密特
页数:303 页页

ACE ---- 深入理解网络编程

==== 基本介绍 ====首先想说一下,“C++网络编程”这个名字不好,容易误导新同学。想学习网络编程的基础,应该看Steven老大的《UNIX网络编程:卷1》和《TCP/IP详解:卷1》。还有本《Windows网络编程》,以前评价过,感觉翻译得不太好。http://book.douban.com/review/1806631/《C++网络编程》卷1、卷2,以及另一本《ACE程序员指南》,只是对网络库ACE的使用介绍。http://www.cs.wustl.edu/~schmidt/ACE.htmlACE是一款用C++写成的网络库。设计的初衷,大约是作为Schmidt大叔验证其想法的试验田。正巧90年代C++兴起,Schmidt大叔自然选择了C++来完成此大作;且当年C++ Network Framework也是稀缺之物,所以ACE流行起来了。学习ACE的好处是毋庸置疑的,它让你彻底理解网络编程中的“那些事”,你能碰到的问题,在ACE中,应该都找到答案。就比如 timer queue,对于定时器管理,ACE就给你列了四种实现。Timer_Heap, libevent用的就是这个min-heap,nginx用的red-black tree和这个原理类似Timer_Wheel, linux内核用的方法Timer_Hash, MudOS里面的callout就是用这个方法,有点慢Timer_List, 这是最慢的方法,实际项目应该不会用到==== 如何学习 ====想深入理解ACE,或是深入理解网络编程,都应该从Steven老大的作品开始打基础。有了一定基础后,可以阅读libevent的代码,这个库小巧精悍,让你明白如何做跨平台的网络封装(ACE所谈的Facade Wrapper),以及reactor的基本原理。很多时候,libevent足以解决问题,就不要用ACE了。理解libevent后,可以开始认真阅读ACE。ACE的设计,期望跨平台,且非常通用。希望使用者只需要简单配置一些strategy,就可以满足业务需求。所以也导致其本身用起来比较复杂。个人推荐学习ACE的过程:1. 阅读《C++网络编程》卷1、卷2,《ACE程序员指南》,学会ACE的基本使用2. 阅读Schmidt大叔的POSA2(《Pattern-Oriented Software Architecture, Vol.2》)并配合阅读ACE源代码,理解每个模块的起承转合。ACE实践了POSA2中所著的各种pattern。==== Beyond ACE ====经历过ACE洗礼后,也许你对构建在C++之上的ACE也会有不满之处。也许 python, java 是不错的选择。不过我个人比较看好 erlang,因为现在发展多核嘛。==== 参考资料 ====libevent, http://www.monkey.org/~provos/libevent/Ice, 和ACE类似的库,轻量级一些。http://www.zeroc.comps. 自己对ACE,还在学习阶段,上面是自己的一些感受,分享之 :-)


 C++网络编程.卷1-运用ACE和模式消除复杂性下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024