半路接手项目有多难?教你做个接盘侠高手!

原创
开发 架构
作为一个程序员,喜欢浏览知乎这样的知识分享平台来拓宽视野。发现经常有人在提这样类似的问题,例如如何快速接手熟悉一个项目(从代码角度)?新手如何快速上手项目?

[[197325]]

【51CTO.com原创稿件】被无数烂尾项目折磨的哈韩浪子,一直从事 JavaEE 开发,踩过的坑无数,承接别人的项目也有几个。

新人或者刚入职的程序猿,都会面临一个问题,如何快速接手熟悉项目?本期挨踢故事汇哈韩浪子教你做个快乐的接盘侠高手。

 

[[197326]]

哈韩浪子 JavaEE 开发

半路接手项目被吐槽

作为一个程序员,喜欢浏览知乎这样的知识分享平台来拓宽视野。发现经常有人在提这样类似的问题,例如如何快速接手熟悉一个项目(从代码角度)?新手如何快速上手项目?

透过题目,哈韩浪子能感受到提问者那渴望求知的眼神,他看了问题底下的评论,大家都没有给出方法,而是变成了吐槽。

吐槽选登

A:要么忍要么滚+10086,心理一万个草泥马还得面带微笑。

B:刚毕业就进了这样一个项目,现在盘算着吃饱经验滚球了。

C:太多了。。。专业擦屁股户 ,再熬到年底,准备跑路了。爱谁擦谁擦吧。

D:我以前也可怂,领导给我安排工作,我好多次都默默接受了。昨天真的是爆发了,凭什么我好说话所以次次都是欺负我?

真的是兔子急了还咬人的感觉,冲到领导办公室辩论,平时领导觉得我不怎么争论,昨天真是辩论赛水平,有理有据。

领导:考虑到你的能力,我们特意给你了一个标杆项目让你去做维护,你一点都不知道感恩。

程序猿:项目交接文档缺失,项目业务代码混乱,项目一直没有确定边界,导致现在需求膨胀。这个项目也是标杆?

领导:这些都不是问题,你看你要是把这些问题都处理好,不就正好体现出你的能力了啊,你看这是一个多好的锻炼机会啊。

程序猿:你瞎说,据我所知你在例会上可不是这么说的(一般都是项目组领导参加,程序员没资格参加)。你说的是处理好这个项目是应该的,处理不好就是能力差。

领导正色道:我就是给你一坨屎,你也要开心的吃下去,不然你可以走啊,会写代码的满大街都是。

看到大家这样的吐槽,哈韩浪子感到很难过。因为他也曾经经历过这样一段时期,那时候他还是个愣头青,领导说啥就是啥。

但是后来发现柿子还得捏软的,况且就算他退让了领导也不喜欢,一直都是干的多拿的少,就算最后离职还把他的年终奖坑了。

如何接手遗留项目

人生就是在经历中成长,所以哈韩浪子要分享一下接手项目的经验,做一个快乐的接盘侠。那么我们应该如何接手遗留项目呢?

接手前的准备

接手前,先要了解一下这个项目目前的状况,可以咨询主管这个项目的领导,当然如果这个领导忽悠你,跟你说这个项目是标杆,或者说这个项目怎么怎么的好,那么你就要多思考一下是不是一个坑了。

这个时候你就需要领导提供项目的 bug 修改单或者是需求变更单,这样大致能客观的展现出项目存在的问题。

如果 bug 单里修改的东西很多,或者需求变更频繁,那么就不建议再接手这个项目了,不然最后难受的是自己,你把烂尾项目处理好了,是应该的,处理不好就是你能力差,其他同事也是站着说话不腰疼的去挤兑你。

如果项目的 bug 单和需求变更单不是很频繁,这个项目还是可以接手的。

接手后的第一件事情

立即着手使用项目,把项目的流程先跑通,然后了解项目的设计目的,因为这些内容就好比是一个灯塔,能在大方向上给你指明道路,并帮你将代码片段串联起来,把一个功能点的代码从数据层,service 层,到 controller 层理出来。

做到能快速定位相关位置,还有每一层之间与项目相关的配置文件的熟悉,例如有定时任务配置文件,加解密配置文件等,从而形成一个整体。

我们要记住越是复杂的项目,其目的和设计占的比重越是重要。

把项目拆解,编写自己的项目文档

项目难,往往是因为不了解,看着一大堆东西,心理上首先就有压力。一定要顶着压力往前走,把项目分模块的去了解,通过代码去理解业务。

一个系统一定有使用频繁的模块和非使用非频繁模块,这个可以通过给客户的使用手册来了解。

如果项目缺失具体的设计说明书,那么就需要看相关功能代码是怎么写的,通过了解代码和使用项目来了解业务流程。

同时要学会编写文档,主要是让自己好理解这个项目。因为你接手了这个项目,就意味着项目再出什么情况都由你自己承担。

哪怕出现的问题是由于项目设计,或者开发期产生的,也得由你承担。因为编写文字不像说话,耗费的时间会多一些,在打字的过程中,我们会花费心思去组织语言和思考,这会让我们发现更多项目上的问题。

进入维护状态

当我们了解了项目的业务和相关的代码,就算正式接手了项目,可以开始处理项目中的实际问题。

同时我们要养成每天下班把生产日志拿来看一下,看看项目中是否存在潜在的问题,比如内存开销过大,死锁等问题。

看日志主要看 error 日志,确定所呈现的 bug 是紧急还是非紧急的。紧急的,立即就要着手去修复。同时要写邮件抄送给相关领导。(不然你把问题处理好了,领导也认为你没有工作量)

查看服务器的 CPU,内存等开销。这个不必天天进行。

写一些 SQL 脚本,来检测数据库表里是否出现了数据重复,垃圾数据。主要防范出现 SQL 注入等问题。

写在最后

唯有经历过以上所有步骤,我们才能成为一个专业的项目接盘侠,然后开心快乐的成长,对于之前负责项目里给你留的坑也好,bug 也罢,我们当然选择原谅他!

如果你也愿意分享你的故事,请加 51CTO 开发者 QQ 交流群 312724475 联系群主小官,期待你精彩的故事!

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2017-06-28 09:55:02

2018-12-18 11:19:39

锤子罗永浩手机

2017-05-18 12:45:35

数据分析数据理解数据

2022-09-01 21:02:31

手机卫星5G

2009-11-16 13:27:20

PHP上传多张图片

2009-10-28 16:10:16

VB.NET程序

2020-08-12 07:41:39

SQL 优化语句

2021-03-09 05:49:32

通信女性从业者通信行业

2024-03-18 08:03:32

业务开发搜索

2015-07-29 16:33:12

IOS半透明引导

2021-04-19 11:16:17

小程序微信开发

2014-11-06 09:36:50

OVSvlan

2018-01-26 09:37:04

DBAMySQL架构

2018-01-16 09:50:21

CIO 智造时代

2015-09-29 11:02:44

微信公众号运营

2011-05-25 09:49:35

项目

2009-11-13 09:30:28

2009-11-11 15:24:35

ADO创建数据库

2022-03-04 18:31:08

云原生作业帮GPU

2020-09-29 16:44:58

Python编程语言工具
点赞
收藏

51CTO技术栈公众号