介绍ACE C++网络通信框架

12 篇文章 0 订阅


很久以前笔者也不太熟悉ACE C++网络通信框架,偶然的机会逐渐接触后,发现它的优良!


总结来看它的有点如下

  • 非常适合后台无界面网络通信的系统编程

适合小型化核心网使用;但值得注意,如果您需要的是web领域技术栈,则JAVA等框架则更为适合

  • 可以跨多种OS平台

虽然现在,在Linux系统几乎主宰了服务器的时代,这个特点并不算什么,但是,在_“七国八制”_的时代,后台代码工程能具有此种特点,还是非常节省气力的。特别地,您仍可以在windows调试完代码,然后部署到Linux上去运行,也还是非常节省气力的。
注:以前很多项目为了实现windows可调试工程,还是费了不少力气,ACE框架可以让你事半功倍

  • 半成品代码,框架提供了主要的骨干组件,开发者仅需关注业务逻辑即可

框架相对于设计模式来讲,在更大尺度结构上提供了复用,使得它在特定领域可以成为领域语言,具有通用性。相比更局限在细部的编程规范,如果使用框架的一致,保持技术栈保持一致性,项目在这方面也可以节省不少气力

ACE_Task模板类自带线程能力和消息队列,对于编程中多线程协作非常有利。可以比较方便地扩展出JOB编程,在一个ACE_TASK中通过队列消息,派发到所管理的JOB任务中进行调度执行

  • 默认提供了高效的实现

我们知道在程序中,必须使用特定的算法或者数据结构,才能提供在理论上和实际运行中的高 效。而一般程序员对于此种深度的计算机科学知识积累往往欠缺,所以,能不发明轮子,就直接复用轮子好了

在笔者最初深入研究ACE定时器实现时,发现定时器的底层默认使用“最小堆”的堆排序数据结构;后来求证于其它实现,例如,JAVA定时器实现、libevent等定时器实现,发现也是用此种数据结构。

最小堆是定时器的通用解决方案,但一般人不一定一下子就想得到。

  • 优良的设计模式实践

在ACE中实践了很多设计模式,可以根据代码实现,研究和学习设计模式

  • 优良的API接口实现

    对于常见的setter和getter类接口,ACE借助C++的重载技术,提供了非常统一的另外一种设计思想,也非常友好可读。例如,在ACE_Time_Value中msec属性的设置和获取的接口设计

    对于各种扩展,提供了大量默认参数值。具有默认值的参数,统一全部靠右

  • 模板扩展实现偏序化

    在ACE中大量使用模板进行扩展,相比较于接口扩展,模板扩展,对于扩展提供了更弱的要求。只要叫声像鸭子,就可以将其看成鸭子。在这点上,接口扩展定死了使用规范要求,而用模板的话,则可以要求的更宽泛一点

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值