距离上次写博客,一晃又是几年过去了,看看当初青涩的自己,这几年似乎又长进了不少。
首先,最近惊喜的发现,我在联想研究院时候搞的几个项目,都成为专利了。
http://www.soopat.com/Patent/201210170213
http://www.soopat.com/Patent/201210193639
http://www.soopat.com/Patent/201210158971
这3个专利都是在我作为乐同步服务端负责人(2011.1-2013.8)做出的设计,专利名字起得很怪,其实用简单的话说,就是一个分布式文件系统,一个可扩展的数据库分库算法,还有一个增量备份恢复算法。
专利本身没什么,顶多是把业内做过的事情,又换了一种方式来做了而已,说是重复造轮子也不为过。
不过造轮子本身其实是对自身提高很大的一种方式,在造轮子的过程中,对于其他轮子的原理也就理解了不少,特别是在年轻的时候,血气方刚,做事情往往只考虑对自身的提高,不太去考虑后续别人的维护,倒是经验丰富以后,造轮子之前都会看看有没有现成的轮子,自己造的轮子也就少了,所以说要趁着年轻多尝试也是这个道理。
下面就总结一下工作这些年,我造过的轮子:
1. 写了一套ORM框架(估计很多人都干过吧),基本上实现了所有简单的单表操作,基本上是直接继承就可以用,用在了我参与的很多项目中。
2. 写了一套ORM框架,不过这个是操作MongoDB的,API基本上和上面的一样。
3. 写了一套socket服务端框架,当初就为了提高socket编程能力,不去用成熟的mina,netty等技术,偏偏要自己写一套,个人觉得比较有价值的是实现了从JAVA POJO到C Struct的转换,和C语言通讯时比较方便。
4. 写了一套rpc调用框架,放着更牛逼的hessian,protobuf这些不用,选用了json来作为消息载体,并且基于动态代理实现了基于java interface的远程方法调用。
5. 写了一套基于python的数据库连接池,由于tornado的torndb没有连接池功能,我就实现了一个。
6. 写了一套python的线程池,觉得别人写的不好用,于是自己写了一个。
7. 写过一套监控系统,没有用nagios,而是基于自动通过ssh连上服务器输linux命令的方式,实现了一套对服务器基本状态的监控系统。
8. 写过一套基于python的定向爬虫系统,可以指定到某个URL下的xpath来爬取里面的文章。
9. 写过一套支持腾讯微博和新浪微博的分享系统。
再加上面的3个专利
10. 一套分布式文件系统, 实际上有mogileFS,mooseFS等成熟项目可供选择。
11. 一套数据库分库算法, 这个主要跟业务相关,不能算重复发明
12. 一套移动设备数据的增量备份和恢复算法,这个是借鉴了rsync的思想,也不能算重复发明
以上部分代码在我的个人网站上能够找到, 欢迎关注.