|
ACE初学者使用指南
作者modern
1.学习ACE要看书,初学者学习ACE没有什么捷径,如果有的话,那么就是看书了。
目前国内中翻本的ACE专门书籍一共有5本,个别书籍在书店不太好买到,在当当淘宝都可以取得。
不过还是推荐日后有能力的话,阅读原版,原版的电子书基本上都可以从官方网站上获得。
http://www.cs.wustl.edu/~schmidt/ACE-documentation.html。
a)CppNetwork Programming Volume I,Mastering Complexity With ACE and Patterns
C++网络编程卷1(C++NPV1)
注:ACE的基础入门书籍,主要讲解ACE提供的对各平台系统底层系统接口的包装(wrapper facade)。
如socket,进程,线程,同步机制等。
b)CppNetwork Programming Volume II, Systematic Reuse with ACE and Frameworks
C++网络编程卷2(C++NPV2)
注:初步了解ACE之后,如果ACE确实你需要的,这本书绝对值得通读3遍5遍以上。
这本书详细讲解ACE提供的主要框架(Framework)的运作原理,实在是ACE程序员居家旅行的必备良品。
c)ACE Programmer's Guide, The Practical Design Patterns for Network and Systems Programming
ACE程序员指南(APG)
注:这本书更偏重于ACE的使用,展示了如何运用ACE快速完成自己的需求。
强烈建议在了解C++NPV1,2的基础上阅读。
大致了解以上三本书之后,基本上再遇到问题的时候,就不会感到手足无措了。
d)ACE自适配通信环境中文技术文档(马维达)
本书分三卷,上卷与中卷主要讲基础知识,与前三本书有相辅相成的作用,
下卷主要介绍ACE开发组开发的,基于ACE的几个高级应用,包括Gateway,JAWS,TAO。
注:这并不是取自一本书,感谢译者把取自http://www.cs.wustl.edu/~schmidt/ACE-papers.html的
ACE多篇技术文档整理并翻译出来,不过由于某种原因,作者仅把译文的电子版发布到网络上,
并没有出版中文实体书。
e)Pattern-Oriented Software Architecture Volume II: Patterns for Concurrent and Networked Objects
面向模式的软件架构卷2
注:这本书主要讲解C++NPv2提供的各种framework的设计缘由,如果说C++NPV2告诉我们各种framework是什么
和如何使用,那么从这本书我们将知道为什么是这样设计,这本书适合对ACE有相当的了解程度之后阅读。
2.如果你手里还没有ACE的源代码,可以从http://download.dre.vanderbilt.edu/获得最新版的源代码。
ACE是开源项目,不过使用ACE不需要任何linsence并且不受任何类似GPL的限制。
你可以在学习、工作、甚至商业项目中任意使用ACE,只要包含其版权声明就可以了,
无需承担任何其他的义务。
3.在解压源代码之后,假设你的ACE_wrappers所在目录为$ACE_ROOT,ACE_ROOT/ace是源代码目录。
根据自己平台的特性在$ACE_ROOT/ace目录下配置好config.h,就可以开始你的ACE旅程了。
windows下,只需配置configh就可以了,linux下参考下面的文档。
http://www.acejoy.com/bbs/viewthread.php?tid=847&extra=page%3D1
各平台的具体细节,这里不再重复,需要说明的是config.h的各平台的配置开关,
可以参考$ACE_ROOT/ace/Readme。
4.打开$ACE_ROOT/examples,这里存放着ACE开发组提供的非常实用的例子,首先你会看到
APG,C++NPV1,2等子目录,眼熟吧,在这些目录下存放了前三本书里提到的所有的示例程序。
你不用再敲一遍了代码了,学习的时候,拿过来直接用就可以了。
其他的例子,随着对ACE的慢慢熟悉,根据自己的需求会逐渐的用到。
$ACE_ROOT/app目录下,包含前面第四本书提到的Gateway与JAWS的应用源代码。
JAWS是ACE开发组提供的基于ACE的高性能的webservice框架。
Gateway是ACE开发组提供的基于ACE的应用级网关。
$ACE_ROOT/TAO目录下,包含了TAO的源代码。
THE ACE ORB(TAO)是ACE开发组提供的基于ACE的CORBA的实现。
5.随着对ACE的认识的逐渐深入,可能逐渐遇到很多细节的问题,推荐在开始阅读源代码之前,
还是先回来翻翻书,特别是C++NPV2,很多时候费了好多时间与精力,在阅读源代码之后,
解决了一个问题,偶尔回头翻开书,原来书上已经说得很清楚了,只是以前看的时候,
没有注意到而已。当然如果有精力的话,阅读ACE的源代码还是大滋大补的,
尤其平台之间存在诸多细微的细节差异,这些都源于操作系统底层的API的实现。
对于系统底层API的特性理解是,随着对ACE掌握能力的提高的必经之路。
6.本站(ACEJOY)提供了站内搜索功能,对于很多初学者来说,很多问题基本上都共性,
学习ACE遇到问题,搜一下说不定别人已经遇到过了,而且有了解决方案。
说实话本人经常使用站内搜索功能,一些具体的ACE的使用问题,有时候比直接google来得快。
最后,希望的我这篇文章对你了解与学习ACE会有帮助,欢迎使用www.acejoy.com/bbs。
[ 本帖最后由 modern 于 2009-7-9 13:28 编辑 ] |
|