作  者:david++
发布时间:2012/06/08 09:02
文章地址:http://game-lab.org/?p=320

近两个月都在学习ACE,一个超级强大,也超级复杂的网络框架库。对ACE的大名早有听说,同时也听说过它的复杂性,所以一直不敢去碰它。ACE对程序员的要求是比较高的了,需要对C++、设计模式、POSA、网络、并发等有一定的了解后,才能去碰它。不然真的是一头扎进茫茫大海,越看越复杂,直到消磨完所有对ACE的热情。

经过两个月的摸索,查找各种资料,最后也总算是知道了该如何去学习这个Ace(王牌)基本的ACE,以后有所心得,也会即时在博客上予以分享。下面推荐几本学习ACE必备的工具书。

《C++网络编程:运用ACE和模式消除复杂性 卷1》(简称:C++NPv1)

这应该是你需要了解的第一本关于ACE的书,本书中提出了ACE作者对于网络问题的研究,分为四个设计空间:网络、并发、服务、配置。本书核心讲述网络和并发应用程序的开发,及其ACE与之对应的Wrapper Facade Class,并以一个日志服务器实例作为演示,使用多种方式实现该日志服务器(实例代码参见,ACE_Wrapper/examples/C++NPv1)。(关于Wrapper Facade 模式可以参考《POSA 卷2》,具体优缺点不在此赘述了)。

《C++网络编程:基于ACE和框架的系统化复用 卷2》(简称:C++NPv2)

本书核心内容主要讲述《C++NPv1》中分出的四个设计空间中的:服务器设计空间和配置设计空间,及ACE基于Wrapper Facade的框架实现。如:Connector-Acceptor、Reactor、Proactor、Stream、Service Configurator等。对应于ACE的框架层。

《ACE程序员指南:网络与系统编程的使用设计模式》(简称:APG)

阅读APG,可以对ACE有一个整体的了解,Wrapper层、框架层都有涉及。但本书只对用法做了描述,所以很多地方不如《C++NPv1》和《C++NPv2》深刻,可以将本书作为入门第一本。

《面向模式的软件架构:网络与并发模式 卷2》(简称:POSAv2)

POSA系列的第二本,由ACE作者Douglas C. Schmidt和三位网络开发界几位大牛执笔,根据自身开发网络应用的经验,总结出网络和并发相关模式。许多模式读来,醍醐灌顶。把网络应用开发中的各个难点都提出了相应模式解决方案。因为ACE中运用了很多网络、并发架构模式,都可以在本书中找到相应的描述和讲解。作为一个做服务器端开发的人(在此,指的是做底层框架而非仅仅是应用逻辑开发的),这本书是必须要读的,并且要深刻理解里面提到的模式。

ACE相关论文集(网上的资料,未见相应出版物)

下面这些资料,都是网上一些热爱ACE的人整理的。因为ACE对于网络程序开发有非常大的影响,Douglas C. Schmidt及其ACE热爱者关于ACE也写了不少论文,同时使用ACE实作了很多的应用实例。(多数实例都可以在ACE的源码目录下example、app目录下找到)

  1. 上篇-ACE技术论文集
  2. 中篇-ACE程序员教程
  3. 下篇-ACE应用实例

小结和建议

鉴于ACE的强大和复杂,许多人对此都会望而却步。但作为一个强大而深刻网络开发工具包,很有必要好好研习一番,就算以后不会用到它去直接做开发,但其中的设计思想和设计、架构模式对我们以后做服务器架构和开发有着巨大的帮助。我也会在此信念下,不断地学习ACE,并从中学习关于网络服务器开发的知识,有所心得,会及时分享。也是刚找到一条学习ACE的路线,希望会坚持下去,写下该篇算是第一步。

对于ACE,只看书肯定是不行的,一定要阅读ACE的代码,刚开始学习,最好的开始就是ACE_Wrapper/examples。

坚持、坚持、再坚持!ACE,一定要搞定!希望本篇推荐的关于ACE的书,会对网络开发程序员有所帮助!

每周一荐:学习ACE一定要看的书的更多相关文章

  1. 学习C++所需看的书和顺序

    初学: <C++ 编程思想> <C++ Primer><The C++ Programming Language> 提高: <C++ 的发展与演化> & ...

  2. Elasticsearch学习,请先看这一篇!

    原文:Elasticsearch学习,请先看这一篇! 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  3. 推荐一些关于学习Html Css和Js的书吗?

    前端易学易懂,随着移动互联网的日益兴起,it行业对于前端的需求也在不断的提高,那么从前端小白修炼成为前端大神的这个过程之中,一些必备的枕边书也是必不可少的. 第一本,入门<Head first ...

  4. 学习MVC和jQuery相关的书

    Insus.NET还是较喜欢看纸质书.学习ASP.NET MVC和jQuery编程,Insus.NET为了加强功力,决定再购买几本相关的书:   十月份时,还买了一本: 前两本快递刚送到手,后一本已经 ...

  5. C 游戏所要看的书

    C 游戏所要看的书 1.C++primer中文版第4版     经典啊2.C++标准程序库自修教程与参考手册 3.Windows程序设计第5版 4.MFC windows程序设计第2版中文版 5.VC ...

  6. 自由是有代价的:聊聊这几年尝试的道路 要想生活好,别看哲学书和思想书。简单看看可以,看多了问题就大了。还是要去研究研究些具体的问题。别jb坐在屋子里,嘴里念着海子的诗,脑袋里想康德想的事情,兜里屁都没有,幻想自己是大国总理,去想影帝是怎么炼成的。

    自由是有代价的:聊聊这几年尝试的道路 现在不愿意写过多的技术文章了,一点是现在做的技术比较偏,写出来看的人也不多,二来是家庭事务比较繁多,没以前那么有时间写了.最近,园子里多了一些写经历的文章,我也将 ...

  7. PHP程序员要看的书单

    想提升自己,还得多看书!多看书!多看书! 下面是我收集到的一些PHP程序员应该看得书单及在线教程,自己也没有全部看完.共勉吧! Github地址:https://github.com/52fhy/ph ...

  8. Directx11学习笔记【八】 龙书D3DApp的实现

    原文:Directx11学习笔记[八] 龙书D3DApp的实现 directx11龙书中的初始化程序D3DApp跟我们上次写的初始化程序大体一致,只是包含了计时器的内容,而且使用了深度模板缓冲. D3 ...

  9. [深度学习大讲堂]从NNVM看2016年深度学习框架发展趋势

    本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 虚拟框架杀入 从发现问题到解决问题 半年前的这时候,暑假,我在SIAT MMLAB实习. 看着同事一会儿跑Torch,一会儿跑MXNet,一会 ...

随机推荐

  1. XML中文本节点存储任意字符的方法

    XML xml是一种可扩展标签语言, 为众多浏览器支持解析, ajax更是利用xml来完成服务器和客户端之前的通信. xml基本元素为 <label>xxx</label>, ...

  2. 翻译:Lisp Style Tips for the Beginner - Heinrich Taube

    原文:Lisp Style Tips for the Beginner 本篇文章是一篇非正式的摘要,旨在帮助新手写出高效.易读的Lisp代码. 1 赋值   1.1 避免使用eval.赋值是Lisp内 ...

  3. 从出租车司机到大BOSS的转型之路

    来深圳之前,曾有人这样告诉我:在深圳千万不能以貌取人,打扮不起眼,也许他转身开的座驾就是宝马.奔驰;不管一个人多么邋遢俗气,也别瞧不起人家,也许他的手提袋里就是成捆的人民币现金;不管一个人打扮的多么土 ...

  4. ECMAScript 6教程 (一)

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.com/jasonnode/ .该系列课程是 ...

  5. Linux 奇技淫巧

    为了整理这些命令,花了我一个晚上的时间,但是不弄明白,我就是不爽啊. 1.cmatrix 命令 黑客帝国,就是酷炫,先按F11全屏效果更佳 安装:luffy@ubuntu:~$ sudo apt-ge ...

  6. wf(四)

    我们已经在c#和xaml上编写了工作流,或者有的人会觉得在xaml上编写的workflow没什么优点,然而其实xaml其实具有一些很特别的优势. 1. xaml支持工作流设计器,c#不支持: 2. x ...

  7. Mayor's posters(线段树+离散化POJ2528)

    Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 51175 Accepted: 14820 Des ...

  8. selenium杀掉浏览器进程方法

    * 杀掉浏览器进程      */     public static void operateWindowsProcess(){         WindowsUtils.tryToKillByNa ...

  9. nginx简单的rewrite配置

    假设当前已存在location /test/,希望配置一个短连接/ts/与之相同,就需要用到rewrite 直接配置到server段 rewrite ^/ts/(.*) /test/$1; 或者放到l ...

  10. 【入门】匈牙利算法+HNOI2006 hero超级英雄

    一.关于匈牙利算法 匈牙利算法是由匈牙利数学家Edmonds提出的,用增广路径求二分图最大匹配的算法. 听起来高端,其实说白了就是: 假设不存在单相思(单身狗偷偷抹眼泪),在一个同性恋不合法的国家里( ...