作为一个程序员,我们很少能从头到尾参与一个新项目的开发。如果你经常开发的是新项目,那你真是太幸福了。

更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护。

还有一种情况就是领导不知道从哪里弄过来一个系统和一堆文档,然后就直接就把系统交给你了维护了。

遇到以上几种情况我们怎样才能快速熟悉上手项目,应对生产问题呢?下面是我自己在工作中的一点总结,希望能对大家有所帮助。

资料要要全

当你接手一个新项目(别人的项目)的时候,你要第一时间向把项目移交给你的人要到所有的资料。因为在这之后,这个同事可能就会离职了,到时再要什么文档就不太方便了。一般情况下,你需要拿到这些资料:

项目代码的地址(svn地址或者是git地址);

系统部署的Linux机器地址,登陆的用户名和密码(方便登陆上去看看机器的运行状况)

数据库地址/用户名/密码(不要以为所有项目中都会有用户名密码,有些项目会将用户名密码加密)

系统的登陆用户/密码(如果系统有页面,将可以登陆的用户要一个,不用自己再造用户了)

其他中间件地址(MQ、Redis等)

需求文档

接口文档

其他所有资料(上面的文档时必须的,如果除此之外还能拿到其他文档,都可以保存下来)

技术栈要看懂

拿到文档资料后,我个人的经验是先要快速浏览下文档,不需要看清文档的每个段落,但是我们要通过略读文档知道这个系统大概是干什么的,有哪些功能。这点对我们后续看代码帮助很大。

熟悉项目技术栈

快速浏览完文档之后,我们就要开始看代码了。这个阶段,你需要能将代码在本地跑起来,知道这个项目运用了哪些技术栈,每个技术栈的作用是什么。

熟悉上下游系统

搞清楚了上下游系统,我们就知道了谁调用了我们系统,或是我们的系统调用了谁,查起问题来也能有的放矢。

知道去哪里查日志

日志是查线上问题的关键,必须要知道怎么查日志,去哪里查日志。

知道怎么打包

接了新需求或者改了Bug之后你肯定要发布吧,那你必须要知道这个怎么打包部署。

知道怎么部署

同上

熟悉业务代码

到了最关键的一步了,但是对于这步我觉得不同的系统我们可以区别对待下。有的系统我们接手过来是要在此基础上长期开发维护的,那这种系统就需要我们好好梳理下业务。

但是有的系统比较稳定了,也不会再加什么新功能,对于这种系统要不要深入研究就需要我们自己权衡了。因为时间成本上可能划不来。

下面是我熟悉业务的一般流程:

step1:在看业务代码之前,首先需要看完数据库的表设计,不然会不知所云。

step2:然后就是梳理各个接口了,一般是各个Controller(一般系统功能都是通过Controller暴露出去的),如果你能每个接口跟进去debug一遍,整个调用流程都梳理清楚,那么这个业务你就梳理清楚了(这步最好根据接口文档来梳理)

step3:当然,系统的功能不都是由Controller提供的,有的是通过定时任务来触发的,所以你要看看系统中配置了哪些定时任务,都实现哪些功能;

step4:还有的功能是通过消费MQ触发的,所以也要看看有没MQ相关的交互;

step5:类似其他的交互

关于熟悉业务代码这块可能没有太通用的方法,还是需要大家自己总结。

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[程序员必备技能——怎样快速接手一个项目]http://www.zyiz.net/tech/detail-121111.html

