在你所服务的公司里,你的直接上级能够理解和支持重构的意义吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Livid
59.8D
459.71D
V2EX    程序员

在你所服务的公司里,你的直接上级能够理解和支持重构的意义吗?

  •  
  •   Livid
    PRO
    2019-04-12 11:01:38 +08:00 15063 次点击
    这是一个创建于 2381 天前的主题,其中的信息可能已经有所发展或是发生改变。
    156 条回复    2019-04-13 11:26:35 +08:00
    1  2  
    ChoateYao
        1
    ChoateYao  
       2019-04-12 11:03:33 +08:00
    不能,除非到代码质量和架构已经影响到业务营收的时候才会考虑。
    weo0
        2
    weo0  
       2019-04-12 11:04:22 +08:00
    除非项目跑不动,赚不到钱的话估计会
    fengwei23
        3
    fengwei23  
       2019-04-12 11:04:33 +08:00
    不能,一提就拒绝
    kkeiko
        4
    kkeiko  
       2019-04-12 11:04:37 +08:00   5
    不能,因为重构不在 kpi 里
    sea516
        5
    sea516  
       2019-04-12 11:05:16 +08:00
    都是领导在推动重构
    halfer53
        6
    halfer53  
       2019-04-12 11:05:16 +08:00
    哪怕作为开发者,我也很反对重构,绝大多数重构就是为了 api
    msg7086
        7
    msg7086  
       2019-04-12 11:05:21 +08:00   28
    小公司。
    以前的上级( VPE )不喜欢重构,一套烂代码用了 10 年还要继续修补贴药膏加功能。
    现在他们全离职了,我最大,重构起来为所欲为,把那些天天爆炸的代码模块全重写了。
    Mithril
        8
    Mithril  
       2019-04-12 11:05:54 +08:00   1
    能不能看怎么说。
    维护成本和重构成本全计算好发给上司一般都会同意。
    xzc19970719
        9
    xzc19970719  
       2019-04-12 11:06:20 +08:00 via Android
    @msg7086 没有上级。。为所欲为
    WildCat
        10
    WildCat  
       2019-04-12 11:06:24 +08:00
    能。
    并且,在一定范围内支持重构上的试错。
    最终目标还是让产品更稳定,口碑更好。
    orangeade
        11
    orangeade  
       2019-04-12 11:06:38 +08:00 via Android
    有需要就重构,一堆四五年前的烂代码都重构了
    lusyoe
        12
    lusyoe  
       2019-04-12 11:06:40 +08:00
    可以,可能要看上级是不是技术出身了,一般技术出身的更能理解重构的含义
    vazo
        13
    vazo  
       2019-04-12 11:06:47 +08:00   2
    理解和支持是两回事
    Lxxyx
        14
    Lxxyx  
       2019-04-12 11:07:06 +08:00 via iPhone
    看公司和领导吧,我前段时间重构了一个项目,直接上级理解并支持,算到 KPI 里了。他想知道重构的意义和收益何在,如果只是基于个人喜好,为了重构而重构,那肯定是不支持的
    lance7in
        15
    lance7in  
       2019-04-12 11:08:32 +08:00
    我司是重构驱动型公司
    HuHui
        16
    HuHui  
       2019-04-12 11:08:36 +08:00 via Android
    目前接触到的,技术路线的支持,非技术路线的不支持
    Yoock
        17
    Yoock  
       2019-04-12 11:08:40 +08:00
    不能
    learnshare
        18
    learnshare  
       2019-04-12 11:10:18 +08:00
    多数能明白重构的必要性和价值,但基本不会支持和着手执行。
    只有一家公司,因为主要业务是外包完成的,后续无法继续支持,也没人能维护,才重新设计和实现了整个系统。

    从重构的时间和人力成本来讲,我更支持从一开始就考虑周全并保证质量。持续迭代优化比从头再来简单多了。
    af463419014
        19
    af463419014  
       2019-04-12 11:10:19 +08:00   24
    我就想知道 livid 想重构 V 站吗
    Navee
        20
    Navee  
       2019-04-12 11:11:01 +08:00

    这个东西跑了很久没出问题了,你不要乱改
    Lin0936
        21
    Lin0936  
       2019-04-12 11:11:11 +08:00
    表示理解,但不支持,因为没有时间,就算愿意用自己空闲时间重构都不行,因为要测试。
    qiumaoyuan
        22
    qiumaoyuan  
       2019-04-12 11:11:20 +08:00
    问题是重构不应该是单独某个时间段里做的,而是在日常开发中进行。上级根本不需要知道。
    7654
        23
    7654  
       2019-04-12 11:11:49 +08:00
    求稳吧
    lshero
        24
    lshero  
       2019-04-12 11:14:11 +08:00
    之前的公司在主要业务部门,不想做产品需求的时候领导就会组织重构,顺带要点绩效。
    现在的公司做创新业务,一般没等到重构的机会就战略调整了
    micean
        25
    micean  
       2019-04-12 11:15:01 +08:00
    我支持重构,如果是在我对业务的可控范围内
    但是很多时候没有时间去做这件事
    久而久之也不愿再提
    qq976739120
        26
    qq976739120  
       2019-04-12 11:15:02 +08:00
    重构这种东西应该是自上而下的,不然阻力非常大
    yidinghe
        27
    yidinghe  
       2019-04-12 11:15:06 +08:00
    单元测试搞不起来,重构也搞不起来
    yanaraika
        28
    yanaraika  
       2019-04-12 11:15:30 +08:00   2
    什么是重构。应该在代码还能忍的时候就开始重构。不幸的是,很多意识到需要重构的时候实际需要的已经是重写了
    JohnSmith
        29
    JohnSmith  
       2019-04-12 11:17:11 +08:00
    @kkeiko #4 +1
    babedoll
        30
    babedoll  
       2019-04-12 11:19:00 +08:00
    只有迭代 推翻全重搞是不可能滴
    amon
        31
    amon  
       2019-04-12 11:19:05 +08:00   1
    能理解,但是通常业务优先,不到不得已的时候是不会开始重构的。

    之前重构一个大型系统项目,梳理了一篇文章,有兴趣可以点击阅读。
    https://mp.weixin.qq.com/s/yQJwMHS9Bb7FHoqPJ3mo2g
    wolfie
        32
    wolfie  
       2019-04-12 11:19:28 +08:00
    提过,短时间没有价值就否了。
    guokeke
        33
    guokeke  
       2019-04-12 11:19:33 +08:00
    我认为是能理解的,但是现实条件太刻,如果那些提重构的人能力不强,上级肯定也会否决的。
    konakona
        34
    konakona  
       2019-04-12 11:19:42 +08:00
    不重构,维护成本和人力成本逐步增加,连人都招不到。
    已经提上日程,预估今年应该可以重构,看排期。
    avalon0624
        35
    avalon0624  
       2019-04-12 11:23:02 +08:00
    能理解,但是不支持,没资源去重构
    aijam
        36
    aijam  
       2019-04-12 11:23:56 +08:00
    参考小平同志提出中国特色社会主义的历史。重构也是要有实际需求支撑的,稍微有点代码洁癖张口闭口就重构的同事能躲多远躲多远。
    bzi
        37
    bzi  
       2019-04-12 11:25:05 +08:00
    一知半解,不能
    zzzzzzZ
        38
    zzzzzzZ  
       2019-04-12 11:26:38 +08:00
    能不能看场合,这是一个产品质量和工作量之间的取舍问题,不是二选一
    yemoluo
        39
    yemoluo  
       2019-04-12 11:27:50 +08:00
    有一句话:老板要结果,程序员要重构... 我们老板属于前者,每个月都有那么几天,没啥需求,这段时间是重构时间...
    xw900812
        40
    xw900812  
       2019-04-12 11:28:20 +08:00
    上级和领导都是技术出身,之前也是程序员,非常理解 refactoring。
    但什么时候 refactoring 则需要根据业务发展安排轻重缓急。
    闲的时候就 refactor,忙的时候就先凑合着用。
    Actrace
        41
    Actrace  
       2019-04-12 11:29:56 +08:00
    老板这都是为你们啊,重构的话那岂不是需要你们 996 了~
    whileFalse
        42
    whileFalse  
       2019-04-12 11:31:02 +08:00
    作为一个运维,重构都是对用户(开发者)透明的。
    有的时候搞得好我们会吹下牛逼,每个月省了好多钱!节省了好多时间!老板听着很高兴。
    但想让老板花资源来支持,我自己都懒得找他好么……

    自己能悄么声儿干了的就干了,不能的就暂时搁置吧。反正能干的事儿挺多的呢。
    yuandfish
        43
    yuandfish  
       2019-04-12 11:32:42 +08:00
    因为顾虑到会增加 bug,所以是吩咐以前的代码尽可能不要动
    chuhemiao
        44
    chuhemiao  
       2019-04-12 11:34:38 +08:00
    不能,惰性太严重了。。。
    cat9life
        45
    cat9life  
       2019-04-12 11:35:58 +08:00
    只要能跑就不支持
    sneezry
        46
    sneezry  
       2019-04-12 11:36:14 +08:00   5
    完全理解,但是支不支持看情况。如果任务排的比较紧就不支持,会有优先级更高的任务要做。我们最近正在准备重构,一方面业务方向有变化,一方面最近任务比之前少了一些。

    这是我之前抱怨代码过长时间没有重构的朋友圈配图:

    yourmoonlight
        47
    yourmoonlight  
       2019-04-12 11:37:25 +08:00
    一般都能理解吧,但一般也不会支持的,跟 KPI 搭不上啊
    yiwei20000wj
        48
    yiwei20000wj  
       2019-04-12 11:37:32 +08:00
    不能,重构需要成本,业务目标不清晰。除非遇到一天三崩,不得不的时候。
    yourmoonlight
        49
    yourmoonlight  
       2019-04-12 11:38:21 +08:00
    @sneezry 感谢你这图,哪天我忍不了了,也发一下
    xuanbg
        50
    xuanbg  
       2019-04-12 11:39:24 +08:00
    我就是领导……我支持重构……

    我们是微服务架构,你不怕麻烦想重构某个服务尽管重构好了。反正时间就是这么多,这个没办法。我所能提供的帮助就是帮你在设计上尽量地去掉不必要的东西,使服务更加纯粹。最多再帮你写点代码。。。
    merlinX
        51
    merlinX  
       2019-04-12 11:44:43 +08:00
    一个字,能
    otakustay
        52
    otakustay  
       2019-04-12 11:45:39 +08:00   2
    首要的问题应该是,工程师能够解释清楚重构的意义吗?不是用“感觉”、“信仰”、“维护不动”去解释,而是实打实的把业务目标、技术目标、市场目标放在一起去合理解释
    Biwood
        53
    Biwood  
       2019-04-12 11:46:23 +08:00
    我新来的这家招我进来就是为了能重构... 好在不是强制性的,目前的考虑是从大的结构往细微的逻辑方向进行调整,而不是一次性全部重写,保守一点吧
    guokeke
        54
    guokeke  
       2019-04-12 11:47:38 +08:00
    @xuanbg 233, 领导一看就是过来人。
    HustLiu
        55
    HustLiu  
       2019-04-12 11:48:53 +08:00
    感觉大家好像默认重构就是一件无比正确的事情似的……
    flyingghost
        56
    flyingghost &nbp;
       2019-04-12 11:49:51 +08:00   23
    从帖子里大部分人的对立面聊聊这个话题。

    先表立场:小公司,我就是上级,开发出身。我的 boss 不算太懂技术。

    大概 80%的重构需求由开发提出,其中只有 20%的重构需求我会认可,80%都被我拒了。常见原因按比例列举如下:
    1,纯粹就是想炫技,想用新技术,想搞事情想赚工分。这个比重最大,一般特点是年轻、活跃、激进、前端等。这些人纯粹就是吃饱撑的,兴趣驱动最大无视其他一切因素。没办法,只能说磨砺中成长吧。。。把他们的无穷精力稍微倾斜一些在预研、攻关、分享等技术型任务会更双赢一些。
    2,代价,时间和人员。说实话这是男默女泪的巨坑。但毕竟公司不是学校,盈利是根本目的。学院里好的技术人员可以用无限的资源挑战学术的极限,但社会中好的技术人员需要带着沉重的现实镣铐尽最大可能让各方利益都能接近最大化。这部分只能说可惜,但必须让开发同学能理解能把心态调整好。
    3,不够平滑。这种一般原则上已经赞同了,但执行方式上比较粗暴,比如项目主线暂停、阶梯式升级导致用户流失、服务暂停等。会搁置、会要求优化、会要求分解,分阶段落地或者部分落地。
    4,动机不纯。一般发生在老员工。为了攫取话语权和 KPI。这部分直接堵回去,打负分。

    以上来看,根本原因大部分都出在视野问题,视野不够大,看不到全局看不到负面。另外一个根本原因是出在立场问题。毕竟屁股决定脑袋,有时候并不是使坏,是潜意识让人做出了对自己利好的决策而没有意识到。期望大家能换位思考,能认可共赢价值观,能杜绝自我自私损人利己。

    大概 20%的重构需求由我提出,其中 80%会得到上级的认可,推行并落地。
    毕竟同是开发,懂得在屎山中摸爬滚打是什么滋味。有时候能从架构层面发现开发同学们发现不了的重构点,就尽力去推动改善,这也是对团队对公司都有利的。但毕竟不存在人定胜天的鬼话,有时候我也有局限,推不动的甚至推错方向的,同学们多担待吧,我陪你们。
    ryan18
        57
    ryan18  
       2019-04-12 11:50:26 +08:00 via Android
    温柔的不能,没时间
    alvin666
        58
    alvin666  
       2019-04-12 11:52:17 +08:00 via Android
    理解,但是不支持,谁会和钱过不去呢,上级也很无奈,上级的上上级理解不了
    ccdarkness
        59
    ccdarkness  
       2019-04-12 11:54:28 +08:00
    多数人重构只是为了符合自己的开发逻辑,对业务并没有太多改善。支不支持重构应该看人,刚刚进公司不到一年就喊重构的就不要理,把业务吃通透了,能规划新系统来帮助提高业务效率等等,说得清楚就支持
    zhang77555
        60
    zhang77555  
       2019-04-12 11:56:26 +08:00
    能理解,也想支持,但是基本很难落地,而且对于不懂技术的大领导来说,重构等于承认整个团队以前做的有问题。
    zzlove
        61
    zzlove  
       2019-04-12 11:57:51 +08:00
    我最近刚好在重构,没有向领导申请,直接干的,最近几个星期每天都自己一个人加班到十二点以后,刚上完线。
    TwoDays91
        62
    TwoDays91  
       2019-04-12 11:58:24 +08:00 via Android
    不能 一重构 就 996 去吧 直到项目功能全部实现 来自 惨痛的重构经验
    lzjamao     63
    lzjamao  
       2019-04-12 11:58:34 +08:00
    除非近期组内闲着,但几乎忙要死
    shawndev
        64
    shawndev  
       2019-04-12 11:59:59 +08:00
    一般都支持边迭代边重构。
    327beckham
        65
    327beckham  
       2019-04-12 12:01:26 +08:00
    偏技术的领导,还是支持重构的
    mashpolo
        66
    mashpolo  
       2019-04-12 12:03:25 +08:00 via iPhone
    自己抽时间重构,领导不关心这些,只关心你的代码稳不稳定,重构完没问题的话他就不会管,有问题会影响绩效
    dabaibai
        67
    dabaibai  
       2019-04-12 12:06:07 +08:00
    我理解你们
    lrh3321
        68
    lrh3321  
       2019-04-12 12:07:01 +08:00 via Android
    不能,只能慢慢迭代掉
    stotle
        69
    stotle  
       2019-04-12 12:08:01 +08:00
    支持,好在写年报的时候大吹特吹。
    daodao116
        70
    daodao116  
       2019-04-12 12:08:31 +08:00
    很难,谁也不想承担这个风险。
    MrJeff
        71
    MrJeff  
       2019-04-12 12:08:38 +08:00
    之前在外企的时候 重构可以当做业务排期来做 现在换到国内的大公司 重构只能找闲的时候。。。
    wtks1
        72
    wtks1  
       2019-04-12 12:09:58 +08:00 via Android
    我们这边从 C#重构到 java,结果研发那边工期一再拖延,现场的人快被坑死了
    WildCat
        73
    WildCat  
       2019-04-12 12:15:05 +08:00
    @wtks1 这应该是重写了 =,=
    MeteorCat
        74
    MeteorCat  
       2019-04-12 12:32:41 +08:00 via Android
    看需求排期,在不干扰正常工作情况下可以
    NaVient
        75
    NaVient  
       2019-04-12 12:33:22 +08:00
    @flyingghost #56 看了这么多 你是说得最在理的
    LxExExl
        76
    LxExExl  
       2019-04-12 12:33:50 +08:00
    能理解 很支持

    但是考评的时候不看重 所以完全看自己兴趣
    CHYK
        77
    CHYK  
       2019-04-12 12:49:50 +08:00
    个人觉得,重构的根本问题不在技术上,而在利益纠纷上。特别是如果你重构的内容、接口涉及到几个小组,部门的时候,比如一个 gpio 口大家共用,这部分你改动一下试试看。

    如果确定背后站着一个足够支撑你在利益冲突时,给你加持的人,那么可以谨慎操作。

    否则,一谈重构,我现在的感觉就是实际收益(对公司)不好。
    如果这种重构对个人,比如 KPI 有特殊的意义,那就另话。

    More Important: 业务到了不重构不升级就走不下去了么?(比如: 千年虫?日本天皇年号类的?)

    谨慎,谨慎,谨慎。

    纯个人意见。
    notreami
        78
    notreami  
       2019-04-12 12:57:57 +08:00
    重构不好听,换个词呗。 技术改进,持续优化。。
    icylogic
        79
    icylogic  
       2019-04-12 13:05:44 +08:00 via iPhone
    非常支持……
    icylogic
        80
    icylogic  
       2019-04-12 13:06:51 +08:00 via iPhone
    而且会帮助我协调推动这些事。当然前提是我给出合理的理由说服他。
    loading
        81
    loading  
       2019-04-12 13:08:15 +08:00 via Android
    @msg7086 我也好不容易能为所欲为了,但是发现已经熬太久,体力不支,力不从心……←_←
    dif
        82
    dif  
       2019-04-12 13:10:55 +08:00
    你能说服他带来的好处,或许能。
    不然,想都别想,不然他会认为你工作量不饱和。
    method
        83
    method  
       2019-04-12 13:12:09 +08:00 via iPhone
    能。但需要想个说法来和业务价值结合,忽悠产品经理。
    monkeylyf
        84
    monkeylyf  
       2019-04-12 13:14:45 +08:00
    很少。我自己的策略就是在每次改动代码的时候做小规模重构。当然这样会有同事说你 git commit 碰了太多没必要碰的代码。另外一种策略就是在不是那么忙的几天,添加单元测试,同时部分重构。
    至今没有遇到上级会同意,“嘿,这周你把 xxx 重构一下”。
    hitfm
        85
    hitfm  
       2019-04-12 13:16:54 +08:00
    能明白代码腐朽就能理解代码重构的价值,尤其是业务需求快速变化的项目
    broono
        86
    broono  
       2019-04-12 13:20:31 +08:00 via Android
    8 年的 php 站点迫于没人维护被要求重写了
    Baymaxbowen
        87
    Baymaxbowen  
       2019-04-12 13:35:34 +08:00
    能 比较闲的时候支持我们折腾
    icyalala
        88
    icyalala  
       2019-04-12 13:43:18 +08:00
    认同上面的说法,理解和支持是两回事儿。。
    如果大老板信任技术管理者,那么他可能不理解重构,但仍然能给予支持。
    但是很多业务导向的公司,技术管理者理解重构的意义,但可能无法支持。
    maipian
        89
    maipian  
       2019-04-12 13:44:20 +08:00
    会看投入产出比,如果开发一个新需求成本高过重构,就会选择重构,不过一般都高不过。
    Mac
        90
    Mac  
       2019-04-12 13:46:26 +08:00 via Android
    能,因为她完全不懂,我告诉她重构就是离婚,是净身出户还是对半分主要看前期犯了多大错误。
    zycz2p
        91
    zycz2p  
       2019-04-12 13:48:57 +08:00
    不能。。而且经常说什么 xxx 地方做过拿过来用就行。。老项目升级都是这个样子。。
    jswh
        92
    jswh  
       2019-04-12 14:15:53 +08:00
    code review 是浪费时间 (摊手
    pipmian
        93
    pipmian  
       2019-04-12 14:24:14 +08:00
    上级不会要求。实习跟了一个内部系统,来了不愿意写测试、重构的正式工也拿他没办法。
    yalin
        94
    yalin  
       2019-04-12 14:24:41 +08:00
    除非有技术债的概念和相应的资源
    ChiangDi
        95
    ChiangDi  
       2019-04-12 14:25:29 +08:00
    你就说,再不重构新需求就做不了了
    loryyang
        96
    loryyang  
       2019-04-12 14:25:31 +08:00
    理解但不支持,KPI 导向,明年就搞新的啦,这坨东西就用新的换掉,或者就丢给别人
    javaWeber
        97
    javaWeber  
       2019-04-12 14:26:09 +08:00
    我人微言轻,不敢重构。因为自己没做出什么成绩,随意重构可能会导致其他人返工。
    Keyes
        98
    Keyes  
       2019-04-12 14:27:43 +08:00
    我提了几次,终于答应了,说 2019 过完年做,现在又没声了,怒而转岗
    hooych
        99
    hooych  
       2019-04-12 14:29:57 +08:00
    有收益就能,放 KPI 里,没明显收益就不能
    susecjh
        100
    susecjh  
       2019-04-12 14:32:54 +08:00
    刚刚重构完
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1082 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 18:21 PVG 02:21 LAX 11:21 JFK 14:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86