找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 35696|回复: 24

ACE初学者使用指南

[复制链接]
发表于 2009-7-9 13:22:06 | 显示全部楼层 |阅读模式
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 编辑 ]
发表于 2009-7-9 15:41:15 | 显示全部楼层
很好的帖子,上周刚开始学ACE的路过
发表于 2009-7-10 15:09:15 | 显示全部楼层
modern兄辛苦了,这个帖子非常有意义
发表于 2009-7-10 15:17:15 | 显示全部楼层
我看书的时候是先看的第5本,POSA2,然后看的1,2,3。第4本一直没看过。
可能跟个人习惯有关,我比较习惯top down的学习方式,先看原理,再看实现。
 楼主| 发表于 2009-7-10 16:59:07 | 显示全部楼层
恩,如果有一定经验之后再开始学习ACE,
自顶而下未尝不是一种好办法。

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

所以这也算是我从一个初学者一路走过来的辛酸经验吧。
发表于 2009-7-13 23:26:15 | 显示全部楼层
说得好,说得好,ACE初学,多谢版主指点!
拿着C++NPV1,一边看书,一边啃源码去!
发表于 2009-7-14 10:28:56 | 显示全部楼层
敢问几位版主都在什么单位高就?主要做什么呢?通信?网游?
发表于 2009-7-22 17:06:20 | 显示全部楼层
谢谢楼主,刚刚接触ace,就看到楼主的推荐,少走不少弯路。
发表于 2009-9-19 22:43:21 | 显示全部楼层
谢谢,对于我来说ace是全新的东西,谢谢指点
发表于 2009-10-22 16:29:00 | 显示全部楼层
太多新人问这个问题了,winston老大应该把这个帖子置顶
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-29 07:18 , Processed in 0.014023 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表