从菜鸟到架构师(二十三)

        这个项目最初没有做起来,和我一起开发的另一个同事也因此离职。

        毕竟我重回公司是为了证明我自己,我也不希望我来公司的第一个项目就以失败告终。我不甘心,多次向伟哥提出了我的一些看法。

         功夫不负有心人。我总算看到了希望,当时公司副总刚哥手里的事情也忙得差不多了,有时间来领导综合管理平台的开发。随后,公司招聘了一个产品,专门来负责综合管理平台的产品设计。

         经过不断的开会讨论,我们最终确定了方案和开发计划,先开发生产数据系统,也就是直接可以开放出去的数据。因此之前做的功能和现在的功能完全不同,我研究后决定重构,重新根据现有的产品设计来搭建框架。

        框架搭建好后,我就开始开发,起初只有我一个人开发,时间很紧迫,我忙不过来,伟哥从数源部调了一个同事来和我一起开发。

        不记得熬了多少个夜晚,加过多少次班,中途不断测试,不断调整,最终,经过近三个月的开发,到2016年底,综合管理平台生产数据系统开发完毕。我将综合管理平台部署到公司的内部服务器上供数据部的人使用。数据部的同事在使用过程中,也发现了一些问题。我印象最深的就是大数据导入的问题。

        数据导入采用的是excel导入,我们在开发过程中的测试数据较少,因此没有出现什么问题,正是发布后,用户在导入大批量数据时就会抛出内存溢出的问题。这个问题比较严重,他们反馈给我们后,我马上开始研究修复。在修复完成之前,他们只能将大文件拆分为多个文件分别导入。

        对于内存溢出的问题,我们想到的是对excel进行拆分,一个sheet一个sheet的读取,这样也会出现问题,因为一个sheet可能也会有很大的数据。那么我们想到了再对sheet进行进一步的拆分,一次性只读取1万条数据,然后放到一个集合中。我们发现并不能从根本上解决内存溢出的问题,因为一个集合存放的数据也是有限的。为了解决这个问题,我们又想到了读取一部分存一部分到数据库,这一部分数据存完后就释放内存,进行下一次存放,但是这样无法解决事务的问题,因为中途一旦报错,无法回滚。经过研究,我们终于找到了解决办法,构建一张临时表,将数据存入临时表,一旦中途出错,则删除临时表数据。当数据全部存放完成后,在同步到正式数据库表中,这样即解决了内存溢出问题,又避免了不在同一个事务,无法回滚的问题。

         解决这个问题后,我重新发布项目,数据部的同事也很方便的就可以导入大批量的数据,我也获得了公司领导的肯定。

         2017年初,公司召开一年一度的年终总结会。每个部门都会有一个人进行PPT的演讲。数据部的同事提到了他们现在处理数据的效率提升,分析部的同事也提到了PPT报告自动化工具提升了他们30%的工作效率,我暗自欣喜。我觉得我的付出得到了回报,之前辛辛苦苦的加班也没有白费。

你可能感兴趣的:(程序人生,从菜鸟到架构师)