V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Akiyu
V2EX  ›  职场话题

现在体会到了多人开发带来的痛苦

  •  1
     
  •   Akiyu · 2018-06-21 10:46:35 +08:00 · 7174 次点击
    这是一个创建于 2346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在着手维护老代码, 之前共同开发代码的人已经离职了, 最近是真的被这代码弄得焦头烂额...

    举个例子, A 创建了这个项目, 实现了基本的功能, 然后 A 去做其他的了

    这时候 B 来了, B 的任务是在这个框架之上添加一个功能
    (他并没有和 A 沟通, 沟通不彻底, 或者这时候 A 没时间, 等等原因)
    B 不熟悉这个框架, 加功能的时候需要一个参数(函数), 这个参数(函数)本来在 A 写的代码里面有了
    但是 B 不知道, 自己动手把这个参数(函数)实现了, 好, B 完成任务了.

    然后又来了 C, C 实现功能的时候他只看到了 B 的那部分(或者 A 的部分), 他以为把这里改了就好了
    就只改了一处, 或许因为逻辑的原因暂时没有问题 (也许 C 看到了问题所在, 但是要把框架纠正过来太麻烦了, 他只管实现就行了), C 好像也完成任务了. ...

    到最后来维护这个代码的人面对的就是坑坑洼洼的代码
    没有人对接, 这样他即使能改, 改出来的也是坑坑洼洼的代码...
    我现在大概就在做这样的事, 好痛苦...

    PS:谁写的谁来维护, 鬼 TM 才想看这样的代码

    54 条回复    2018-07-12 17:33:54 +08:00
    wxsm
        1
    wxsm  
       2018-06-21 10:50:41 +08:00
    上了年纪的项目绝大多数都是类似这样的的。。。。习惯就好
    UIXX
        2
    UIXX  
       2018-06-21 10:56:26 +08:00   ❤️ 1
    重构之,强迫症的唯一选择
    jayin
        3
    jayin  
       2018-06-21 10:56:36 +08:00
    习惯就好了。。
    liuguangcuican
        4
    liuguangcuican  
       2018-06-21 10:59:57 +08:00
    我现在正在对一个从 08 年活到现在的项目进行重构,感觉自己会在重构完之前跑路
    mseasons
        5
    mseasons  
       2018-06-21 11:01:03 +08:00
    我记得轮子哥说过一次 office 的代码就有这种情况。
    mrzx
        6
    mrzx  
       2018-06-21 11:01:18 +08:00
    你只能重构。

    多人开发都是这样。没办法

    而且很多人交接的时候,故意会将代码里的注释全部删除。
    缺乏职业道德。
    icy37785
        7
    icy37785  
       2018-06-21 11:05:49 +08:00 via iPhone
    说实话,我自己一个人的项目,不同阶段再去维护,最后慢慢的都会变得坑坑洼洼。
    Akiyu
        8
    Akiyu  
    OP
       2018-06-21 11:11:27 +08:00   ❤️ 4
    重构是不可能的, 这辈子都不会重构
    别人拉的屎, 凭什么要我来擦屁股.
    而且重构面临的问题和代码量, ... 无力 ...
    alexnevsky
        9
    alexnevsky  
       2018-06-21 11:17:53 +08:00
    @Akiyu - -||,
    cross874
        10
    cross874  
       2018-06-21 11:20:42 +08:00
    拿出作家的心态写代码就行喽
    前面代码写成什么样不管,等于是一本书,前面的剧情可以彻底不理,就看当前剧情什么样,往下写就好。你不是银弹也不是救世主,只是来开发新的需求....
    SakuraKuma
        11
    SakuraKuma  
       2018-06-21 11:28:41 +08:00
    不然以为重构是怎么来的 ( 逃
    df4VW
        12
    df4VW  
       2018-06-21 11:30:57 +08:00
    没有测试

    有测试再屎的代码我都愿意改

    没测试就凭天意了
    lincanbin
        13
    lincanbin  
       2018-06-21 11:32:52 +08:00
    我最近在重构一个完全没有一行注释的系统。
    rogwan
        14
    rogwan  
       2018-06-21 11:35:02 +08:00 via iPhone
    你现在是 D?E?F?还是...N?
    Akiyu
        15
    Akiyu  
    OP
       2018-06-21 11:40:23 +08:00
    @rogwan 鬼知道...
    公司是外地搬过来的, 之前的程序大多都离职了
    lululau
        16
    lululau  
       2018-06-21 11:44:44 +08:00   ❤️ 1
    说重构的不知道重构的前提是要有测试吗
    yylucifer
        17
    yylucifer  
       2018-06-21 12:39:12 +08:00
    你这不是“多人开发”

    你这是项目维护的问题。。

    标题党。。
    pathbox
        18
    pathbox  
       2018-06-21 12:42:34 +08:00 via iPhone
    遇到维护他人复杂代码模块的时候其实没有把他完全重构一遍的爽
    heikejia
        19
    heikejia  
       2018-06-21 13:28:17 +08:00 via iPhone
    版本控制与代码 review 了解下
    dong3580
        20
    dong3580  
       2018-06-21 13:35:13 +08:00
    code review
    l00t
        21
    l00t  
       2018-06-21 13:52:50 +08:00   ❤️ 1
    没有把握千万别重构。真要重构也要一小部分一小部分来,一下改太多容易捅娄子。
    重构的前提是要有完整的测试。而完整测试的前提是要了解详尽的需求。不然你就给自己挖坑了。
    sammo
        22
    sammo  
       2018-06-21 13:54:17 +08:00 via iPhone
    应该先熟悉项目
    1014166283
        23
    1014166283  
       2018-06-21 14:36:41 +08:00
    没有文档吗?也不做交接工作?
    x7395759
        24
    x7395759  
       2018-06-21 14:46:58 +08:00
    这不是很正常的事情吗?项目管理为 0 的中国软件,这是阵痛,一定要相信哈哈哈哈
    jerry033
        25
    jerry033  
       2018-06-21 15:04:18 +08:00   ❤️ 1
    所以说 Linux 真是个奇迹啊
    virus94
        26
    virus94  
       2018-06-21 15:53:11 +08:00
    唉 我这边也是一个项目经手五六个人,代码里全是补丁,直接重写了 0.0.
    cxh116
        27
    cxh116  
       2018-06-21 15:57:10 +08:00
    代码上的痛苦算个什么?

    小马,我有个不错的 idea ,明天帮我实现,争取后天上线.
    Viztor
        28
    Viztor  
       2018-06-21 16:53:42 +08:00
    这哪里是多人开发。
    这是连续断层式单人开发。
    freedom3
        29
    freedom3  
       2018-06-21 17:27:51 +08:00   ❤️ 1
    这叫祖传代码
    loveCoding
        30
    loveCoding  
       2018-06-21 18:16:23 +08:00
    跟多人没关系 , 跟团队代码质量管理有关 ,
    caiya21
        31
    caiya21  
       2018-06-21 19:23:06 +08:00
    难道 真的是 没有文档 没有注释。。。
    caiya21
        32
    caiya21  
       2018-06-21 19:25:21 +08:00
    我也有一段重构完别人写的系统过后 接着就跑路的经历 说多了都是泪。。。
    albertofwb
        33
    albertofwb  
       2018-06-21 21:50:52 +08:00
    @jerry033 linux 有 linus 在一直评估各个 PR
    albertofwb
        34
    albertofwb  
       2018-06-21 21:52:20 +08:00
    楼主,我的感觉跟你一样
    我现在就处于你描述的 C 或 D 的状态。MD 一开始不熟悉代码,手写了几个轮子,实际上代码库里都有

    慢慢的,项目熟悉了,一边修修改改,一边小范围重构,倒也还阔以
    20015jjw
        35
    20015jjw  
       2018-06-21 23:28:58 +08:00 via Android
    命名差也会导致这个问题
    HangoX
        36
    HangoX  
       2018-06-22 01:03:39 +08:00 via Android
    所以你们不写文档的吗?不建立文档索引的吗?不然谁知道
    HanSonJ
        37
    HanSonJ  
       2018-06-22 01:09:11 +08:00
    review 的重要性
    ericls
        38
    ericls  
       2018-06-22 01:37:56 +08:00 via iPhone
    Mob programming 了解一下
    Lentin
        39
    Lentin  
       2018-06-22 01:41:07 +08:00 via iPhone
    又不是不能用.jpg
    Lwf1995
        40
    Lwf1995  
       2018-06-22 06:37:17 +08:00 via Android
    我在的公司创业公司,老总减少成本都招兼职,这个项目都不知道几十个人改过。。。。然后我也是另批方法,没办法😓
    sumu
        41
    sumu  
       2018-06-22 07:20:13 +08:00 via iPhone
    千万别一激动就大规模重构,一般都是给自己挖坑,老板还看不到你的绩效。重构有点类似搞大扫除,搞完自己住觉得爽,但对于房子的价值而言提升很小。一个可行的策略是延长时间线,在不影响开发和维护的基础上逐步抛弃
    MoHen9
        42
    MoHen9  
       2018-06-22 09:02:01 +08:00 via Android   ❤️ 1
    1.推到,重来。

    我接手项目之后,发现项目的每一个文件都散发着腐烂的气息,需要即可着手准备重构,但是东西太多了,可以说是牵一发而动全身,改完之后,会出现莫名只奇妙的 bug,不敢改,就想着推到重来,先想到的是做成微服务,着手学习微服务,东西太多,勉强改了最重要的模块,其他的先不管。

    2.跑路

    改着改着发现能力不够,只给 4k 的 money,又做驴(Android)又做马(后台),有时还得做骡子(前端页面从“设计”到实现,还有测试),实在是累,跑路 ing。
    MoHen9
        43
    MoHen9  
       2018-06-22 09:02:57 +08:00 via Android
    打错字了,是推倒
    iqav
        44
    iqav  
       2018-06-22 09:31:25 +08:00
    题外话。未来有没有一种程序,能把代码全息投影出来,自动分析 /分解代码结构逻辑关系,然后给出最优解决方案,并能自动执行整理工作,就像电影里边一样(笑)
    mingyun
        45
    mingyun  
       2018-06-22 09:59:31 +08:00
    如果有时间精力就重构吧 不过万一你又离职了,这个坑又留给别人了 [doge]
    lcdxiangzi
        46
    lcdxiangzi  
       2018-06-22 10:31:03 +08:00
    @l00t #21 很中肯,真的需要谨慎。
    Akiyu
        47
    Akiyu  
    OP
       2018-06-22 11:00:47 +08:00
    @iqav 可能会有... 话说这不是别人眼中的程序么
    我身边的不知道程序的都以为程序坐办公室敲敲代码, 空调吹着
    薪水不错, 偶尔加加班, 日子过得不错.
    然而呢...
    mengyaoss77
        48
    mengyaoss77  
       2018-06-22 11:06:48 +08:00
    我现在也在维护这样的一个项目, 坑坑洼洼, 不知道从哪里动刀子.
    而且我还是实习, 也没这个能力去动刀子..
    May725
        49
    May725  
       2018-06-22 13:15:44 +08:00 via iPhone
    @iqav 都给出解决方案了,再直接改了,测试也一起做了,nice
    nevermind1998
        50
    nevermind1998  
       2018-06-22 21:17:33 +08:00
    最煩的是沒測試或是測試覆蓋很少
    改都改的怕怕的
    career
        51
    career  
       2018-06-24 06:56:44 +08:00 via iPhone
    代码风格超级烂的,最近要看吐了
    dragonszy
        52
    dragonszy  
       2018-06-24 17:16:20 +08:00
    千万不要重构,给自己挖坑。重构这种事由竞争对手做就行了。
    Leigg
        53
    Leigg  
       2018-06-25 09:00:21 +08:00 via iPhone
    钱多混着干,钱少你懂的
    jiangbingo
        54
    jiangbingo  
       2018-07-12 17:33:54 +08:00
    UT+ refactor.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5337 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:59 · PVG 15:59 · LAX 23:59 · JFK 02:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.