Re: RE: Re: RE: Re: Re: Re: Re[2]: [cpp]感谢大家解决了我的困惑
Li Jie
cpunion at gmail.com
Wed Mar 29 16:12:18 CST 2006
在 06-3-29,李慧霸<magazine.lihuiba at 163.com> 写道:
> 由于ACE提供了framework,所以对程序的风格很有侵入性,程序员必须尊崇framework的约定,这不一定是坏事,不过我确实不习惯
这个。。。同一个程序中使用多个框架、库也是很正常的,但是,让某个框架或库左右你的设计,这应该是要尽量避免的。应该是以系统为中心,以适当的方法去组合这些框架,这个其实很容易做到,设计时只要考虑各个模块如何才能单独运行、测试,比如你的逻辑层应该是可以脱离网络层单独进行测试,网络层自然更应该能单独提出来测试,分得越细,受到侵入的影响自然就越小。
>
> 1。看是可看的,只是用是用起来是另一种感觉。我感觉一个好的封装库,起码应该做到隐藏细节,能让我等初学者不需要了解细节就能用好,也能让专家级用户能随心所欲,而用ACE我仍然得了解细节,所以用得有点"烦躁":)
ACE简单使用一下并不需要了解多少细节,要深入的话,我想不管是做什么,都要去了解细节。想想多线程、界面、数据库。。。。
> 2。ACE起源于很多年前,那时候还没有STL、boost、Loki之类的库,于是ACE自己实现了很多基础设施,如基本数据结构、线程及同步、操作系统底层封装等,好像还有智能指针,不过很遗憾,这些东西只是在重新发明轮子,并且发明得不一定更好,反而使学习曲线更加陡峭。
ACE里面很多东西在标准库里面找不到对应的吧?为了兼容老代码,又不可能再去采用新的库。
> 3。ACE倾向于使用自己的一大套自己的东西,并且坚持自己的东西,使得ACE程序难于跟其他库沟通。
很多库都是这样的,为了兼容老代码。另外ACE自己实现的基础组件都可以移植到多个平台,其它的库是否都能够做到?
> 4。STL、boost等库中也有许多design pattern。用不用pattern不是好坏与否的标准,关键要看用得是否恰当,实现质量、实现手段是否良好。
>
> 发了这么多牢骚也没用,毕竟现在在做网络程序,还是很想仔细学习ACE的,以后还要多向你请教:)
纯属个人浅见,敬请指正。
More information about the Cpp
mailing list