[置顶] 我工作这几年(二)

07年页面框架做完后,又做了一段时间了需求开发,基于自己开发的框架做WEB开发,那不是一般地顺手,那是相当地顺手。虽然做得顺手,但进度非常紧,那一个多月每天都加班到很晚,痛并快乐着。

在做页面框架期间,重点看了两本书:《重构改善既有代码的设计》和《敏捷软件开发:原则、模式与实践》,重构这本书让我对如何写好代码有了个初步的认识,而敏捷这本书,说实话,只看得懂字面意思,无法领会。

在这个项目快结束的时候,我被抽出项目组去深圳出差,提前投入另一个项目。那个项目的前期相对轻松,用到的东西基本上都是工作第1年学过的东西,由于第一年的积累,做起来得心应手,期间还得到新项目组的负责人的表扬。

又过了一段时间,原项目组的人员也陆续地投入了这个项目,这时候开始又忙了起来。期间又做了一段时间的Portal开发,独立开发了一个用户操作相关的Portal,该Portal所有内容都是基于DB中的配置来动态加载的,后来WEB开发经验又丰富了一些后再回来头来看之前做的东西,确实有很多问题,不过像我等这样资质一般的,似乎也都是这样过来的。刚开始写代码的,基本上都是把功能实现当作开发工作的全部了。等这个Portal搞完了,又让我搞个简单的用户问题收集的Portal,方便专门的问题处理人员对问题进行处理和状态刷新。再之后,做了个基于Lotus Notes的Jar+DLL实现了通过WEB发送、接收Notes邮件的小系统。正是通过做这个系统,让我有机会认识公司的一个技术专家,通过完成这个任务,也得到了他的认可,在我后面的技术等级任职评定时,他非常支持我。

在我做手头任务的同时,其他同事也在进行其它模块的开发,其中有个同事开发的接入代理模块在并发量大的情况下,会出现性能问题,基于这个机会,我也开始关注程序的性能问题了。期间上网了找了大量的资料参考和学习,总结的文档这个链接可以下载到:http://download.csdn.net/detail/zhao3546/6194191。通过这段时间的学习,对性能有了初步的认识。工作一段时间后,我慢慢认识到在工作中带着问题去研究,往往能研究得更深入,也能学到更多的东西。

这个项目做了一段时间后,我又回到了原工作地继续做这个项目。期间那个性能问题其他人还在继续攻关,最后总算顺利解决了,我虽然没有直接参与,但事后也了解了很多细节,问题根因是因为登录过程中,某个sql比较复杂并且数据库表结构没有建立合理的索引导致存在性能瓶颈,导致大并发时N个线程被挂住很多时间,最终导致登录失败。用户登录失败后,又会不信地尝试,形成恶性循环,导致服务器的所有线程长时间处于等待状态。这个问题最终是求助公司的一个Oracle专家协助我们找到问题根因的,通过Oracle本身的功能,可以统计出一段时间内执行时间最长的sql,找到了这个sql,问题就解决了50%了。基于数据统计可以解决很多性能问题,我之后解决的很多问题也是通过这个方法来解决的。

后面的工作主要就是实现需求了,由于我们项目最终上线是跑在Suse Linux上的,那会开始我也陆续地学习了一些Linux的常用命令,到现在我还在使用Linux。基本上所有要上线的项目都是在Linux运行的。我发现自己很幸运的是,之前积累的一些东西在后面的工作中时常有使用到。在学习和积累的过程中,最好不要太功利,很多东西如果能多了解点,最好就多了解点,因为你不知道到底什么时候可能需要用到。

 

相关链接:

我工作这几年(一) -- 读“有多少人像这样这样苦苦挣扎”有感  
我工作这几年(三) -- 实现短信平台

 

你可能感兴趣的:(工作,经验)