【51CTO.com原创稿件】被无数烂尾项目折磨的哈韩浪子,一直从事 JavaEE 开发,踩过的坑无数,承接别人的项目也有几个。
新人或者刚入职的程序猿,都会面临一个问题,如何快速接手熟悉项目?本期挨踢故事汇哈韩浪子教你做个快乐的接盘侠高手。
哈韩浪子 JavaEE 开发
半路接手项目被吐槽
作为一个程序员,喜欢浏览知乎这样的知识分享平台来拓宽视野。发现经常有人在提这样类似的问题,例如如何快速接手熟悉一个项目(从代码角度)?新手如何快速上手项目?
透过题目,哈韩浪子能感受到提问者那渴望求知的眼神,他看了问题底下的评论,大家都没有给出方法,而是变成了吐槽。
吐槽选登
A:要么忍要么滚+10086,心理一万个草泥马还得面带微笑。
B:刚毕业就进了这样一个项目,现在盘算着吃饱经验滚球了。
C:太多了。。。专业擦屁股户 ,再熬到年底,准备跑路了。爱谁擦谁擦吧。
D:我以前也可怂,领导给我安排工作,我好多次都默默接受了。昨天真的是爆发了,凭什么我好说话所以次次都是欺负我?
真的是兔子急了还咬人的感觉,冲到领导办公室辩论,平时领导觉得我不怎么争论,昨天真是辩论赛水平,有理有据。
领导:考虑到你的能力,我们特意给你了一个标杆项目让你去做维护,你一点都不知道感恩。
程序猿:项目交接文档缺失,项目业务代码混乱,项目一直没有确定边界,导致现在需求膨胀。这个项目也是标杆?
领导:这些都不是问题,你看你要是把这些问题都处理好,不就正好体现出你的能力了啊,你看这是一个多好的锻炼机会啊。
程序猿:你瞎说,据我所知你在例会上可不是这么说的(一般都是项目组领导参加,程序员没资格参加)。你说的是处理好这个项目是应该的,处理不好就是能力差。
领导正色道:我就是给你一坨屎,你也要开心的吃下去,不然你可以走啊,会写代码的满大街都是。
看到大家这样的吐槽,哈韩浪子感到很难过。因为他也曾经经历过这样一段时期,那时候他还是个愣头青,领导说啥就是啥。
但是后来发现柿子还得捏软的,况且就算他退让了领导也不喜欢,一直都是干的多拿的少,就算最后离职还把他的年终奖坑了。
如何接手遗留项目
人生就是在经历中成长,所以哈韩浪子要分享一下接手项目的经验,做一个快乐的接盘侠。那么我们应该如何接手遗留项目呢?
接手前的准备
接手前,先要了解一下这个项目目前的状况,可以咨询主管这个项目的领导,当然如果这个领导忽悠你,跟你说这个项目是标杆,或者说这个项目怎么怎么的好,那么你就要多思考一下是不是一个坑了。
这个时候你就需要领导提供项目的 bug 修改单或者是需求变更单,这样大致能客观的展现出项目存在的问题。
如果 bug 单里修改的东西很多,或者需求变更频繁,那么就不建议再接手这个项目了,不然最后难受的是自己,你把烂尾项目处理好了,是应该的,处理不好就是你能力差,其他同事也是站着说话不腰疼的去挤兑你。
如果项目的 bug 单和需求变更单不是很频繁,这个项目还是可以接手的。
接手后的第一件事情
立即着手使用项目,把项目的流程先跑通,然后了解项目的设计目的,因为这些内容就好比是一个灯塔,能在大方向上给你指明道路,并帮你将代码片段串联起来,把一个功能点的代码从数据层,service 层,到 controller 层理出来。
做到能快速定位相关位置,还有每一层之间与项目相关的配置文件的熟悉,例如有定时任务配置文件,加解密配置文件等,从而形成一个整体。
我们要记住越是复杂的项目,其目的和设计占的比重越是重要。
把项目拆解,编写自己的项目文档
项目难,往往是因为不了解,看着一大堆东西,心理上首先就有压力。一定要顶着压力往前走,把项目分模块的去了解,通过代码去理解业务。
一个系统一定有使用频繁的模块和非使用非频繁模块,这个可以通过给客户的使用手册来了解。
如果项目缺失具体的设计说明书,那么就需要看相关功能代码是怎么写的,通过了解代码和使用项目来了解业务流程。
同时要学会编写文档,主要是让自己好理解这个项目。因为你接手了这个项目,就意味着项目再出什么情况都由你自己承担。
哪怕出现的问题是由于项目设计,或者开发期产生的,也得由你承担。因为编写文字不像说话,耗费的时间会多一些,在打字的过程中,我们会花费心思去组织语言和思考,这会让我们发现更多项目上的问题。
进入维护状态
当我们了解了项目的业务和相关的代码,就算正式接手了项目,可以开始处理项目中的实际问题。
同时我们要养成每天下班把生产日志拿来看一下,看看项目中是否存在潜在的问题,比如内存开销过大,死锁等问题。
看日志主要看 error 日志,确定所呈现的 bug 是紧急还是非紧急的。紧急的,立即就要着手去修复。同时要写邮件抄送给相关领导。(不然你把问题处理好了,领导也认为你没有工作量)
查看服务器的 CPU,内存等开销。这个不必天天进行。
写一些 SQL 脚本,来检测数据库表里是否出现了数据重复,垃圾数据。主要防范出现 SQL 注入等问题。
写在最后
唯有经历过以上所有步骤,我们才能成为一个专业的项目接盘侠,然后开心快乐的成长,对于之前负责项目里给你留的坑也好,bug 也罢,我们当然选择原谅他!
作者:51CTO开发者社群
来源:51CTO