modern 发表于 2009-7-9 13:22:06

ACE初学者使用指南

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 编辑 ]

lianqin7 发表于 2009-7-9 15:41:15

很好的帖子,上周刚开始学ACE的路过

wishel 发表于 2009-7-10 15:09:15

modern兄辛苦了,这个帖子非常有意义

wishel 发表于 2009-7-10 15:17:15

我看书的时候是先看的第5本,POSA2,然后看的1,2,3。第4本一直没看过。
可能跟个人习惯有关,我比较习惯top down的学习方式,先看原理,再看实现。

modern 发表于 2009-7-10 16:59:07

恩,如果有一定经验之后再开始学习ACE,
自顶而下未尝不是一种好办法。

我就比较惨了,毕业之后的工作的第一个任务就是使用ACE,
当时还不懂得什么学习方法,除了C++语言功底还不赖之外,
其他的都是0基础硬壳下来的。

所以这也算是我从一个初学者一路走过来的辛酸经验吧。

stuarts 发表于 2009-7-13 23:26:15

说得好,说得好,ACE初学,多谢版主指点!
拿着C++NPV1,一边看书,一边啃源码去!

agent 发表于 2009-7-14 10:28:56

敢问几位版主都在什么单位高就?主要做什么呢?通信?网游?

demonseyes 发表于 2009-7-22 17:06:20

谢谢楼主,刚刚接触ace,就看到楼主的推荐,少走不少弯路。

chenyulancn 发表于 2009-9-19 22:43:21

谢谢,对于我来说ace是全新的东西,谢谢指点

wishel 发表于 2009-10-22 16:29:00

太多新人问这个问题了,winston老大应该把这个帖子置顶
页: [1] 2 3
查看完整版本: ACE初学者使用指南