作为一个新人,大家是如何快速学习掌握一个老项目的

2023-09-14 08:08:36 +08:00
 bigxianyu

文档不全,代码看的懂,但是链路长,逻辑复杂,猜不出意图,这种大家有什么好的办法可以快速学习掌握吗

4646 次点击
所在节点    程序员
41 条回复
PingAn66
2023-09-14 08:18:14 +08:00
不懂的多问问同事
bigxianyu
2023-09-14 08:27:30 +08:00
@PingAn66 嗯,有时候也会问,但是也会感觉多问不太好
shortxxx
2023-09-14 08:39:16 +08:00
从业务逻辑出发 找产品聊 功能逻辑看测试
linshuizhaoying
2023-09-14 08:42:43 +08:00
思维导图+架构梳理
x86
2023-09-14 08:44:18 +08:00
多问同事 & 配合 GPT 补充文档
或者
https://github.com/eosphoros-ai/DB-GPT
LowBi
2023-09-14 08:46:13 +08:00
debug 或者问 gpt
zcf0508
2023-09-14 08:48:24 +08:00
通读代码
darkengine
2023-09-14 08:51:29 +08:00
1 ,先在本地跑起来
2 ,在本地跑起来的代码上加日志,打断点折腾

没有捷径
litchinn
2023-09-14 09:15:15 +08:00
作为一个新人,想迅速上手一个大型的老项目,是需要点运气的
1. 有一个优秀的领导(组长)这种角色,给你分派任务时从一些工作量不高但是能切入核心的工作开始,慢慢慢慢一个模块一个模块开始认识整个系统
2. 认真对待每次需求评审会,此时大家也是新接触功能,如果你是新人那么在评审会上你应该有很多名词不懂,记下来会后问一问,基本能搞清楚流程了
3. 看代码这东西真的很看运气,因为有时候项目的代码真的是屎山,写的人再看都不一定知道咋回事了。
4. 多去测试环境(或者其他非生产环境)的应用上点一点,看一看各个功能的用途,并尝试从接口找到对应代码(非 web 项目同理)
polo3584
2023-09-14 09:17:32 +08:00
先让自己本地跑起来,然后先摸清各个模块对应功能,具体到里面的细节得到改到对应的模块才会去细看。
babyoung
2023-09-14 09:18:54 +08:00
应该是作为一个老人,如何快速上手新项目?
wqhui
2023-09-14 09:24:19 +08:00
看函数名加注释能知道大概在做什么,具体细节等要改的时候再认真看吧,看了也记不住那么多,神仙命名无解
my101du
2023-09-14 09:25:58 +08:00
本地 clone 一份,先跑起来。

然后添加一个 branch ,必要的地方加注释。

然后查看数据表的 Diagram

然后新建一个 markdown 文件和一个思维导图,分别记录重要的文件、代码和结构。
hankai17
2023-09-14 09:26:32 +08:00
8L + 1
debug + 日志
aptx4689
2023-09-14 09:26:36 +08:00
接新 feature 加功能
vsitebon
2023-09-14 09:30:29 +08:00
你一个人接手的代码前提下:
1. 一般如果不是非常屎山的代码,看函数名能搞清楚这个函数是做什么的,最怕就是接手:gmCount() => 购买记录
2. 如果碰到上述的这种屎山代码,加断点然后看操作后会输入什么输出什么;
3. 如果加断点的时候碰到中间的数据出现,khdd 这种的话,估计你还得去看具体的值是什么,就怕出现一个莫名奇妙的 1 或者 ‘1’;
4. 如果以上的这些情况你都碰到了,那恭喜你,你将进入地狱级难度;接下来你如果没办法那么快实现功能,一定一定要提前跟经理说
xiyou007
2023-09-14 09:33:20 +08:00
我一般是
1. 先了解项目背景 主要做什么用的
2. 主要功能操作步骤
3. 主要功能的接口,以及背后的数据表,表主要的字段 以及表关联关系,画图记笔记
4. 其他的话 就是接需求 边写边看 ;切记 接新的需求后 先出方案 跟老同志 请教一下; 写完 让老同志 review 一下代码
shunwei
2023-09-14 09:37:34 +08:00
你做那一块, 就把这一块功能了解清楚, 慢慢的, 整个项目你就都清楚了
chitanda
2023-09-14 09:37:54 +08:00
自己写个文本类的文档,看到哪写到哪,看一遍写一遍之后,丢给 ChatGPT 让它帮你画流程图
yufeng0681
2023-09-14 10:14:23 +08:00
@xiyou007 思路清晰, 我补充一点,不要期望通过看代码了解项目,只有分派到你具体模块,具体 bug 修复,你才需要深入看某一部分的代码,最好还是 debug 跟踪调用的接口方式快速走读代码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/973590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX