中国领先的IT技术网站
|
|

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

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

作者:51CTO开发者社群来源:51CTO技术栈|2017-07-19 10:55

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


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

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

哈韩浪子 JavaEE 开发

半路接手项目被吐槽

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

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

吐槽选登

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

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

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

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

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

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

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

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

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

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

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

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

如何接手遗留项目

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

接手前的准备

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

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

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

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

接手后的第一件事情

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

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

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

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

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

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

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

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

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

进入维护状态

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

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

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

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

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

写在最后

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

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

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

【编辑推荐】

  1. SSM(十) 项目重构-互联网项目的Maven结构
  2. 谈谈23种设计模式在Android项目中的应用
  3. 适用于仪表盘项目的7个优秀JavaScript库
  4. 数据显示Java热度持续下落,日子屈指可数?
  5. Java人员正确使用IntelliJ IDEA的方式
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络服务

本书全面介绍了Windows Server 2003 R2中最常用的各种服务,包括域名服务、动态IP地址服务、Windows名称服务、活动目录服务、Web服务、FTP...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言