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

2019-04-12 11:01:38 +08:00
 Livid
14166 次点击
所在节点    程序员
156 条回复
hp3325
2019-04-12 14:42:22 +08:00
我就是上级,基本原则就是能跑的东西不要动!

影响到业务未来的,影响到性能的支持。炫技的自己一边玩儿去。。
mysunshinedreams
2019-04-12 14:45:37 +08:00
理解重构的意义,但并不支持。
wupher
2019-04-12 14:51:53 +08:00
能理解,不一定能支持。

我自己也是,尤其是大规模重构,尤其是底层架构重构。

越是深年旧坑越是如此,重构后引发的问题往往比之前还多,填坑的小伙伴也往往从踌躇满志到心力交瘁。

现在我宁可建议搞新系统,然后从业务上逐渐予以淘汰,或将旧业务予以迁移。
xomix
2019-04-12 14:53:37 +08:00
做上级的时候理解过,在老项目里面引入新框架做过重构,然后,今后再有机会宁可重做也不重构了。
undefinedz
2019-04-12 15:01:11 +08:00
不能,业务稳定第一,老大的意思是:你来重构,多出的测试工作量,运维工作量谁来做?如果出了产线问题谁来担责?
no1xsyzy
2019-04-12 15:05:07 +08:00
看完感觉说的 “重构” 都不是一个事。

我觉得重构其实根本不需要任何的理解和支持。
某段代码(因为需求原因)需要作修改的时候就直接顺便重构掉了。
liuzhaowei55
2019-04-12 15:05:29 +08:00
我是程序,理解也知道重构的好处,但是重构是在太难了。只能是在不断淘汰老业务的时候去演进。
no1xsyzy
2019-04-12 15:12:34 +08:00
@CHYK 我觉得你说的根本不是重构,而是修改。
重构的核心不是不发生任何改变吗?重构完除非调 commit 或者记得原本的代码否则根本不可能发现重构了。
更何况重构不可能解决、也不太可能帮助解决千年虫问题和年号问题,要能解决一定是用了未定义行为,或者编译器或者运行时有 bug。
troycheng
2019-04-12 15:13:05 +08:00
参与了两个大规模的系统重构(其中一个彻底重写百科,没错,是百度的那个百科),如果没有特别强烈的需求(比比如已经严重拖累业务发展),一般是不会获得支持的,业务系统涉及非技术的因素太多。
CHYK
2019-04-12 15:27:32 +08:00
@no1xsyzy 我大概能理解你所说的理性化的,或者理论化的"重构",大概就是修改一个原型,接口的实现,而不改变接口本身。但是现实情况是,重构一般是长期,局部化的调整,甚至是架构调整,甚至是一个人或者团队的资源调整。
(这个没有经历过的人大概不会明白,简单就是说,往往是以重构的名义,实际也是重构,但是期间会做转换核心资源的调整,可能原来是围绕 Amd 这个人,然后一点点慢慢局部替换,最后就编程 intel 了)
换言之,人写代码,是既要考虑人,也要考虑代码。不能只考虑代码本身呀。(您应该不是 robot 发言)

至于后面说的老大难的问题,甚至 bug,这个可以叫做 fix,但当时确实是可以支撑下去的。也就是我上面的核心观点:
业务走不下去了么?需要提重构这种事儿。具体点儿,以往那个千年虫的问题,当时他就能解决,为什么他要甩锅给后来的人,且当时用的时候也是没有问题的,只不过 1900 和 2000 出现的时候(也就是他开发时的后面),那时才叫 bug,如果当时的人解决,就是重构了。然后这些前辈却没有,可想而知重构不是那么容易。(可能我没有说清楚)

其实我可以反问您,我耗费这么人力,时间,财力搞的重构对于当前的业务有啥益处?后来的问题,后来的人不能搞么?这个东西为啥一开始没有就设计好?既然一开始没有设计好(又不是我们设计的原型),现在又能用,何故看了一本重构就来谈重构?

私以为,所谓的重构,clean code,不过是程序员自己的消遣,在领导面前 show own profession,然做过独立开发者,自己要解决生存,赚钱问题时,这。。。

总之,我不喜欢重构(尤其是前一个离职的人花两个礼拜写的东西,要我接下来的 2 个月都在维护和重构他的东西,所谓的兜底,所谓的擦屁股)。要么就推翻重来。要么就开始设计好。
fancymax
2019-04-12 15:32:01 +08:00
有强制的单元测试和 UI 测试覆盖率要求~没写测试的 pr 无法 merge
Yiki
2019-04-12 15:40:33 +08:00
重构不可能把
直接重写吧……
qiumaoyuan
2019-04-12 15:43:54 +08:00
@no1xsyzy 有这样一个回复真的难得。
luozic
2019-04-12 15:45:00 +08:00
重構個鳥,直接運行不了就把老的幹死,假裝換個新的繼續。 那麽公司 /軟件都死了,不少一個新的垃圾系統。
iamjs
2019-04-12 15:45:44 +08:00
已经满足不了未来 1 年的业务需求。分出一个小 team 来逐步重构。完整测试后进行更迭。。
lovejunjie1
2019-04-12 15:53:08 +08:00
说点最近遇到的案例。之前追漫画用的大妈之家( dmzj )。最近他们老大说,为了以后的发展,我们要迁移服务器。可是网站用的祖传代码,已经多年没有维护了。新招的技术员一脸懵逼。啧啧,真的惨。现在已经四周了。技术员不知道重构到哪个部分了。现在晚上 12 点之后还是会断网的,大概是更新服务器的码子吧。
这事儿怎么评价呢……是苟且苟出来问题了。被动重构,难受的一比……
Marlon
2019-04-12 15:54:48 +08:00
天天在重构,关键是产品流程细节都没理清楚。。。/(ㄒoㄒ)/~~
bluefalconjun
2019-04-12 16:03:55 +08:00
除非开发新模块 否则绝不重构...

N 年的客户你说扔就扔吗... 别说 CEO 了 光销售就得过来骂娘了...
wormcy
2019-04-12 16:08:28 +08:00
不理解不支持 不增加新功能的重构是个笑话
otakustay
2019-04-12 16:11:28 +08:00
@lovejunjie1 我是真从来没见过大妈之家这种敢在线上重构的玩法……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554366

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX