回顾2014
例行回顾一下2014年学习和看到的技术、思路、方案总结:
Native Code 型语言
C/C++
- 《C++11动态模板参数和type_traits》 – 目前最上流C++设计模式就是模板,各种逆天的用法。这个只是冰山一角,也算是个敲门砖
- 《简单C++单元测试框架(支持一键切到GTest或Boost.Test)》 – 无论是Boost.Test还是GTest都过于复杂。而且跨平台方面比较有问题,于是就搞了个自己的单元测试框架。然而为了让一些平台下能利用到GTest和Boost.Test里的一些有用的特性,就在设计之初就做了一些适配层,这样可以很容易地切换到GTest或者Boost.Test。
- 《捣鼓一个协程库》 – 协程还是蛮上流的,参照微信libco库和微软Task系统的API而写出来的一个协程任务系统。基本功能已经完成。
- 《再议 C++ 11 Lambda表达式》 – 稍微深入C++11的lambda表达式和遇到的问题。
- 《[libiniloader] Project》 – 同样是由于现有的ini读取库都过于复杂,而且我这里ini读取主要用于游戏配置,希望接口简单,并且支持像PHP里那种层次关系。所以就有了这个玩意。自己用状态机简单实现的词法分析,并使用模板实现导出数据,还做了对象conf文件用#来注释的支持。最重要的是,所有的实现只有两个文件(一个.cpp和一个.h)。
- 《关于BUS通信系统的一些思考(一)》、《关于BUS通信系统的一些思考(二)》 – 主要是堆现有我接触到的一些通信系统的一个小总结,然后试着设计一个能解决一些问题的设想。具体实现仍在缓慢实现过程中。目前比较让自己满意的部分是性能测试和稳定性测试。
- 《集成Qt Webkit 到cocos2d-x》 – 由于项目工具需要,了解了一下Qt。Qt的设计还是比较有意思的。
- 《Android NDK undefined reference to ___tls_get_addr 错误》 – 写跨平台代码过程中碰到的android的一个奇怪的链接问题而引发的一些小研究。不用不知道,一用吓一跳。
脚本 & 托管语言
Lua
- 《Lua性能分析》 – 做这个得原因是lua profile不支持lua5.2。其他好用的工具都不免费。干脆就自己搞个性能分析工具,比较开心的是被gaccob拿去改装啦
- 《tolua++内存释放坑》 – tolua++的坑真不少,已经发现的已经两个了,没发现的还不知道,所以为了保险起见,自己写了个lua函数绑定机制。等新的机制趋于成熟了再发分享出来
Javascript
- 《基于Chrome插件的开发工具链》 – 之前在腾讯的时候,跨部门沟通效率太低,所以干脆自己写浏览器插件来做一些自动化和多个工具集成方面的工作。于是研究了一下浏览器插件的编写,实际上后来还研究了Firefox的,总结发到腾讯KM里但是忘记转发一份到blog了。现在离职了拿不到,过两天找人问问看能不能拿回来。
PHP
- 《[WP Code Highlight.js] Project》 – 迁移blog写作工具的产物,集成highlight.js用得,并且已发布到wordpress的plugin里
工具及其他
- 《又碰到了这个解谜游戏,顺带记下地址》 – 以前遇到的解谜游戏的地址
- 《Linux 编译安装 GCC 4.9》 – gcc 4.9已发布,在4.8的基础上新增优化了很多功能
- 《记录一些在线编辑器》 – 这是转向使用markdown写作的开始
- 《LLVM + Clang + Libcxx + Libcxxabi 工具链编译》 – 这是主流编译器构建的一个补充,clang的编译系统做的远不如gnu的。编译起来困难重重。
- 《近期研究VPN的一些记录(OpenVPN,pptp,l2tp)》 – 研究的VPN搭建流程,主要是作为软件开发。不翻墙没法活啊。工具、很多优秀的开源项目都搞不到
- 《Gitlab环境搭建小计》、《gitlab腾讯企业邮箱配置》 – 开始主要版本控制系统转向git的开始
新增的开源项目
2014年的规划完成情况
- [已完成] 第一是学习下Python,这玩意现在很火,有空得研究下;(目前挺多工具用python写得,但是都是小工具,不成体系所以并没有发布)
- [已完成] 第二是看看Java的垃圾回收的一些实现,看看能不能用在C++里(java实现在语言层,算法比较多且复杂,c++的话暂时还没想到什么好办法移植)
- [部分] 第三是继续看一些底层的技术书籍,比如TCP/IP详解等等(这本书没看,其他的倒是不少)
- [已完成] 第四是基本完成协程框架(功能基本完成)
- [已完成] 第五是重拾Java,使用Java制作小工具而不是C++,以达到更好地跨平台特性( xresloader 这货就是我一直想做没时间做,现在终于做出来的东东,java编写。跨平台,至少我自己这里Linux和Windows下都在用)
总结
总的来说,2014年感觉看得东西都更加深入一些,量少一些。今年没看多少书,大致浏览了下《C++ Primer 第五版》,精读了《深度探索C++对象模型 》,第一遍过了一下《Unix环境高级编程》这本书看一遍果断是不能完全理解的,我看完第一遍的感觉最模糊的地方是终端控制那一块。还有看了一点点的《Linux内核设计艺术》果然如gaccob所说,看起来没什么意思,有点教科书的感觉。其他的零零散散的也没什么意思的书也有,比如一个讲类似libevent的事件框架的,一个讲libuv框架的,等等。目前正在抽时间精读《程序员的自我修养—链接、装载与库》,这确实算是国人写得不多得的好书哇。