
现在着手维护老代码, 之前共同开发代码的人已经离职了, 最近是真被这代码弄得焦头烂额...
举个例子, A 创建了这个项目, 实现了基本的功能, 然后 A 去做其他的了
这时候 B 来了, B 的任务是在这个框架之上添加一个功能
(他并没有和 A 沟通, 沟通不彻底, 或者这时候 A 没时间, 等等原因)
B 不熟悉这个框架, 加功能的时候需要一个参数(函数), 这个参数(函数)本来在 A 写的代码里面有了
但是 B 不知道, 自己动手把这个参数(函数)实现了, 好, B 完成任务了.
然后又来了 C, C 实现功能的时候他只看到了 B 的那部分(或者 A 的部分), 他以为把这里改了就好了
就只改了一处, 或许因为逻辑的原因暂时没有问题 (也许 C 看到了问题所在, 但是要把框架纠正过来太麻烦了, 他只管实现就行了), C 好像也完成任务了. ...
到最后来维护这个代码的人面对的就是坑坑洼洼的代码
没有人对接, 这样他即使能改, 改出来的也是坑坑洼洼的代码...
我现在大概就在做这样的事, 好痛苦...
PS:谁写的谁来维护, 鬼 TM 才想看这样的代码
1 wxsm 2018-06-21 10:50:41 +08:00 上了年纪的项目绝大多数都是类似这样的的。。。。习惯就好 |
2 UIXX 2018-06-21 10:56:26 +08:00 重构之,强迫症的唯一选择 |
3 jayin 2018-06-21 10:56:36 +08:00 习惯就好了。。 |
4 liuguangcuican 2018-06-21 10:59:57 +08:00 我现在正在对一个从 08 年活到现在的项目进行重构,感觉自己会在重构完之前跑路 |
5 mseasons 2018-06-21 11:01:03 +08:00 我记得轮子哥说过一次 office 的代码就有这种情况。 |
6 mrzx 2018-06-21 11:01:18 +08:00 你只能重构。 多人开发都是这样。没办法 而且很多人交接的时候,故意会将代码里的注释全部删除。 缺乏职业道德。 |
7 icy37785 &nbp;2018-06-21 11:05:49 +08:00 via iPhone 说实话,我自己一个人的项目,不同阶段再去维护,最后慢慢的都会变得坑坑洼洼。 |
8 Akiyu OP 重构是不可能的, 这辈子都不会重构 别人拉的屎, 凭什么要我来擦屁股. 而且重构面临的问题和代码量, ... 无力 ... |
9 alexnevsky 2018-06-21 11:17:53 +08:00 @Akiyu - -||, |
10 cross874 2018-06-21 11:20:42 +08:00 拿出作家的心态写代码就行喽 前面代码写成什么样不管,等于是一本书,前面的剧情可以彻底不理,就看当前剧情什么样,往下写就好。你不是银弹也不是救世主,只是来开发新的需求.... |
11 SakuraKuma 2018-06-21 11:28:41 +08:00 不然以为重构是怎么来的 ( 逃 |
12 df4VW 2018-06-21 11:30:57 +08:00 没有测试 有测试再屎的代码我都愿意改 没测试就凭天意了 |
13 lincanbin 2018-06-21 11:32:52 +08:00 我最近在重构一个完全没有一行注释的系统。 |
14 rogwan 2018-06-21 11:35:02 +08:00 via iPhone 你现在是 D?E?F?还是...N? |
16 lululau 2018-06-21 11:44:44 +08:00 说重构的不知道重构的前提是要有测试吗 |
17 yylucifer 2018-06-21 12:39:12 +08:00 你这不是“多人开发” 你这是项目维护的问题。。 标题党。。 |
18 pathbox 2018-06-21 12:42:34 +08:00 via iPhone 遇到维护他人复杂代码模块的时候其实没有把他完全重构一遍的爽 |
19 heikejia 2018-06-21 13:28:17 +08:00 via iPhone 版本控制与代码 review 了解下 |
20 dong3580 2018-06-21 13:35:13 +08:00 code review |
21 l00t 2018-06-21 13:52:50 +08:00 没有把握千万别重构。真要重构也要一小部分一小部分来,一下改太多容易捅娄子。 重构的前提是要有完整的测试。而完整测试的前提是要了解详尽的需求。不然你就给自己挖坑了。 |
22 sammo 2018-06-21 13:54:17 +08:00 via iPhone 应该先熟悉项目 |
23 1014166283 2018-06-21 14:36:41 +08:00 没有文档吗?也不做交接工作? |
24 quickma 2018-06-21 14:46:58 +08:00 这不是很正常的事情吗?项目管理为 0 的中国软件,这是阵痛,一定要相信哈哈哈哈 |
25 jerry033 2018-06-21 15:04:18 +08:00 所以说 Linux 真是个奇迹啊 |
26 virus94 2018-06-21 15:53:11 +08:00 唉 我这边也是一个项目经手五六个人,代码里全是补丁,直接重写了 0.0. |
27 cxh116 2018-06-21 15:57:10 +08:00 代码上的痛苦算个什么? 小马,我有个不错的 idea ,明天帮我实现,争取后天上线. |
28 Viztor 2018-06-21 16:53:42 +08:00 这哪里是多人开发。 这是连续断层式单人开发。 |
29 freedom3 2018-06-21 17:27:51 +08:00 这叫祖传代码 |
| div class="fr"> 30 loveCoding 2018-06-21 18:16:23 +08:00 跟多人没关系 , 跟团队代码质量管理有关 , |
31 caiya21 2018-06-21 19:23:06 +08:00 难道 真的是 没有文档 没有注释。。。 |
32 caiya21 2018-06-21 19:25:21 +08:00 我也有一段重构完别人写的系统过后 接着就跑路的经历 说多了都是泪。。。 |
33 albertofwb 2018-06-21 21:50:52 +08:00 @jerry033 linux 有 linus 在一直评估各个 PR |
34 albertofwb 2018-06-21 21:52:20 +08:00 楼主,我的感觉跟你一样 我现在就处于你描述的 C 或 D 的状态。MD 一开始不熟悉代码,手写了几个轮子,实际上代码库里都有 慢慢的,项目熟悉了,一边修修改改,一边小范围重构,倒也还阔以 |
35 20015jjw 2018-06-21 23:28:58 +08:00 via Android 命名差也会导致这个问题 |
36 HangoX 2018-06-22 01:03:39 +08:00 via Android 所以你们不写文档的吗?不建立文档索引的吗?不然谁知道 |
37 HanSonJ 2018-06-22 01:09:11 +08:00 review 的重要性 |
38 ericls 2018-06-22 01:37:56 +08:00 via iPhone Mob programming 了解一下 |
39 Lentin 2018-06-22 01:41:07 +08:00 via iPhone 又不是不能用.jpg |
40 Lwf1995 2018-06-22 06:37:17 +08:00 via Android 我在的公司创业公司,老总减少成本都招兼职,这个项目都不知道几十个人改过。。。。然后我也是另批方法,没办法 |
41 sumu 2018-06-22 07:20:13 +08:00 via iPhone 千万别一激动就大规模重构,一般都是给自己挖坑,老板还看不到你的绩效。重构有点类似搞大扫除,搞完自己住觉得爽,但对于房子的价值而言提升很小。一个可行的策略是延长时间线,在不影响开发和维护的基础上逐步抛弃 |
42 MoHen9 2018-06-22 09:02:01 +08:00 via Android 1.推到,重来。 我接手项目之后,发现项目的每一个文件都散发着腐烂的气息,需要即可着手准备重构,但是东西太多了,可以说是牵一发而动全身,改完之后,会出现莫名只奇妙的 bug,不敢改,就想着推到重来,先想到的是做成微服务,着手学习微服务,东西太多,勉强改了最重要的模块,其他的先不管。 2.跑路 改着改着发现能力不够,只给 4k 的 money,又做驴(Android)又做马(后台),有时还得做骡子(前端页面从“设计”到实现,还有测试),实在是累,跑路 ing。 |
43 MoHen9 2018-06-22 09:02:57 +08:00 via Android 打错字了,是推倒 |
44 iqav 2018-06-22 09:31:25 +08:00 题外话。未来有没有一种程序,能把代码全息投影出来,自动分析 /分解代码结构逻辑关系,然后给出最优解决方案,并能自动执行整理工作,就像电影里边一样(笑) |
45 mingyun 2018-06-22 09:59:31 +08:00 如果有时间精力就重构吧 不过万一你又离职了,这个坑又留给别人了 [doge] |
46 lcdxiangzi 2018-06-22 10:31:03 +08:00 @l00t #21 很中肯,真的需要谨慎。 |
47 Akiyu OP |
48 mengyaoss77 2018-06-22 11:06:48 +08:00 我现在也在维护这样的一个项目, 坑坑洼洼, 不知道从哪里动刀子. 而且我还是实习, 也没这个能力去动刀子.. |
50 nevermind1998 2018-06-22 21:17:33 +08:00 最的是或是覆很少 改都改的怕怕的 |
51 4Cc591Jn8fO27s4A 2018-06-24 06:56:44 +08:00 via iPhone 代码风格超级烂的,最近要看吐了 |
52 dragonszy 2018-06-24 17:16:20 +08:00 千万不要重构,给自己挖坑。重构这种事由竞争对手做就行了。 |
53 Leigg 2018-06-25 09:00:21 +08:00 via iPhone 钱多混着干,钱少你懂的 |
54 jiangbingo 2018-07-12 17:33:54 +08:00 UT+ refactor. |