
某国企工作,接手一个 2016 年的项目,当时是由一个外包公司人员和前一个同事开发(目前都已离职),现在要二次开发。
目前情况是,有源代码,但是没有项目文档,环境也不清楚怎么样,网络和数据库啥的,项目跑不起来,也不知道问谁。现在想啃这个源代码,实在是啃不动,很多封装的方法,自定义注解之类的,看不懂有点痛苦,有啥好的办法吗?
1 auin May 6, 2020 2016 年的项目有可能是 2006 年的架构,这个情况不要死磕,向上级反应寻求外援,最好找到之前的开发人员 |
2 lhx2008 May 6, 2020 via Android 先想办法跑起来 |
3 Zhangxiaopa May 6, 2020 先想办法跑起来 |
4 Nathanzheng May 6, 2020 先想办法跑路 |
5 shidapi May 6, 2020 先想跑路 |
6 mmnsghgn May 6, 2020 先想办法跑 |
7 ice2neet May 6, 2020 先想办法跑路起来 |
8 yalin May 6, 2020 能问则问,能搜则搜( Google or IDE 全局搜索),尽可能的了解这个技术架构,能本地调试最好 |
9 uxstone May 6, 2020 跑路 |
10 clayyj1210 May 6, 2020 先跑 |
11 berumotto May 6, 2020 想办法跑起来,先看用了哪些框架,如果有框架好办,去找框架的文档,没框架或自写的就比较麻烦 |
12 huntcool001 May 6, 2020 离职吧... 这种入职面试的时候就要问清楚 |
13 Leigg May 6, 2020 via Android 没文档没交接基本不用想了 |
14 xuanbg May 6, 2020 外包出去 |
15 LICOEVE May 6, 2020 代码量不多的话 啃源码 |
16 mjy123456 May 6, 2020 先跑 |
17 yukiloh May 6, 2020 via Android 哈哈哈哈跑起来………… |
18 ClericPy May 6, 2020 跑的起来你还能单步调试走一波 跑不起来是怎么交接的... 话说你这问题的难度, 就像一道面试题一样开放 |
19 paradoxs May 6, 2020 报错显示什么,截个图丢上来看看。 |
20 murmur May 6, 2020 资金到位不,如果生产还能跑的话可以把 tomcat 直接拷过来,如果生产挂了的话就呵呵了 |
21 nianyu May 6, 2020 给你时间一点一点看还行 慢慢整理逻辑 不给时间或者给的时间不够基本无解, 你根本不知道以前的业务逻辑 代码逻辑是什么样的. 有许多临时 hack 一下的代码,你不知道业务根本理解不了为什么这么写 |
22 312ybj May 6, 2020 我目前在改同事离职的 bug,写得跟狗屎一样,半点逻辑没有,他是写不下去才跑路的。 我在他跑路前问清楚了配置项的意义(半点注释没有,全是重复代码),现在还在改。 你先把项目运行起来,然后走根据功能进行搜索, 前台访问的接口肯定在后台有对应 ,ctrl + \ 可以根据 URL 快速定位代码位置( idea 中),F11 可以在 idea 中加入 Bookmark,shift + F11 可以查看所有书签, 反正就是慢慢啃 |
23 Mrun May 6, 2020 跑不起来看懂个啥? |
24 leahoop May 6, 2020 跑 |
25 rebel28 May 6, 2020 一步一步跑 然后重构 |
26 iamnotarobot0 May 6, 2020 先找文档 再找人,讲解一下大概的架构 实在不行,再看代码,上手调试,写单测,重构 |
27 nicebird May 6, 2020 两个人也没多大代码量,看个几天就差不多了吧 |
28 annielong May 6, 2020 目测可能是 java |
29 wizardoz May 6, 2020 先把业务搞清楚,业务了然的情况下去看源码应该不难。 如果想通过看源码来了解业务,本人不敢想,厉害一点的可能可以。 |
30 otakustay May 6, 2020 别看,去修几个 BUG |
31 pushback May 6, 2020 跑(路)起来 |
32 pushback May 6, 2020 憋说了,今晚上就长跑十公里 |
33 hakono May 6, 2020 via Android 方向错了,看代码之前你首先得要把整个业务流程搞懂了再去看,一切代码都是为业务服务的,这样才能搞懂项目里那匪夷所思的代码是干嘛的。 |
34 nightwitch May 6, 2020 跑不起来还说什么。 至少要能确认手上的源代码和线上的是符合的吧,万一手上的代码落后线上的几十个版本你怎么搞 |
35 gaigechunfeng May 6, 2020 祖传代码确实比较痛苦 |
36 lithbitren May 6, 2020 碰到过没有文档的祖传代码,十几级的调用栈都可以接受,看懂了,勉强全部重构了。 后来碰到了几十级甚至更多的调用栈,直接放弃阅读了,独立于黑箱打补丁造轮子拉倒了。 |
37 polo3584 May 6, 2020 跑得起来修修补补还行,跑不起来就放弃了 |
38 ob May 6, 2020 via Android 楼上的要笑死人,哈哈,先找到 main |
39 darksword21 PRO 先花一周时间跑起来,然后需要写什么看看有没有类似的写过的 ctrl v 过来改。。 没别的招感觉。2016 年,那架构确实可能是 2006 或者 2001 的 |
40 itechify PRO 打码贴一下图?给各位老哥看下目录,猜测是什么后端什么前端才有的说 |
41 Acoolda May 6, 2020 via Android 先跑起来,再慢慢改 |
42 linvon May 6, 2020 楼里的评论越来越.... |
43 IvanLi127 May 6, 2020 via Android 找一个同事,一起吐槽 |
44 fixend May 6, 2020 via Android 我接过一个维护了十多年的项目,无数人接手过,而且都是毕业生接手的,代码极恶劣,无文档,无注释,无 svn 提交记录,各种不知为何注释起来的代码,重复类似功能的函数,大量永远不会调用的代码,变量一堆 a,b,c 这样命名。 修了两个严重 bug 后,我看不都不看,直接整个重新写了,还好项目不大,二十几万行,重写后十万行不到。 |
45 marcomarco span class="ago" title="2020-05-07 07:37:58 +08:00">May 7, 2020 via iPhone 要先明确一点,你是来上班挣钱的,你懂吧? |
46 zhw2590582 May 7, 2020 这就非常累了,跑吧 |
47 oops1900 May 7, 2020 先删库后跑路 |
48 hankli May 7, 2020 跑路吧 |
49 AkiseAru May 7, 2020 先跑路,这样没人交接很累啊 |
50 hahaayaoyaoyao May 7, 2020 要外包吗? 我帮你重写一个 |
51 kiracyan May 7, 2020 先跑起来 ,再了解业务。不过让你接手的项目居然跑不起来,跑路的优先级比较高 |
52 Felldeadbird May 7, 2020 问人是肯定要的,除了问题,自己也要先在本地调试运行成功,根据 IDE 或者编译器 提示的错误信息 去修复好错误。项目跑起来了,就好做二开了。 |
53 weipt May 7, 2020 如果以前的资料不全,那就靠你的经验了。 如果你的经验不足,那就跑路吧 |
54 VictorJing94 May 7, 2020 先找入口,从 homepage 看或者 main 函数看起,一手梳理业务一手梳理 db |
55 zhjie May 7, 2020 啃得动是本分,啃不动就炒你。 最好用的办法就是逃避。 |
56 arvinsilm May 7, 2020 建议列一堆致命性问题(可以随便编,反正也没人懂这个项目了),然后要求做一个新项目,不做二次开发。问题可以往安全性上靠,国企现在很在意这个。当然能不能撑得住,会不会背锅要你自己评估 |
57 paoqi2048 May 7, 2020 快逃! |
58 keelng May 7, 2020 这种情况说服领导放弃就完了,自己重新组织团队写一个更省时省事,修改一个完全没有任何资料支撑的项目,改到你想 s |
59 silencil May 7, 2020 via Android 我这 200 多兆的项目也没有文档,还好跑起来了 |
60 zhouwei520 May 7, 2020 如果有源码你看不懂的话,大概率你是无法重写的。 框架方面建议使用谷歌搜索,一般都是套的别人的框架重构的。 从业务到代码,多找业务问清业务流程,然后对照代码看。 |
&nbp; 61 paulee May 7, 2020 找人跑起来,跑不起来的项目基本没法看;如果非要看,先找入口文件、配置文件(这都是建立在架构合理的情况下)... |
62 purensong May 7, 2020 看评论都说跑路的,我想问你们自己遇到也跑路吗,为什么不能先努力一下,至少把数据库删了再跑,避免坑害后人 |
63 TesterCC May 7, 2020 看下能不能本地搭建开发环境跑起来,能本地跑起来的话还能再折腾下,不能的话参考前面朋友们的套路吧 |
65 xingyuc May 7, 2020 @huntcool001 这种你搞懂了就稳了,除非他换系统 |
66 ytmsdy May 7, 2020 0.先跑起来, 1.用户登陆开始看,跟踪整个 URL 配置,函数逻辑,数据库连接方式 2.看看系统里面有没有查询模块,如果有那就到具体的页面,然后熟悉一下整个数据结构。 3.修改的话,千万不要在老方法上做修改。最好的办法是把原来的函数复制一份,然后在函数入口上做相应的区分。 万一出问题,直接把函数名字改回去就恢复了。 |
67 spadger May 7, 2020 传说中的屎山? |
68 sunriz May 7, 2020 重构代码整洁之道 |
69 cpstar May 7, 2020 能看源代码就好办了。甚至还能反演出开发者的思路。 我经常干这种事情而且乐此不疲,还能在某些混淆了源码的地方找出一些端倪。 方法很简单,就某个场景,逆向运转系统,调用关系一个一个捋。 总之一件事:耐心。 |
71 encro May 8, 2020 你用了一个合格的 IDE 吗? 你了解业务了吗? 你熟悉代码基础语法了吗? 你会搜索吗? 如果以上回答是,你可以自己慢慢看代码了, 如果回答否,那么是不可能看懂的。 |