每周一荐:学习ACE一定要看的书
作 者: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目录下找到)
- 上篇-ACE技术论文集
- 中篇-ACE程序员教程
- 下篇-ACE应用实例
小结和建议
鉴于ACE的强大和复杂,许多人对此都会望而却步。但作为一个强大而深刻网络开发工具包,很有必要好好研习一番,就算以后不会用到它去直接做开发,但其中的设计思想和设计、架构模式对我们以后做服务器架构和开发有着巨大的帮助。我也会在此信念下,不断地学习ACE,并从中学习关于网络服务器开发的知识,有所心得,会及时分享。也是刚找到一条学习ACE的路线,希望会坚持下去,写下该篇算是第一步。
对于ACE,只看书肯定是不行的,一定要阅读ACE的代码,刚开始学习,最好的开始就是ACE_Wrapper/examples。
坚持、坚持、再坚持!ACE,一定要搞定!希望本篇推荐的关于ACE的书,会对网络开发程序员有所帮助!