唯程序员与小人难养也
学习ACE看的很累,发发牢骚,活跃下论坛气氛,版主觉得不合适就删了吧,呵呵。唯程序员与小人难养也
ACE这东西好是好,就是太学院派了,太难搞懂了(不是我说的)。但我看有些复杂和麻烦的地方就是纯粹的提高初学者的入门难度,除了起到“知识壁垒”的作用,没有任何意义。
例如前摄器处理event,一个是带循环,一个是不带循环。
ACE_Proactor::instance ()->handle_events ();
ACE_Proactor::instance ()->proactor_run_event_loop();
拜托命名规范一点好伐,proactor_run_event_loop这个方法前面加个proactor前缀不是脱裤子放屁是什么。
又如ACE_Task_Base中最重要的虚方法svc(),光看名称知道是干什么的吗?put()和putq()的差别又是什么,程序中到处充斥着晦涩难懂代码,冷不丁就闪亮着高智商SB程序员的智慧光芒。
最让人崩溃的就是ACE所有的.cpp和.h文件都被杂乱无章的扔在了ace目录下,除了一团糨糊还是一团糨糊。建几个子目录,归归类,整的有条理些,要死人啊?
这帮高智商SB程序员就故意整些门槛。把我们这些不太高智商的也不太SB的程序员折磨的死去活来就显得阳春白雪,就有快感了么?老子真tmd想骂娘,唯程序员与小人难养也(包括我,但我是前者)。牢骚发完了,爽了,继续啃ACE代码,该学还得学。
最后给ACE拟幅对联,上联:“ACE很好很强大”,下联:“ACE谁用谁知道”。 好好学习吧。 ACE的缺点的确是“学院味太浓”。追求设计完美的同时,也就引入了复杂性。
难学是出了名的。不要气,都是这么过来的。 哈哈,ACE很多bad naming的问题前几天我也抱怨过
比如handle_time_out和handale_timeout
ACE_SVC_Handler和ACE_Service_Handler
put()和putq()
wfmo reactor中的owner(),不看文档你绝猜不到它是干什么的
“proactor_run_event_loop这个方法前面加个proactor前缀不是脱裤子放屁是什么。”
哈哈,因为有个run_event_loop方法,是静态的,貌似也就是调用了默认singleton的proactor_run_event_loop
所以说,ACE在整体上很好很强大,但很多细节上可以做的更好些。 某些设计,有历史原因。是为了保持兼容性的结果。 是的,ACE并不完美,但这并不影响它的伟大。
我们发现了它的一些缺点,比抱怨更好的方式是在自己手里克服它。
比如在用ACE写为别人调用的模块时候,我们可以把接口定义的更加清晰易懂无歧义,让用户感到方便和满意。
页:
[1]