免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7534 | 回复: 23
打印 上一主题 下一主题

[C++] ace 个人看法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-26 13:49 |只看该作者 |倒序浏览
就我自己的看法,

想把项目做成大而全的结果就是失败,ACE就在做这个事情。

我认为类大到一定程度,内部的复杂度带来的恐怖比他的优点还多,那么就是失败。 说到这里我又想说c++ 和 c 的关系了。
  看看著名的服务器 apache, postfix 都自己用一套类lib的东西,我开始一直在想为什么不是stl, 不是string.  慢慢我明白了,大同的就是中庸的。世界本就不同,没有必要一定要弄一个大而全的东西。
  我想到了动物世界, 所有的动物都是有自己的特点,他们都能活下去,  当然如果有一种生物有大象的身材,熊的力量, 老鼠的繁殖力,狮子的牙齿, 它是否能称霸地球呢?  造物主并没有造出这样的怪物。  同杨的, 一个库当他无比强大, 它的复杂和学习曲线就是非常陡峭的。里面的任何bug 都会要了它的命。c++ 也在走这条路。c++ 太复杂了, 我想说掌握函数很简单,掌握重载也不难,但是重载所遵循的规则,你们都清楚吗?所谓的精确匹配,参数提升的细节。  带来了更多的困惑。
  好比lz 说的几个模式,  你按照它的用法写,没有问题。 但是当你想修改一下这个模型,你能做到吗? 除非你阅读了所有代码。 它封装的模型是完美的?

ACE 不过是做西西弗斯一样的事情。 它以为可以做到,我认为它最终将被抛弃和嘲弄。

(ps : ace 作者水平还是非常高,我也曾经多次用我蹩脚的英语去问他,他都做出了高屋建瓴的回答。我对他个人的水平还是很钦佩)

你在vs2005 下面用了ace 是不错,我们却是使用bcb. 里面问题很多,编译库都未必能过, 如果说bcb 是被忘却的编译器, 那么ace 你存在的意义何在?跨编译器和平台一直是你的卖点,我想说java 岂不是更完美( ace 有曾经一个java版本,目前好像已经放弃)

论坛徽章:
0
2 [报告]
发表于 2007-12-26 13:52 |只看该作者
N多年前就接触过ACE,被彻底吓跑了。太太太庞大了,为了一个网络应用程序,值得吗?

论坛徽章:
0
3 [报告]
发表于 2007-12-26 13:54 |只看该作者
>>想把项目做成大而全的结果就是失败

这句话挺有道理.

论坛徽章:
39
2017金鸡报晓
日期:2017-02-08 10:39:4219周年集字徽章-周
日期:2023-04-15 12:02:2715-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:27
4 [报告]
发表于 2007-12-26 13:57 |只看该作者
对个人说不值得,学习困难,维护困难,对公司可以考虑使用。

论坛徽章:
0
5 [报告]
发表于 2007-12-26 14:11 |只看该作者
说实话,我觉得ACE+TAO的跨平台性并不怎么样。虽然这很大程度上,并不是ACE的错。
ACE确实能在很多平台下编译并运行,但是不同的系统,支持的接口不一样,不同的操作系统甚至是不同的内核版本下,不同的模式有不同的效率,差别之大,完全会影响到对于模式的选择。比如你在A系统下用了B模式,可是到了C系统下,你用B模式效率可能差到无法忍受,你不得不在C系统下使用D模式。像这种情况,ACE跨了平台又如何?只仅仅是跨平台能编译而已,无法达到实用,难道自我安慰“聊胜于无”吗?
而且,ACE+TAO太大了,在除了Solaris、windows平台以外的系统下,隐藏的Bug一堆堆的,对系统稳定性要求比较高的环境,真的很难依赖于ACE+TAO

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
6 [报告]
发表于 2007-12-26 14:28 |只看该作者
原帖由 namtso 于 2007-12-26 14:11 发表
说实话,我觉得ACE+TAO的跨平台性并不怎么样。虽然这很大程度上,并不是ACE的错。
ACE确实能在很多平台下编译并运行,但是不同的系统,支持的接口不一样,不同的操作系统甚至是不同的内核版本下,不同的模式有 ...



有一个 ACE+TAO 的替代方案, http://www.zeroc.com/ice.html  
其实如果 C++ 有完整的 RTTI 支持,跨平台就不会这么麻烦了,听说 C++ 的 RTTI 方案正在讨论。

论坛徽章:
0
7 [报告]
发表于 2007-12-26 14:41 |只看该作者
原帖由 zhujiang73 于 2007-12-26 14:28 发表



有一个 ACE+TAO 的替代方案, http://www.zeroc.com/ice.html  
其实如果 C++ 有完整的 RTTI 支持,跨平台就不会这么麻烦了,听说 C++ 的 RTTI 方案正在讨论。


RTTI 跟 跨平台有关系吗?

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
8 [报告]
发表于 2007-12-26 15:05 |只看该作者
原帖由 holyfire 于 2007-12-26 14:41 发表


RTTI 跟 跨平台有关系吗?


写网络通信程序时,有了 RTTI 可以方便的把数据打包成标准格式,然后和数据的类型信息一起传送出去,这样接收方可以根据类型信息把数据解包为自己需要的格式,这样程序可以自动处理如"整数的大小端","结构的字节对齐" 等平台相关问题。

论坛徽章:
0
9 [报告]
发表于 2007-12-26 15:19 |只看该作者
写网络通信程序时,有了 RTTI 可以方便的把数据打包成标准格式.

如果是这样的简单的类到字符的实现,ace 已经有了。 但是我可以保证,所有的编译器都不会一致,所以是没有意义的。而且我可以保证因为实现涉及到32  64平台的问题,这种方案在网络上更加没有意义。只有是xml 的方案正确, 这也就有了.net,几年前就实现了。

但是在没有这些东西的年代,我们用c也做到了, 而已一直在丑陋的继续做。因为世界一直不完美的。xml 带来了方案,也带来了痛苦。 (你自己可以实现一下xml解析引擎, 或者别人的xml引擎又有问题,还有效率的问题)

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
10 [报告]
发表于 2007-12-26 15:53 |只看该作者
原帖由 benjiam 于 2007-12-26 15:19 发表
写网络通信程序时,有了 RTTI 可以方便的把数据打包成标准格式.

如果是这样的简单的类到字符的实现,ace 已经有了。 但是我可以保证,所有的编译器都不会一致,所以是没有意义的。而且我可以保证因为实现涉 ...



.NET Remoting  是我见过的最好用的网络编程框架,.NET Remoting  中 HttpChannel 使用Soap格式 (XML) 序列化消息对象,TcpChannel 使用二进制格式序列化消息对象, 借助元数据的帮助 .NET Remoting 可以使用二进制格式序列化消息对象。 不过 32 , 64 是个麻烦的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP