一次奇妙的大项目维护经历(1)

来源:互联网 发布:切换输入法快捷键mac 编辑:程序博客网 时间:2024/05/31 18:53

    做为一个理工科毕业的学生,工作已有三年,因为没有文学功底,鲜为写工作日志。今天之所以写下这个,是因为觉得可以尝试记录一下自己在工作中的心里状态和变化。

    话不多说,开始讲我今天遇到的问题,背景是这样的,我所做的上一个项目结束了,被调到一个项目中做维护工作,这个项目不是一般的巨大,据听说是大概几百人的团队,连续开发近十年的项目,项目有好几个子系统,每个子系统都有online部分和offline部分,我接触的时候就快上线了。被临时调到这样的项目,只能说是一脸的迷茫,并且现在所在的maintenance组是被临时组的(大公司的人员流动还是很厉害的),项目组里面的不管是维护一段时间的还是领导层,没有一个人能清楚理解这里面的全部需求和要求,更别说我们这些才进来的。或许没接触过这么巨大的项目,一开始看时有点不适应,觉得项目的代码不再是心里有数的东西,这个项目的架构真是不错,但还是觉得项目的代码不再受控。

    一直在不太大的项目中编码,所以就闲不下来,想着进来后可以先试试去编写代码,然后在边看边学,所以就向领导A(外国人)要了个简单的活,但因为自己的英语不好,还被同事嘲笑了,当然这都是后话。A或许太相信我了,不是给我一个简单issue,而是让我写一个功能点,或许是自己的英语不好,也或许是自己的面子在作祟,我就应承下来了,不过还好,我还有两个同事一起,一个是TA level,另一个是SET level, 至于SET就不能指望了,我就去问了那个TA级别的领导,他简单给我介绍了一下,然后说这是一个功能,不好拆分,他一个人可以完成,同样做为程序员的我,心里默默的开始叫着劲,想着自己也要完成,接下来的日子开始对比已有的功能,试着去完成这个功能,果然后来还是没完成,这个没完成不能说是我能力问题,要去改一个东西,我没有一篇像样的文档或者API,在这我才发现一个项目的文档和注解对于后来的开发、测试、维护是多么重要。 这个功能最终我还是只完成了一部分,不过还好,能与TA的代码整合在一起,渐渐的有了自信。

    再然后接下来的日子就是修一下online部分的issue,因为是online的代码,自己慢慢的debug,问题都顺利解决,不过在这期间有一件事对我感触比较大,也是一个验证的issue,我按着寻常的套路去重现,但是自己的英语真的不太好,就在那试,不管怎么搞,都不能顺利操作,就这样搞了一天多,这个时候A就开始问我进度,我就表达了我现在的遇到的问题,他自己好像也不怎么会,就找来一个做的比较久的同事B,同事B是江苏人,但却不具有江南人的婉约,喜欢咋咋呼呼的,他在我本地环境三分钟重现,五分钟定位,然后迅速解决了这个困扰了我两天的Bug。这个事情让我心里挫败感瞬间增加,搞的我好像刚毕业的,瞬时不知道该怎么玩了。后来冷静下来想一下,这次问题主要出在自己的思维的循规蹈矩,按着一贯的思维去想问题,一旦有一个问题跨不过,就会按着这个思维一遍一遍尝试,还有一点就是自己的英语渐渐的影响到自己的工作,英语不好的导致没有抓住问题的keyword,就这那单一的重现。

    大概有半个月的时候,对项目稍微有一点了解,处理issue的速度也渐渐上来了,这时C领导(外国人)开始给我指派工作,这个人的英语语速明显比A的语速要快,每次给我安排问题的时候,我要一旦不说话,他就开始写,一开始还是处理online的代码,但随着时间的推移,C开始让我修改offline的代码,第一次接触offline的代码,觉得不知道该如何下手,问了周围的同事,没有一个人给我说该怎么办,听的最多的是不能debug,要加日志等等的只言片语,感觉在本地跑不起来的代码,看不到数据流向,还不能debug,就瞬间蒙圈了,不知道该做什么。(对于一个刚进项目的,新的技术最好是要有人带一下的,否则后进来的人感觉归属感可差了,这是我在这个点的最大感触)。这个时候,好在有一个可老实的TA同事D,D是技术的大神,他看东西比较认真,做事比较认真,这是我在他身上看到的优点,也是值得我学习的点。是他给讲我大概该怎么操作?对的,offline部分的代码现在对我来说还是晕晕乎乎,按C的说话,可以先断点online部分,然后根据经验和感觉去判断、猜会在那个地方出问题,然后加上日志看是不是这的问题,测试还要先提交代码到测试环境,然后在重启服务再测试,所以offline的代码修改是一定难度的。

    在修改offline代码的时候出现了一个小问题,给我吓的望各种大问题上靠,场景是这样的,有一个硬编码,我改了大概十几个文件,有online部分也有offline部分的,有java也有javascript的,但系统过于复杂,测试了大部分的修改点,有些点无法在本地测试,就先提交了,后来在页面的渲染过程中,一个页面始终不能正确加载,后端也报错了,我就感觉是我改出来的毛病,我就各种还原和测试原来的和现在的代码,由于系统比较大,部署启动浪费了好多时间,各种断点调试,但到最后还是没能解决,搞了一天觉得就要放弃了,打开IE的debug模式,无意间看到了syntaxerror,想到怎么会是语法错误,就打开了这个文件看了看,结果是修改的时候多了个 "&&" ,这个鬼东西是在测试的时候没有删除干净留下来的,并且还藏在上一行的结尾,我一直认为myEclipse可以检验这样的错,就没放到心上。后来总结发现主要还是有一下几点: 1.被大系统的功能给唬住了,出现问题总是望复杂的地方考虑。2.考虑问题的思路不对,应该先找问题的根源,然后在往上,而不是凭直觉去测试。3.开发的环境没有配好,基本的校验没有给出,自己又盲目的自信。4.自己的编码习惯没有养成,以后要注意良好编码习惯。

    到目前为止,在这个庞大的项目快一个月了,没有学到多少实质的东西,就是认识了一块吹牛逼的同事,见识了大项目的样子(框架不敢说,真的太复杂了);这几天感觉C指派的任务不太容易,有点精力不济,今天还遇到一个java.text.SimplyDateFormat的问题,下次详细介绍这个问题。



0 0
原创粉丝点击