V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Akiyu

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

  •  1
     
  •   Akiyu · Jun 21, 2018 · 7959 views
    This topic created in 2878 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2.跑路

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