
1 kaedea 2015-12-23 17:23:27 +08:00 大改乱改 |
2 pyengwoei OP 技术主管走人了,现在他的一个项目丢给我,让我来维护,看了几周了 感觉还是没有一点头绪,也没有一个技术文档,只是把业务大概给我说了一下。。。。现在老大要求我 需要熟悉每一行每一个量。。。。。 |
4 kaedea 2015-12-23 17:28:15 +08:00 把项目按业务或者功能分成小块,试着重构某些小块,很快就变成你是最熟悉的人了。 |
5 wenmingvs 2015-12-23 17:31:16 +08:00 楼上的头像让人浮想联翩 |
7 kaedea 2015-12-23 18:01:32 +08:00 一年下来我把公司项目大大小小模块都拆过了,最近更是把整个架构都改了。 这么做有个坏处就是,每天都会有一堆人跑来问你“那个谁,这里要怎么处理才好……” |
8 naiyu 2015-12-23 18:30:34 +08:00 我是这样的,先熟悉业务,然后走一下流程,接着走到程序入口,然后一步步来看 |
9 h1029306 2015-12-23 18:44:21 +08:00 先编译,再运行看看,然后加 log ,看 log 日志,哪里不会加哪里 |
10 timothyye 2015-12-23 19:03:08 +08:00 via Android 一边看一边吐槽,然后就看懂了 |
12 Felldeadbird 2015-12-23 21:24:13 +08:00 via iPhone 有需求自然慢慢懂的了 |
13 sfree2005 2015-12-23 21:27:15 +08:00 1. 大概了解项目干什么的,知道最主要的几个 use case 是什么 2. 修改些小 bug 3. 增加些小功能 4. 修改大一些的 bug 5. 增加大功能 之后就基本上了解了~~ |
14 Valyrian 2015-12-23 21:31:40 +08:00 主要靠 git grep |
15 loading 2015-12-23 21:33:41 +08:00 via Android 遇到有 bug 的地方就重构哪个地方。 |
16 iMouseWu 2015-12-23 21:52:31 +08:00 一个人想一下子搞明白 10W 行代码。。。有点吃力呀。。。 可以先画流程图理清业务,debug 一些核心模块,接下来就是修 bug 熟悉流程 |
17 decaywood 2015-12-23 22:38:58 +08:00 1 、 UML 工具、思维导图先备好。 2 、把包理一遍,尽量从包名获取足够的信息。 3 、找到入口函数,分析里面的类,如果有超类,先从超类分析。 4 、慢慢构建 UML 图和思维导图,不断回顾,总结。 5 、试着运行代码,断点调试。 6 、继承核心类,尝试修改逻辑。 大概差不多了 |
18 Light3 2015-12-23 23:59:03 +08:00 不知道是什么语言。边改边吐槽这是真的。适当的记一下因为很多的时候看着看着就忘了。下次再找只是有模糊的印象。再其次没有文档自己慢慢把自己维护过的 总结下写一个。 |
19 KentY 2015-12-24 05:33:16 +08:00 如果最熟悉的人走了, 那就很难了. 如果人家还在, 可以通过做小的 bugfixing and CR 开始. |
20 hqs123 2015-12-24 08:06:53 +08:00 有哪个需求变动就改哪一块,其它简单看看就行,以不变应万变。 |
21 l1905 2015-12-24 08:07:54 +08:00 via Android 写单元测试 |
22 nellace 2015-12-24 08:29:27 +08:00 无他 唯改代码时候会去熟悉 |
23 ichanne 2015-12-24 09:07:11 +08:00 我最近正在接收一个 23w 行代码的 iOS 项目。。。赶紧收藏帖子 |
24 mko0okmko0 2015-12-24 09:30:00 +08:00 告诉老板功能太多吃不消. 问老板那些功能是想留下的. 然后直接做新的,旧的当参考. 我只能说,能接手别人没留下技术说明与注解的万行代码, 这种人我佩服,但绝对不想变这种人 |
25 shakoon 2015-12-24 09:36:23 +08:00 如果是标准的 mvc 模式写的代码,那分功能模块一层一层看。 如果是乱成一团的,那就先自己把它分段,按照你熟悉的方式做“段落整理”,然后再去看具体的代码。 |
26 moe3000 2015-12-24 09:38:31 +08:00 业务 走流程 边走边看代码 代码再联系数据表 |
27 spacewander 2015-12-24 09:43:58 +08:00 via Android 改 bug 的时候渐渐就熟悉了 |
28 zhuangzhuang1988 2015-12-24 09:50:21 +08:00 使用最强 IDE, visual studio 或者 jetbrains 家族. 然后下个断点, 调试 |
29 thinkmore 2015-12-24 09:54:20 +08:00 一个模块一个模块来,然后自己整理画类图 |
30 binjoo 2015-12-24 09:57:28 +08:00 直接丢给我一个项目让我熟悉是不可能的。。 除非丢给我 BUG ,让我去改,才能熟悉项目。 |
31 cnbiglee 2015-12-24 10:03:36 +08:00 我认为只需要熟悉业务流程及代码的架构。然后需要修改的时候就可以大概知道上哪改就行了。不可能去熟悉每行代码的,没必要。 |
32 songco 2015-12-24 11:36:00 +08:00 1. 按 usecase 的流程读代码, 花时序图 /流程图之类的(一定要有记录) 2. 改 bug 其实 2 效率比较高. 没有 bug 你可以考虑模拟在原有的业务上增加点功能. |
33 wizardoz 2015-12-24 12:00:12 +08:00 熟悉每一行……这种要求也是醉了。 这种略大的程序,还是搞清楚整体结构就行了,然后哪里出问题看哪里,或者需要调整哪里看哪里。毕竟生命是有限的。 我不是说 10 万行代码看不完,只是过多的精力投入到细节上完全没必要,毕竟细节太多了。 |
34 caixiexin 2015-12-24 12:06:33 +08:00 via Android 帮忙修一个月 bug 。。。 |
35 xiaoshenke 2015-12-24 13:04:32 +08:00 从项目结构猜,从类名猜用途,运行打 log 。证实猜想是否正确。 找关键结点 比如入口函数 跳转函数等。 |
36 sumuu 2015-12-24 13:32:37 +08:00 分享下我熟悉一个上 10W 行(伪)代码的当时做法. 1. 熟悉业务,分析业务,把关键业务入口找出来,然后跟踪代码执行流程. 2. 整理外部依赖,把数据库连接,缓存系统,第三方请求等等记录下来. 3. 非到必要时候,别瞎改代码,否则到处冒烟,不骗你. |
  37 huijiewei 2015-12-24 16:59:54 +08:00 1 、整理全局流程图,标注好注意点,打印出来 2 、整理模块划分,打印出来 3 、根据模块整理单独接口,打印出来 4 、整理公共服务模块,把公共服务模块都独立出来 做完这些对系统也了解的差不多了。 |
38 oska874 2015-12-24 17:09:37 +08:00 多加班。 |
39 sun2920989 2015-12-24 17:11:09 +08:00 边看边在心里骂,顺便做好记录和结构 词穷的时候基本上就理解了 |
40 ragnaroks 2015-12-24 19:34:03 +08:00 重构 |
49 dalang 2015-12-25 12:04:03 +08:00 从 api 层入手,了解重要的几个 api 的 workflow |
50 pyengwoei OP @mko0okmko0 为了 RMB |
51 kaka8wp 2015-12-25 14:29:59 +08:00 先找找资料,改改小的模块,看看流程 |
52 pyengwoei OP 我准备这样做了,把功能都拆分出来,做成一个一个的小程序,一个程序实现一个功能,不知道这样怎么样 |
53 cxbig 2015-12-25 16:20:20 +08:00 按功能拆分成小块,哪块要改就先搞清楚那一块。 能落实到文档的就尽快落实,这样后面的人也容易上手。 项目上了规模都不是轻而易举就能全通的。 |
54 WendellSun 2015-12-27 01:59:11 +08:00 改 bug 。 |