Java如何接手别人项目_程序员必备技能——怎样快速接手一个项目相关推荐

  1. java相关的数学知识_程序员必备的一些数学基础知识

    作为一个标准的程序员,应该有一些基本的数学素养,尤其现在很多人在学习人工智能相关知识,想抓住一波人工智能的机会.很多程序员可能连这样一些基础的数学问题都回答不上来. 矩阵A(m,n)与矩阵B(n,k) ...

  2. 丁威: 优秀程序员必备技能之如何高效阅读源码(二更)

    @[toc](丁威: 优秀程序员必备技能之如何高效阅读源码(二更)) 消息中间件 我能熟练使用这个框架/软件/技术就行了, 为什么要看源码?" "平时不用看源码, 看源码太费时间, ...

  3. (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码

    (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 文章目录 (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 一.序言 二.配置环境 1.下载pyautogui包 三.鼠标控制 ...

  4. 程序员必备技能之Markdown

    Markdown介绍 Markdown是一种纯文本格式的标记语言,比HTML更简单,通过一些简单的语法标记,就可以让文本简洁好看. Markdown已经是程序员一项必备技能了,代码块.流程图.序列图. ...

  5. javaweb不同用户需要几张表_程序员必备2020版:JavaWeb快速进阶全套教程

    Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构成.它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行. JavaWeb项目简单来说就是一个应 ...

  6. BAT程序员必备技能调研,你中了几招?

    程序员想进入腾讯.华为,必备的技能都有哪些? 至少你需要有分析问题的能力 .设计解决方案的能力 .编码实施的能力 .排除故障的能力.以及扎实的数学基础. 不过,程序员能力强弱,最后拼的是数学! 为什么 ...

  7. 造轮子是什么意思_程序员发文质疑阿里天启为kpi项目,重复造轮子,阿里回应:诽谤...

    前言: 曹丕在<典论·论文>中说到,"文人相轻,自古而然".中国自古就有文人相轻的传统,文人相轻真没有什么要紧的,就像是小夫妻似的斗斗气拌拌嘴,然后还可以理直气壮地拿稿 ...

  8. java校验参数防止攻击_程序员写接口参数校验,总是太多if else?一招让你避免体力活...

    对于写Java的程序员来说,不管是写单纯的接口.还是页面后台一把梭,后端参数校验的功能都是整个代码不可或缺的一部分,它可以从系统入口过滤掉一些不合法的数据,以确保我们的系统稳定. 还记得我刚入行Jav ...

  9. java是高级还是低级语言_程序员:高级与低级编程语言,您应该学习哪些内容?...

    当你试图找出要学习的编程语言时,你可能会遇到高级和低级的术语.人们一直在谈论高级和低级编程语言. 高级和低级编程语言 在整篇文章中,我将讨论"高级"和"低级"语 ...

最新文章

  1. java语言的多态性及特点_Java中的方法的多态性有两种形式:( )和( )。_学小易找答案...
  2. Paxos与zookeeper
  3. 数学建模c语言仿真软件,数学建模十五大经典数学模型
  4. ACL 2020 《Cross-Modality Relevance for Reasoning on Language and Vision》论文笔记
  5. 电压3.3V的ESD静电保护器件型号大全
  6. 快速入门深度学习,其实并不难!
  7. Unicode和Ascii转byte,Unicode占二个byte,Ascii占一个byte
  8. 前端学习(505):垂直居中的第一种方式的优点和缺点
  9. USACO-Section2.2 Preface Numbering
  10. 【OpenGL】顶点变换常用函数总结
  11. .Net中的事件处理模型
  12. python中capitalize()函数的用法
  13. python-Python教程
  14. 「镁客早报」小米“10亿赌约”输给格力;SpaceX本周将首次试飞新飞船...
  15. eclipse使用教程(图文)
  16. CAN应用层常用协议
  17. python批量生成姓名_Python 批量生成中文姓名(百家姓)
  18. 施密特将辞任Alphabet执行董事长 转任技术顾问 | 聚焦
  19. succi - 接小球游戏
  20. 如何在以太坊网络上发布自己的代币

热门文章

  1. NTC采样环境温度的计算方法
  2. 数据分析思维(一)|信度与效度思维
  3. matlab 绘制误差阴影图
  4. Hook神器—Frida安装
  5. 三星运行linux,三星Linux on DeX项目让你随时随地享受Linux环境,附介绍
  6. https://mp.weixin.qq.com/s/j7YdtmyuzBFRK1BViDtp2w
  7. 人之间的尊重是相互的_人之间的尊重是相互的感人优美句子
  8. URP下SRPBatcher,GPUInstancing,动态合批,静态合批
  9. 【MIMIC-IV/pytorch实战】基于word2vec、transformer进行英文影像报告文本分类
  10. 2016倒下的互联网公司(及其原因-详细)