在今年的最后几天,做一下总结.
1. 今年跳了两次槽(~!@#$%^&*())
前面俩公司还都做WM开发(这不之前写了不少WM文章),不过最后这个公司,做mmo服务器,所以目前一直在做Linux上面的写代码.
成功从C#转型到C++.
2. C#->C++的转换,是在第二个公司完成的,他们不用C#写WM程序.
第一个月是非常痛苦的.记得其中有两次严重的野指针,分别查了一天才找到.
总结一个经验,如果用malloc,那么一直用malloc,不要一会儿用malloc,一会儿用new......我那两次数组越界都是平时用new,突然用malloc造成的......
3. 现在一直在写C++和lua.
服务器代码何其多........我有生以来见过最多的代码,想要一时间全部理解,还是困难一些.代码的风格千变万化.
不过lua就好多了,简单容易理解,而且具有强大的抽象能力和灵活性,令C++汗颜无比.
曾经有一个同事要把一个小功能用C++实现,我直接上去,用lua现场写了不到20分钟,立马搞定(~!@#$%^&*()):-P,还赠送解说.
4. 加班无极限
自从写了mmo服务器了,就没消停过......天天加班,星期六都算是正常的........每天差不多10点,日复一日.没有时间看书,没有时间学习.
而且,最可恨的是,我没外网机,每天上班就是写代码,另外就是用内网聊天工具和同学扯淡(只有内网聊天工具,连email都没的)
今年没完成的事:
1. C++对象序列化问题
C++对象序列化本来是一个很简单的事,但是我们的服务器因为这个事down了不知道多少次了.关键的问题是怎么应对数据成员的增加删除和改动.
我只知道Thrift和Protocol Buffer在这方面做的挺好的,所以想深入了解一下.如果能把thrift裁剪一下,那是最好不过的事:-D
Protocol Buffer默认数据类型比较少,Thrift么,太过于庞大,而我暂时指向要期中序列化的部分~~
2. C++ lua交互问题
C/C++和lua交互,本来算是比较简单的,C/C++把自己注册时LuaState,lua就可以调用C/C++函数;C/C++通过luastate调用lua函数.
可是问题在于,怎么设计API,使得情况变得合理.
WoW的那一套API设计,可以让lua做很多事,而不要动用复杂的C++.
准备研究一些开源的游戏,看看别人是怎么设计API的.
3. 减肥
锻炼身体,保家卫国.没家.....卫国算了...
明年想做的:
1. 今天没完成的
2. 学习一下Haskell
这个语言看上去很酷.
有了学习lua的经历,我更想去了解一下函数式语言,lua的表达能力的确很强,很多东西用lua几行就能搞定,用C++写一堆代码.
3. 学习一下随机算法
服务器里面有好多随机问题,了解一下原理也是不错滴
OK,暂时写这么多吧,希望有时间搞定.
BTW:
预祝cnblogs的菜鸟,老鸟新年快乐!