我从2015年3月到2015年5月在公司实习了两个月。毕业之后,从2015年7月工作到现在,其中包括3个月试用期。
实习期的任务是实时测算系统中最后交易日对冲模块的实现,主要涉及了读取写入数据库、多级链表数据结构的建立、对冲算法的实现。这个过程的收获就是认识到,在大数据处理的过程中,高效的数据结构的设计是高效算法的基础,直接影响着系统最终的执行效率。
试用期开始,我是跟着王俊永导师,做企业数据总线改造项目,大致分为6个阶段:
第1阶段:项目代码学习与原型测试:
我大概用了一周左右的时间学习现有企业数据总线的架构和代码,然后参考TMAdapter的架构设计原型测试代码,对现有总线的转发性能进行测试。在这个过程中通过使用部门的代码库,使得多线程的启动与同步、文件的操作都比较容易实现。同时,我学会了使用svn、代码走查、单元测试等技术与工具。
第2阶段:与业务数据无关改造:
将数据总线改造成与业务数据无关的数据转发管理服务平台。我主要负责订阅端动态库的修改,用到的技术点是goolge protobuf的反射机制,并多处用到了模板。
第3阶段:高水位设置:
在这个阶段,我学习了ZeroMQ的代码,代码学习过程大概有一周。通过学习,我从整体上把握了zeromq的架构设计和核心实现,并理清了高水位设置相关的流程,对其进行了修改。最后,对修改后的ZeroMQ代码进行编译、安装,在总线项目中测试设置合适的高水位值。
第4阶段:架构改造:
对总线的服务器部分的代码进行架构改造,修改快照部分的加锁方式,并进行性能对比;对订阅端动态库部分,通过增加消息唯一编号数据帧,修改了快照与广播数据同时接收的处理逻辑,减小了订阅端的数据缓存。
第5阶段:添加历史管理模块,实现了全量数据回放和变更历史查询用户需求。
第6阶段:对闪存卡进行测试,将闪存卡应用于数据总线系统中,并根据其读写特点,修改历史管理模块的文件读写方式。
以上就是我的工作总结情况。
从实习开始到现在的七八个月的工作学习过程中,我主要有以下几点的心得体会:
1.认真负责的态度才能把工作做好。
2.不怕失败,接受失败。找到失败的原因,就是一种成功。
3.多听取同事的意见,认真对待同事的建议,因为每个人都有自己思维的死角。
同时,自己也认识到了自己不足的地方:
1.没有做好总结,导致一个知识点要反复在网上找资料。
2.没有阅读专业书籍,不断补充更新自己的知识。不去学习的话,自己的大脑就会成为无源之水,很难有新的思路突破。
3.对开发工具没有很好的掌握,如脚本、vi编辑命令等。
4.工作只限于自己的编码任务,没有去考虑总结完整的开发流程经验以及开发流程之外的工作经验。
未来展望:
1.认真学习业务,以负责的态度对待自己的项目任务。
2.不断学习尝试用高效的开发工具,如脚本、vi编辑命令等。
3.不断总结项目开发经验以及其他的工作经验。
4.深入学习linux:先学习linux的系统使用,在去深入学习内核源码。
5.深入学习windows,和linux进行对比学习。
6.学习stl库。
7.学习boost库。