不用ACE你不知道ACE有多烂,给饱受ACE折磨的弟兄们散分了。
楼主vcclass(黑山老妖)2006-11-07 15:41:41 在 专题开发/技术/项目 / 网络通信 提问
以前没有用过ACE,一直对ACE有非常崇高的敬意,一个网络的跨平台库,应该非常简单,非常不错。可以提供开发效率。今有项目开发,领导让用ACE,非常高兴,有机会练手了,抱着向ACE学习的精神研究ACE, 虽然我精通网络通信编程,但是一直感觉自己的水平不高,ACE一定有很多只得我学习的地方。实在是机会难得。
ACE总共有9万行代码,其实实现一个高效率的网络底层,跨LINUX,WINDOWS,FREEBSD平台不过4K行代码。ACE跨了所有的平台,也用不了9W行呀,不过他有自己的容器,线程池等的处理。
研究了一周,越是研究,越是迷惑。本来一个很简单的问题,在ACE里你得了解他的一堆的概念,用法。经过实际试验,我们项目里用到的代码不过ACE的两个封装类而已,经过进入ACE代码调试,发现函数调用函数,什么工作都没有做,最后调用了一个API而已。其效率只低下,让人发指。最困惑的是我new出来的对象,他给我释放了。ACE号称跨平台,实在有辱跨平台三个字,在linux和Win下他用的是不同的模型。的对他编写不同的代码来实现。
ACE的容器和STL的不太兼容。实在是垃圾一堆。
ACE是忽悠中国人的玩意。原因是他要赚钱,只有搞得复杂,让人看不懂,用不了,他才能赚钱呀。
我们大家一直努力把复杂的问题简单话,ACE是把简单的问题复杂化了。
ACE是我见到过的最垃圾的代码,最没有价值的代码。最不容易使用的代码。
ACE的作者就不知道什么是封装。
问题点数:70、回复次数:81Top
1 楼vividw(vividw)回复于 2006-11-07 17:33:57 得分 0
没看过.....Top
2 楼vcclass(黑山老妖)回复于 2006-11-07 18:44:54 得分 0
其实用别人写的库的目的就是提高开发效率,并且能够得到一个稳定的系统,减少测试时间等,而用ACE 恰恰适得其反。不但没有提高开发效率,反而为了用它得学习他的一堆概念,设计模式等。一步消息会造成内存泄漏,服务器崩溃等。大家可以搜索ACE里的代码,delete this的代码一堆。但是这个对象是外面new的。不解ACE的作者这个高人是怎么写的。Top
3 楼wqf363(denny)回复于 2006-11-07 20:54:00 得分 0
虽然没用过,但有听说这个感觉,接分Top
4 楼lzd(活着便精彩)回复于 2006-11-07 21:25:53 得分 0
不可否认楼主的反应太偏激了。
要用好ACE确实不简单。。但是不证明ACE就不好。。入门难。。Top
5 楼tsbob(不想笑)回复于 2006-11-08 00:07:19 得分 0
部分赞同楼主的观点,ACE太庞大了,而且非常臃肿,但是ACE确实给出了网络服务器的完整框架。即便你自己写server程序,到头来,你也会发现基本结构和ACE完全一样,ACE作者网站上那系列Paper确实非常好的文档,清楚的解释了网络程序需要处理的各种细节和关键技术问题,任何一个准备写网络程序的程序员,都要认真研读Top
6 楼msupdef()回复于 2006-11-08 13:10:55 得分 0
我觉得写个网络服务器模型实在是很简单,就那么几千行代码,值得用个烂ACE吗,本来学api就够累了,还不嫌麻烦,还要去学个垃圾东西,受罪是你们活该啊。
Top
7 楼ensoniq()回复于 2006-11-08 14:11:24 得分 0
关注一下。
个人经验:堆分配是所有大型项目的噩梦,delete this这种如果出现在代码的核心部分,只能证明这个代码根本就禁不起实际的考验。Top
8 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-09 09:04:44 得分 0
顶顶~Top
9 楼xl5338870(xlix)回复于 2006-11-09 18:21:57 得分 0
呵呵,有点偏激,其实里面很多好思想,通过研究ace的模式来学习Top
10 楼acejoy(http://www.acejoy.com/ 专业ACE网络编程开发论坛)回复于 2006-11-10 17:51:50 得分 0
不用这么偏激,学会了ACE,你就离不开了,就知道它的优点了。如果像你说的那么糟糕,做ACE的2000多个人,都是傻子吧?
──────────────────────
国内专业的ACE网络编程、开发论坛开通:
http://www.acejoy.com/
涉及ACE使用和开发,中间件、服务器端软件的设计,P2P技术,
socket网络编程、应用开发等内容。
欢迎加入,大家一起交流、学习成长!
Top
11 楼vcclass(黑山老妖)回复于 2006-11-11 15:08:12 得分 0
我知道的用ACE的人都是先前没有用过API做网络编程的人。如果你用API实实际际的写过项目,你是不会感觉ACE好的、。Top
12 楼alec626(月吻长河Blog:spaces.msn.com/filebase)回复于 2006-11-11 18:34:03 得分 0
我就是习惯了socket API的人。
不过还是怀着崇高的敬仰买了两本《C++网络编程》<上,下>
感觉大失所望
有那个精力去把ACE弄透彻自己早完成项目了
ACE的易用性还是太差了Top
13 楼iisbsd(墙头草,和稀泥)回复于 2006-11-13 00:41:10 得分 0
有没有用过ASIO?是Boost的。Top
14 楼liaoyong2(ly)回复于 2006-11-13 10:45:49 得分 0
唉,,,,,一句话,,不知道用api怎么实现跨平台..
难道用socket1.1吗
Top
15 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2006-11-14 10:24:39 得分 0
我也被ACE搞崩溃了
现在宁愿去研究RTL8139控制器
硬件才是最简洁最本质的Top
16 楼captain_x(captain)回复于 2006-11-15 16:30:33 得分 0
《c++网络编程》已经解释了所有使用ace而不用api来开发的理由,如果LZ自己没有理解,那是LZ你自己的问题,请不要拿你自己的问题归罪到ace头上。
ace的跨平台和java是不一样的,如果你想要效率,那当然在不同平台上会有不同的选择,难道大家所指责的java的效率低下不是因为它在所有平台的代码都一样的原因吗?Top
17 楼wqf363(denny)回复于 2006-11-15 19:42:27 得分 0
markTop
18 楼HuangRG(.....)回复于 2006-11-17 15:37:57 得分 0
看过ACE,没有在实际开发中使用过。
楼主是不是偏激了一些了?ACE庞大应该是有原因的,它不仅仅是一个Socket库,而是具备了你想要所有东西。几年前看过ACE,现在记忆有点模糊。它包括:
1. 进程管理
创建,同步,IPC,IPC里还有特定系统的东西:比如有Message Queue,FIFO等。
2. 线程管理
thread pool, 同步等。
3. 事件,信号,定时器管理
4. 一些容器
这个应该有原因,ACE开始开发的时候,标准应该没有出来吧?所以它有一套自己的东西?
5. Socket有关的东西
我只记得这些了,一般情况下,用ACE就可以开发出支持ACE所支持的那些OS了?
但功能强大的东西,学习成本肯定也高。楼主虽然有些偏激,但支持楼主的说法。老外有时候吹NB有特定的理论和论据支持,厉害!
Top
19 楼HuangRG(.....)回复于 2006-11-17 15:42:07 得分 0
iisbsd(墙头草):
有没有用过ASIO?是Boost的。
本来boost有一个boost::socket,感觉蛮简洁的,好像现在停止开发了?
boost::asio还没有发布,但源码也看了看,复杂,真复杂。不知道,它开发这么复杂的东西是给人看的,还是用的?
感觉如果ACE分一分效果会好一些,这样在项目中只要用到须要的东西。但考虑到已经用ACE开发的项目,这是不可能的。
Top
20 楼HuangRG(.....)回复于 2006-11-17 15:59:18 得分 0
我目前也正在开发一套Socket库,目标是:易使用和高效率! 为了这两个目标,花了一些心思。1. 整个库没有虚函数性能开销;
2. 使用异常可以写更简洁,优美的代码,但异常也带来了运行时开销。所以我泛化了错误处理,使用者可以决定当产生错误时,库是抛出异常还是返回错误码;
3. 支持同步和异步两种方式,异步方式的内部实现细节是在Win32上用Completion Port实现,在Linux2.4用Select,在Linux2.6异步IO实现。
4. 考虑到本人特喜欢Select,可能会单独给出一个Selector。在某种情况下,Selector是最好的选择,它让代码变得简洁,易维护,同时也有一定的效率(或者说效率存在局限性)。
这套最终提供的接口类:
UDP相关:
template <
template <class SocketType> class IOModel,
class ErrorHandler>
class basic_datagram_socket;
TCP相关,下面的类的模板参数和上面的一个一样:
class basic_acceptor_socket;
class basic_connector_socket;
class basic_stream_socket;
为了简单使用,我分别对上面的类作一些typedef.
另外,还有几个helper类。
我今天已经在sourceforge上发了申请,呵呵。
另外,我自己的一个高性能的一个网络Server产品的网络通信模块块也用我自己这套库。我这个通信Server其实是一个Framework,为二次开发提供了两套API来实现特定应用。 这套产品的特点是:成本低,可以支持100W甚至1000W到5000W个同时在线程的用户!!
Top
21 楼sduwei()回复于 2006-11-17 22:41:12 得分 0
曾经使用ACE开发过电信级的分布式网络应用。经验证明这个东西不仅仅是实验室里面的概念。它的跨平台概念同JAVA和.NET的那种虚拟机本来就不同,只能够说同楼主之前的期望有背。
认真的说,整个系统的构架是很漂亮的,作者写过很多面向对象方面的paper就是基于这个系统的勾践。但是问题是最后写系统代码的人不是高手。
Top
22 楼guileen(松风抚琴)回复于 2006-11-19 18:21:31 得分 0
楼主我支持你,接分Top
23 楼KthTes(const KthTes& rhs)回复于 2006-11-20 10:11:13 得分 0
虽然没用过ACE,但和楼主一起声讨一下这个delete this,这句代码的Shability实在是有点高。Top
24 楼20040216(每天几行)回复于 2006-11-20 10:52:10 得分 0
自己封装吧
不到5千行代码,20个工作日
简单的东西决不用复杂的Top
25 楼lamputa_lito(lamputa)回复于 2006-11-21 21:44:16 得分 0
这么多人发表的意见,有几个是真的理解ACE的呢?你们在怀疑ACE的目标还是实现?如果是怀疑实现,你们觉得有更好的,更简洁的方法?
==========
声明,本人刚看ACE的介绍,ACE确实非常庞大臃肿,但是我想ACE有很多可以学习的地方。Top
26 楼lamputa_lito(lamputa)回复于 2006-11-21 21:45:38 得分 0
你们说的几k行代码就可以写出高性能的服务器,那我想很多网络程序员都会失业了。Top
27 楼vcclass(黑山老妖)回复于 2006-11-22 18:34:11 得分 0
ACE是越用越难用呀Top
28 楼vcclass(黑山老妖)回复于 2006-11-23 09:46:37 得分 0
受到各位的批驳,我不想说什么,我是为你们好,如果你们不相信,认为ACE好,那你们就用ACE好了,ACE非常不错。用的会让你爽的。Top
29 楼vcclass(黑山老妖)回复于 2006-11-23 09:50:04 得分 0
在一些嵌入式操作系统里都可以用ACE,我不否认ACE做了很多的事情,但是ACE并不支持 freeBSD里的 kqueue模型,kqueue是公认的比LINUX下的EPOLL模型效率更高的模型,它都没有支持,实在让人不懂呀。最让人恼火的是 他会释放我 NEW 出来的东西。Top
30 楼iisbsd(墙头草,和稀泥)回复于 2006-11-23 13:43:55 得分 0
lamputa_lito(lamputa) ( 二级(初级)) 信誉:97 2006-11-21 21:45:38 得分:0
你们说的几k行代码就可以写出高性能的服务器,那我想很多网络程序员都会失业了。
======
我当年听过最可笑的自吹是我写过几十万行代码。对不起,第一,我不记得我写过的代码行数,第二,行数多不见得就是东西好,而且通常是相反的。如果你不信的话:
不知道你听说过memcached没有,如果听说过,不知道它算不算高性能的服务器,抱歉,它只有3千行多点的代码。
apache的httpd当年只有大约6千行代码,我觉得效率还好(当然,现在httpd大很多了)。
qmail比较大,有1万6千多行代码,当然,邮件系统功能更复杂些。Top
31 楼vcclass(黑山老妖)回复于 2006-11-23 17:34:19 得分 0
iisbsd(墙头草) : 关于 lamputa_lito(lamputa) 他所说的观点推理就是 “代码越多执行效率越高”,这明显是个悖论嘛。这会把我笑死的。
今天又继续研究ACE的代码,单步执行进去跟踪,让我我坚信ACE 是忽悠人的玩意,目的就是赚钱,很多很多的无任何用处的代码到处都是,不把人搞晕,能忽悠住人吗? ACE_Event_Handler,这个类完全可以经过简单的处理后变成一个抽象类,但是他不是抽象类,实现的代码都是 打印出一个调试信息。ACE_Event_Handler的子类反而倒是一个抽象类。实在是垃圾呀。
Top
32 楼lamputa_lito(lamputa)回复于 2006-11-23 22:40:40 得分 0
首先我并没有说代码多的就是好的,我之所以怀疑几千行的代码可以写出一个高性能的服务器,原因是因为我认为一个好的服务器不单单是效率高,我认为一个好的服务器除了提供高效的服务,还需要有好的扩展性,可维护性和好的平台适应性。可能你认为这些只是概念上的事情,但是如果其实这些特性在这个竞争激烈,更新极快的计算机行业中,是非常必要的。
就拿平台适应性来说,举个例子,加入你的服务器是高度依赖windows API的,那么好了,运行了几年,现在微软要推VISTA了,你要获得更好的支持,若干年后你必须要重写很多代码来跟着它跑。这种事情随处可见。
而要实现上面提出的那些目标,你不得不认真定义你的构架,抽象你的逻辑,而这些东西,无疑都会增加代码量。当然,要考虑的东西还不止这些。
如果你可以在几k行的代码里把这些东西都考虑进去并实现出来,那我只能是佩服加佩服。
ACE是庞大以致于有点臃肿,但是你没有从ACE的出发点去考虑和应用它,ACE本来就不是打算给你随便几个API就搞掂一个应用而写的,它强调的是平台适应性,效率(当然不可能跟直接的API调用的比,但是它很多很好的算法模式提供了很多优化),可维护性等。
这些是个人观点,希望大家可以客观讨论。
Top
33 楼qrlvls( 空 气 )回复于 2006-11-28 13:25:14 得分 0
基本上ACE的框架是好的,方向也是明确的
楼主有些过于偏激,但不可否认ACE里存在一些毫无价值的内容
Top
34 楼qrlvls( 空 气 )回复于 2006-11-28 13:33:09 得分 0
我认为Reactor和Acceptor的概念都是高效且可行的
但我在阅读《ACE》一书时,特别对“主动对象模式由 Greg Lavender 首创。”这句话旁边加了一个批注,严重B4了这个 Greg Lavender ,虽然很有可能是我并没有意识到他的主动对象有多么先进,但在我意识到这一点之前,我还是要深深的B4他一次,再一次地…………Top
35 楼czylj(夭夭)回复于 2006-12-03 01:37:25 得分 0
呵呵,楼主水平不够吧,不过吹能用4000行实现一个,等你实现出来再说吧.
这么说吧,如果你只打用ACE的二个类,就不要用了,ACE底层的类,技术上并没有大的用处
它最大的价值在于集成的框架,如果学会了,可以事半功倍.
任务系统,框架,进程,内存池,线程,相关的东西多了去了.
另外,ACE是全免费的,它的钱全是国外的大公司捐的,估计楼主的钱它还看不上.Top
36 楼delphijava((好之者不如乐之者))回复于 2006-12-04 15:37:57 得分 0
如果只是TCP UDP .自已用C实现不就行了 。 为什么用ACE ?
都少大型的程序用C实现网络接口这一快 。 也不见得他们非要用ACE不可以;
Top
37 楼vcnewer(磨剑)回复于 2006-12-07 14:00:31 得分 0
呵呵Top
38 楼callzjy((草魚))回复于 2006-12-07 18:31:50 得分 0
呵呵Top
39 楼baiduan(-_-化杯粪喂力量-_-)回复于 2006-12-11 11:40:56 得分 0
不会ACETop
40 楼LVOLCANO(风起)回复于 2006-12-11 14:05:35 得分 0
mark
Top
41 楼benjiam(今晚打老虎)回复于 2006-12-11 16:51:52 得分 0
lz 什么水平啊? 我只能说你没资格说这个话。
作者是博士,80年开始做这个,人家比你强的不是一点点。是公认的网络编程大牛。大公司也不是钱多到花不完,要捐给它。ace 很多地方优点也很明显。
但是我也要抱怨一下,复杂的结构,让我们很难驾御。我们的项目里面ace 在泄漏。目前还找不出原因,只知道吊过了ace 旧慢慢有泄漏了。到底是ace 本身 还是我们的代码有问题,不知道。旧版本的ace 没有这样的问题。
去group 也没办法问。代码有n多k 难到都贴上去?
Top
42 楼hsz8250(terry)回复于 2006-12-16 22:56:01 得分 0
ace很多方面可以借鉴的,那些模版的使用,和设计模式都运用的不错,可以增进程序员的能力,其实ACE能为我们做很多方便的事情,虽然在某些情况使用ACE的框架有限制,而且也需要考虑修改ACE的部分代码,但是总体来说,用起来很方便的!Top
43 楼batizhou(batizhou)回复于 2006-12-22 13:51:49 得分 0
哪个好,哪个不好其实很容易辨别,就是看在一个正式对外提供服务的服务器里,你会不会用ACE。
用完成端口或者epoll写个能支持几千连接的网络组件,估计最多两至三周就稳定了,而且性能还不错,因为epoll和完成端口总共的知识量并不多,里面的任何东西自己都了如指掌。例如一个网游服务器,三千人在线,我敢放心的用自己写的组件。
用ACE估计两至三周能够完成基本功能,但真正的恶梦估计从此就开始了,里面指不定什么时候就冒出个BUG,因为ACE太庞大了,里面的东西估计至少要半年才能吃透,在这种情况下,至少我不敢把它放到一个正式的服务器中?
当然不是说ACE一无是处,我觉得里面的很多模型,非常具有学习价值。
Top
44 楼batizhou(batizhou)回复于 2006-12-22 13:57:41 得分 0
如果就实际产品开发而言,敢说ACE好的,多半都是些理论家,没做过什么实际东西,或是一些水平不怎么高的人,纯属跟风,没自己主见的。
就个人而言,ACE只具备研究和学习价值,不具备实际使用价值。
Top
45 楼crystal_heart(笑看风云)回复于 2006-12-28 17:53:39 得分 0
ACE只具备研究和学习价值,不具备实际使用价值。Top
46 楼ahhy(蓝色海洋)回复于 2006-12-29 19:39:36 得分 0
ACE 工具包的几个层次:
(1) ACE OS Adaptive 层
(2) ACE C++ wrapper Facade 层
(3) ACE framework 层
- 事件多路分离和分发框架 reactor, proactor
- 连接建立和服务初始化框架 Acceptor-Connector
- 并发框架 Task 框架
- 服务配置器框架 Service Configurator
- 流(Streams)框架
(4) 网络服务组件层
LZ 不要急, 冲动是魔鬼!
静下心来思考自己面对的问题, 是哪里出了错, 真的是 ACE 出了错, ACE 真的只是 "骗钱" 的? 还是自己没有很好的把握好自己面对的项目的每一个层次... ...
Top
47 楼lamputa_lito(lamputa)回复于 2007-01-10 14:31:28 得分 0
如果要很快的想把ACE应用到实际项目中,ACE确实不适合。
我现在断断续续看了接近3个月,也还没看多少ACE的代码。都是在看一些相关的基础知识。
期望在毫无基础的情况下一两个月内把ACE搞到实际应用的工程中,只能说你本身对ACE认识不足。
Top
48 楼firebolt2002(霹雳)回复于 2007-01-10 16:55:42 得分 0
慢慢来吧。觉得ACE不适合当前的项目可以不用,不过全盘否定也不对,ACE的用到的很多设计模式还是值得肯定的。很多技术也是非常先进的。Top
49 楼84shelley(影朔)回复于 2007-01-11 11:35:25 得分 0
接了~~
反正我是比较钟情自己封装通信接口Top
50 楼karonhome(天天开心)回复于 2007-01-13 13:58:25 得分 0
markTop
51 楼EricZhuo()回复于 2007-01-14 15:06:20 得分 0
boost::asio比ACE小巧, 易用性高很多. 效率也是很高的(在windows下面用的是IOCP), 我用它做过实际项目, 非常的不错.Top
52 楼sxcong(sxcong)回复于 2007-01-15 14:59:15 得分 0
回:lamputa_lito(lamputa)
高性能的网络服务器,几千行的确能实现。jabber的服务器是开源的,有不少是用c,c++写的,你上去数数有多少行。
绝大多数程序员没有失业,就是因为他们没有你这样想法,而是精益求精的专研。写的代码多不代表水平高,相反,水平高的人写出的代码绝对是精简有效。
Top
53 楼matrass_zhao()回复于 2007-01-15 17:26:40 得分 0
delete this很正常啊,有什么可批评的?Top
54 楼ydogg(灰毛兔频频)回复于 2007-01-18 17:22:38 得分 0
1. ACE是opensource,不会赚你的钱
2. ACE体系虽然庞大,但是层次清晰
最低是跨平台的C API, 中间是C++的包裹类库,
上层是基于常用网络模式的Framework,最上是部分成型Service.
精华部分在于framework(大量的代码聚集处), 使用得当确实是事半功倍。
你觉得这部分难用也可以直接用下面2层(估计你喜欢的是这种),道格拉斯还希望能多使用下面2层呢。
3. 和STL容器不兼容是个缺点,可这样做是为了更多的支持嵌入式平台。
Top
55 楼ydogg(灰毛兔频频)回复于 2007-01-18 17:27:34 得分 0
至于别的,比如thread支持,XML解析等等确实是可以去掉,不过ACE目的是为了尽可能的自包含,少依赖于别的项目。
ACE的framework层的很多设计理念在道格拉斯同志的POSA的上下卷中阐述的很清楚,
精妙之处令人欢喜。Top
56 楼ydogg(灰毛兔频频)回复于 2007-01-18 17:32:39 得分 0
boost:asio?
接口层次太低,API c++化了而已,在功能上和ACE不能相提并论,不是一个档次的。Top
57 楼pepsi_fei(可乐)回复于 2007-01-18 20:45:19 得分 0
强烈支持版主的意见,ACE实在有点@#$%&*~!
接分Top
58 楼uuussseeennn(半只青蛙)回复于 2007-01-20 17:59:15 得分 0
1:ACE的入门很难,想吃透里面的精华更难,所以在门口就被拦住而心生抱怨的人自然不在少数,也可以理解。
2:当一个人接触一新思想时,传统的思想势必会向它发起猛烈的攻击,如果这新思想很复杂,优势难以很快体现出来,是很容易败下阵来的,除非那个人能快速的掌握它并体现它的优势。
3:任何代码的多少主要是看需求的大小,抛开需求谈代码量实在不解。而且代码也不是越少越好,难懂晦涩的代码会带来维护上的噩梦,企业级的代码是绝对不允许的。
Top
59 楼abszo()回复于 2007-01-22 11:34:08 得分 0
不知道ace,没用过,
我自己做了一个中间件系统,有兴趣的朋友可以帮下载来瞧瞧,顺便帮我测试一下。
很简单,很容易上手。访问地址:http://www.abszo.comtop/
60 楼lemon_wei(研究BT,做好P2P)回复于 2007-02-08 09:17:41 得分 0
没发现ACE有这么差Top
61 楼f7zz(七根烟)回复于 2007-02-09 23:55:27 得分 0
ACE入门比较痛苦一点,习惯了就行了。是个好东西。 我的项目里也用它。Top
62 楼kourr2004(★★★★★鬼谷子:)★★★★★)回复于 2007-02-13 14:02:14 得分 0
ACE???好熟悉,是不是做移动通讯前台界面的那个工具?还跟中间件tuxedo联系在一起???Top
63 楼Robyyang()回复于 2007-02-26 11:15:09 得分 0
不是很熟悉.但是事情往往不要说绝了.Top
64 楼starytx(此地禁止大小便,违者没收工具!)回复于 2007-03-06 09:27:39 得分 0
仁者见仁,智者见智Top
65 楼lamputa_lito(lamputa)回复于 2007-03-08 13:46:00 得分 0
回:lamputa_lito(lamputa)
高性能的网络服务器,几千行的确能实现。jabber的服务器是开源的,有不少是用c,c++写的,你上去数数有多少行。
绝大多数程序员没有失业,就是因为他们没有你这样想法,而是精益求精的专研。写的代码多不代表水平高,相反,水平高的人写出的代码绝对是精简有效。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
请问jabber是高性能的吗?不是,其实,jabber是平台无关的吗,不是。jabber只不过是一个框架而已,卖点也只在于互联互通,其次,如果你把所有jabber的服务都实现下来,我想代码也不会少Top
66 楼sevencat(七猫)回复于 2007-03-08 14:47:53 得分 0
markTop
67 楼swnu_laofu()回复于 2007-03-15 21:28:32 得分 0
回:lamputa_lito(lamputa)
高性能的网络服务器,几千行的确能实现。jabber的服务器是开源的,有不少是用c,c++写的,你上去数数有多少行。
高性能代码确实很少而且优美。高效整洁的代码可以说像一们艺术。也许你们接触到底层代码吧Top
68 楼swnu_laofu()回复于 2007-03-15 21:29:49 得分 0
我也看了一段时间ACE。实现的思想可以学习。但是要用它来做网络游戏通信底层我还没这个勇气Top
69 楼fhqiplj(霏霏鱼)回复于 2007-03-16 14:12:22 得分 0
就个人而言,ACE只具备研究和学习价值,不具备实际使用价值。
=======================================================
可以学习他的思想,并且在工程中使用这些OO思想,如果直接在ACE上构建系统,那将是一个噩梦的开始。工程不允许有太多的时间去学习和研究的;对于不在我控制下出现的任何一个new 或者Socket通信,都可能在后期的运行中出现不可预知的问题,ACE过于庞大了,以至于不能够灵活的驾驭它了。Top
70 楼RobertBaker(黄金一代)回复于 2007-03-20 16:16:28 得分 0
各位要用过才知道,我正在学ACE里面的东西很实用!几乎包括了我担心的所有问题的解决方案,自己写多费时间呀,要知道它可是经受过时间检验的呀!确实好,如果你觉得不好,可能是你不了解它,或者是有偏见。Top
71 楼starcbh(信仰)回复于 2007-03-26 11:24:40 得分 0
胡说,那是你自已不行,不是ace不行,ace的好处不是在外面看看就知道的Top
72 楼starcbh(信仰)回复于 2007-03-26 11:27:07 得分 0
to vcclass(黑山老妖) ( ) 信誉:97 Blog
是你自已不行,另外,ace是开源的,没有什么赚钱的说法,
去看看设计模式吧~~等你明白ace的强大和好用,你会为今天说的话羞死的Top
73 楼michney(最近比较闲)回复于 2007-03-26 18:05:00 得分 0
没用过ace,暂时也不打算学Top
74 楼qzjackie(qzjackie)回复于 2007-03-29 10:51:04 得分 0
接分有理接分有理Top
75 楼yebeans(追逐牛牛们的背影)回复于 2007-03-30 22:18:07 得分 0
如果只做个狗窝,要你去先架个吊车~~我帮你一起骂~
如果要你建一幢大厦,而你不会架吊车`~~可想~~~~Top
76 楼thinkinnight(逍遥)回复于 2007-04-01 12:43:46 得分 0
没用过,也不太打算用,markTop
77 楼hlidea()回复于 2007-04-10 14:42:27 得分 0
yebeans(追逐牛牛们的背影) ,严重同意
你为了发个helloworld给服务器来用ACE,那不是找抽吗?ACE是用于大型项目的
既然只用两个类,就不要用
楼主典型的自以为是Top
78 楼kalee2008()回复于 2007-04-10 17:37:58 得分 0
以前都是自己写,现在这个项目打算用ACE看看。Top
79 楼localman()回复于 2007-04-12 17:12:48 得分 0
你不习惯ace的方式,不代表ace垃圾Top
80 楼funics(九州)回复于 2007-04-13 21:22:24 得分 0
毫无疑义的讨论Top
81 楼dapao19850920()回复于 2007-04-14 23:10:03 得分 0
没用过,也不太打算用Top
相关问题