紫月城游戏软件

低调做技术

最近接触的东西

平时工作,很好有时间拿来自己安排学习,所以接触的东西比较杂乱。偶尔做个列表,列出最近完成的以及计划安排。

网络编程,摆弄各种API,其实弄明白了写点实验代码觉得什么都不是。当初想买TCP那三本龙书,想对底层探个究竟,可是终究还没能抽出时间。

网络库,网络库不是把socket不是把IOCP封装起来就可以的。再经历过各种架构,写过一些库代码后,自己对开发库的要求是越来越高。琢磨了良久,我心目中的网络库,即使是用来讨好自己的迷你型的,起码也该进行软件分层,从发送接收层到加解密层到数据校验层到消息层,这么多层次,要做好不容易。心里面其实有想法,无论如何,我应该秉持当初开发edge2d的态度,在真正动手之前先取万家之长。

MMO服务器分布式架构,不了解之前觉得宏大不可及,接触后其实也觉得没什么。凡事不要害怕,想想看,再深奥的东西,也是人想出来的。一个东西之所以复杂,是因为它经历了长久的变化。如果让我来想,如何通过服务器的分布式架构减轻单个服务器的负载,那我想出来的,最多是几年前的老东西。无论如何,分布式架构的模式在那里。关键是让自己去学着改善学着思考出自己的方案。本来安排了几个网络游戏代码让自己去读。可是竟然如此郁闷地找不到时间。

模板编程,想来做技术都秉持一个观点,一步一步来,不求多只求精。自己学C++分了好几个阶段,理论,实践,理论,实践。这样磨蹭着过来,一年时间竟也写了10万行代码。之前有过深入接触C++模板编程的想法,看了一阵子书,觉得基本上没获得一种模板实践编程的思想,果然是可学不可用的东西么?后来听说dophi说他们公司有个人被封为‘模板达人’,自己觉得有点意思。于是08年又把模板拿出来。看了<STL源码剖析>,翻了下STL源码,确实有时候觉得精妙不可言,大有拍案叫绝的感觉。不过从本质上来说,也不过如此。最近又开始看<C++设计新思维>,之前看过英文电子版第一章,对于满世界的policy混沌不已。现在看纸质的书,觉得感觉还行,没有原先想像的那么神圣不可及。现在很高兴有了模板编程的思想,时髦点说是泛型思维。当初很善于玩弄面向对象架构,老喜欢给别人炫耀一个系统的架构(例如我的edge2d),谈论各种设计模式。现在对于模板,也喜欢满世界地塞template,仿佛全世界都可以泛化一样。凡事有个度,不过自己允许自己在初期过于泛化吧。

自己模仿着loki写了个functor,觉得很美妙。打算将operator ==和copy constructor整理下就可以用于实践。

看了下stl的binary_function, unary_function, bind1st, bing2nd之类的functor, functor adapter,觉得真是粗糙不堪。不过我想,这种粗糙也情有可原,毕竟像loki这种挑战编译器极限的玩意,也只能算作程序员的炫耀品了吧?

准备看boost的bind,现在学技术老爱一杆子全部打下。学了网络编程就想多看几个网络库,自己写了线程池就想看看别人写的线程池,学了模板就四处找template看。so how about boost::bind ?

瞎摆弄了下asio,实在很想找个东西用来实践下,不想leader不允许。这世界,可学不可用的东西太多太多。

准备接触linux下的epoll,幻想着它也许就是一个轮询的查询方式,似乎还没IOCP来得优美。也许真正开始linux编程的时候,我也就真正不会使用exception。但是起码现在的观点是,鄙视那些因为C++的高级特性(多态异常所有你能想到的)而带来的C++的所谓低效率的人。如果你认为那么一点点语言机制会拖慢你系统的运行速度,那么你为什么不去看看你那些蜗牛一样的算法?如果你在用C++,那么专业点,努力不要写C风格的class(很别扭,是吧),努力进入C++的世界。我不是C++牛人,因此我不能告诉你C++标准库,C++准标准库,C++那么多那么多优秀的库,为什么要那样做,为什么要使用多态将整个系统抽象起来,为什么要用异常将整个系统throw起来,为什么那么多稀奇古怪的template typename。我只知道,我在写C++程序,所以我跟随这些库的作者。

内存池,不单单是内存池吧?总之关于自己管理内存的东西,STL里面有allocator(限于SGI的STL),loki里有SmallObject,这些都是不错的东西。如果可以,我会去实现一个allocator,内存分配器。但是如果折中,我会剥离STL的allocator,记住,policy设计方法学告诉我们,组装这些组件!

线程池,其实原理就那么简单。分配一堆取着用先,不够了再分配,积极回收吧。但是出于对自己多线程编程经验的不自信,我最终不敢炫耀我自己实现的线程池。我想,先培养我和多线程的感情先吧。

凌乱杂散了这么多,接下来换换重心,集中攻克一方面吧。

posted on 2008-03-13 00:17 Kevin Lynx 阅读(255) 评论(3)  编辑 收藏 引用 所属分类: C++

评论

# re: 最近接触的东西 2008-03-13 02:49 Fox

模式倒是不错,模板没感觉。你也没有给出自己的理由,只是说别人这样做的:)
我的理由:
1、语言工作者要提供面向所有coder的需求实现,而你我充其量是对着3、5个人,而这3、5个人尚且×××;
2、不用模板和高级特性能实现的很好的东西,如果没有特别的通用、高效、安全的考虑,没必要让其他coder花几个月去学习并使用它们,因为你写出那些code都是在学习了很久之后,除非你能把他们封装的像stl那样让人忘记他们,甚至不让cloudwu指出诟病;
3、在跨平台还是一个很遥远的东西的时候,没必要写一个通用库,毕竟,MS、IBM、SUN都不用一个线程库,如果真有像socket那么NB、那么perface的东西,为什么大家不要一个呢?
4、设计本身最重要。
5、over。。。
又快3点了,我日。。。。。

PS: 忘了说了,我居然第一个来了。。。荣幸之至!  回复  更多评论   

# re: 最近接触的东西 2008-03-13 08:32 cppexplore

没有模版需求的时候 总也不知道使用它的原因
有需求的时候 自然就知道为何使用它
呵呵 顺其自然  回复  更多评论   

# re: 最近接触的东西 2008-03-28 12:01 成都和为软件技术

http://bbs.gameres.com/showthread.asp?threadid=107922

去看看 哈

招聘的。 现在公司还没有找到 合适得 人。  回复  更多评论   


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]