程序员必备技能——怎样快速接手一个项目
作为一个程序员,我们很少能从头到尾参与一个新项目的开发。如果你经常开发的是新项目,那你真是太幸福了。
更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护。
还有一种情况就是领导不知道从哪里弄过来一个系统和一堆文档,然后就直接就把系统交给你了维护了。
遇到以上几种情况我们怎样才能快速熟悉上手项目,应对生产问题呢?下面是我自己在工作中的一点总结,希望能对大家有所帮助。
资料要要全#
当你接手一个新项目(别人的项目)的时候,你要第一时间向把项目移交给你的人要到所有的资料。因为在这之后,这个同事可能就会离职了,到时再要什么文档就不太方便了。一般情况下,你需要拿到这些资料:
- 项目代码的地址(svn地址或者是git地址);
- 系统部署的Linux机器地址,登陆的用户名和密码(方便登陆上去看看机器的运行状况)
- 数据库地址/用户名/密码(不要以为所有项目中都会有用户名密码,有些项目会将用户名密码加密)
- 系统的登陆用户/密码(如果系统有页面,将可以登陆的用户要一个,不用自己再造用户了)
- 其他中间件地址(MQ、Redis等)
- 需求文档
- 接口文档
- 其他所有资料(上面的文档时必须的,如果除此之外还能拿到其他文档,都可以保存下来)
技术栈要看懂#
拿到文档资料后,我个人的经验是先要快速浏览下文档(业务文档,需求文档或者接口文档等),不需要看清文档的每个段落,但是我们要通过略读文档知道这个系统大概是干什么的,有哪些功能。这点对我们后续看代码帮助很大。
熟悉项目技术栈#
快速浏览完文档之后,我们就要开始看代码了。这个阶段,你需要能将代码在本地跑起来,知道这个项目运用了哪些技术栈(看看项目依赖了哪些外部包大致可以看出来这个系统用了哪些技术),每个技术栈的作用是什么。
熟悉系统的表设计#
系统的表设计是整个系统的核心,只有熟悉了表设计,才能对整个系统的功能有大致的了解。熟悉表设计也是看懂业务代码的前置条件。
熟悉上下游系统#
搞清楚了上下游系统,我们就知道了谁调用了我们系统,或是我们的系统调用了谁,查起问题来也能有的放矢。
知道去哪里查日志#
日志是查线上问题的关键,必须要知道怎么查日志,去哪里查日志。
知道怎么打包#
接了新需求或者改了Bug之后你肯定要发布吧,那你必须要知道这个怎么打包部署。
知道怎么部署#
同上
熟悉业务代码#
到了最关键的一步了,但是对于这步我觉得不同的系统我们可以区别对待下。有的系统我们接手过来是要在此基础上长期开发维护的,那这种系统就需要我们好好梳理下业务。
但是有的系统比较稳定了,也不会再加什么新功能,对于这种系统要不要深入研究就需要我们自己权衡了。因为时间成本上可能划不来。
下面是我熟悉业务的一般流程:
-
step1:在看业务代码之前,首先需要看完数据库的表设计,不然会不知所云。
-
step2:然后就是梳理各个接口了,一般是各个Controller(一般系统功能都是通过Controller暴露出去的),如果你能每个接口跟进去debug一遍,整个调用流程都梳理清楚,那么这个业务你就梳理清楚了(这步最好根据接口文档来梳理)
-
step3:当然,系统的功能不都是由Controller提供的,有的是通过定时任务来触发的,所以你要看看系统中配置了哪些定时任务,都实现哪些功能;
-
step4:还有的功能是通过消费MQ触发的,所以也要看看有没MQ相关的交互;
-
step5:类似其他的交互
关于熟悉业务代码这块可能没有太通用的方法,还是需要大家自己总结。
作者:程序员自由之路
出处:https://www.cnblogs.com/54chensongxia/p/12558048.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?