业务耦合性高,基本就是一坨屎,而且还是国内不入流的技术栈 c#, 现在要想重构,先从数据库迁移开始,之前没干过迁移这种事情, 这事情难度大吗,现在基本就让 AI 搞,也不知道最终会不会搞好。
人和库有一个能跑就行
人和库有一个能跑就行
1
chachi 5h 24m ago
c#也有.netframework 和 netcore
看你哪种了。 |
2
liuzhedash 5h 22m ago 不要重构,也不要迁移,百分之百炸
建议再包一层,然后另起炉灶 我是过来人,信我 |
3
OutOfMemery 5h 21m ago
楼上+1 ,最好是另起炉灶。。。。
|
4
spacebound 5h 21m ago
有句老话怎么说来着“重构一时爽,测试火葬场”哈哈哈哈
看你的项目规模和业务负责程度了。你再用 ai 也只能帮你转换 sql 语法,写写数据导入导出脚本,你要指望着 ai 帮你重构整个数据库,那基本完完~ 总结:能跑就不要动 |
5
mikawang 5h 20m ago
慢慢迁移吧,新老库同时运行,CDC 从老库同步过去,出问题了能立马切回去,反正要有兜底方案
|
6
jydeng 5h 19m ago
难度非常大
|
7
2020diyige 5h 18m ago
重构的难度比新做可大多了,,绝大部分情况重构没有意义
|
8
NoKey 5h 14m ago
有些重构,其实就是相当于重新做啊
|
9
coderxy 5h 13m ago 难度大,做好回滚方案,除非你随时准备好跑路
一般都是先双写、然后同步旧数据、再双读验证、再把读切到新库、最后跑一段时间,没问题把双写关掉。 |
10
loryyang 5h 12m ago
迁移还好,重构那是风险很高。但以你的描述,你想解决架构腐烂的问题,那还是得重构啊。这事,我建议是,你至少先运维老系统一年,再提重构的事情。你没摸清楚之前千万不要重构
|
11
xiaomushen 5h 11m ago
不大,还好
|
12
play78 5h 8m ago
我不太清楚你的业务场景。说说我的。
公司内部一个供应链管理系统,就是简单的库存管理+行业特性。 技术上+数据库完全重构。难不难?不难!开发 4 个多月就重构完了。 因为数据是动态的,不能有错误,否则库存对不上。 1. 花了一个周末过来进行数据迁移(花了一个星期,做数据转换脚本,周末才执行) 2. 业务部门配合并行 2 套系统,期间,所有数据录两遍(操作逻辑还不太一样)、数据报表互相验证,半年! 你就说业务部门肯不肯陪你这么玩吧。 为什么需要半年,因为数据流不一样,新系统多了很多中间生产状态,更加精细化了,而一个产品生产周期平均需要 2-3 个月。 |
13
yanguangs 5h 8m ago 重构 99.9999%的情况下没有意义
现在用 AI 来搞, 最明显的就是会超出上下文长度, 现在就是限额 我之前搞一个需求, 一个 json 字段,tree 结构,打平存储到三张表里面, 就这个需求,因为 token 限额跟 vibe coding 流程调优, 都搞了快 2 个星期, 同时还要不耽误其他的功能开发 吃力不讨好, 领导关注的, 跟你关注的完全不是一个点. 领导一不给经费去买 coding plan ,二要你不影响其他功能. |
14
pony2335 5h 1m ago
难度巨大无比,别干,而且必炸,有 AI 也不好使
|
15
PopRain 4h 50m ago
迁移数据库是迁移数据库,重构是重构。。。。
迁移数据库大部分 ERP 系统不会特别难,数据库语法基本接近,估计 AI 也能帮忙 不理解业务,就不要去重构 |
16
nofishing 4h 50m ago
c# 不挺好的吗,数据库不会是 sql server 吧,要换成啥?
|
17
wangritian 4h 50m ago
没太理解为什么是先从数据库迁移开始,不应该是先开发新系统,最后迁移数据吗
如果没办法一口气开发完,就开发一部分然后把老系统的对应代码改成远程调用 迁移数据也没什么麻烦吧,原始数据保留不动,让 AI 反复写迁移脚本+人工测试不就完了 |
18
qiaoqiao881100 OP @nofishing 对,业务系统的数据库就是 sql server ,老板目标是最终想用 go 重构整个系统,现有 c#的系统太垃圾,有部分数据库是用 mysql 的,所以现在想先把业务上的 sql server 数据库迁移到 mysql, 然后再把我负责的业务用 go 重构 解耦。
|
19
qiaoqiao881100 OP @wangritian 想先把业务上的 sql server 数据库迁移到 mysql, 然后再把我负责的业务用 go 重构 解耦。
|
20
qiaoqiao881100 OP @wangritian 我他妈也不知道为什么就我负责的这块先重构,让我先搞,业务系统那么庞大呢。我日了
|
21
nofishing 4h 43m ago
@qiaoqiao881100 #18 没意义啊,C# 不挺好,分模块慢慢优化呗。sql server 迁移 mysql 更没意义,除非 TB+ 数据单机放不下要换分布式数据库。我之前做过 10TB 的 sql server 迁移 OLAP 数仓,你这种 TP 的业务系统更复杂
|
22
hnbcinfo 4h 41m ago
重构这事交给 gpt-5.5 最合适。
|
23
wysnxzm 4h 40m ago
新业务用新项目新数据库,老业务不要动,经验之谈听不听随你
|
24
cwliang 4h 36m ago
风险大收益低的事情不能干
|
25
zt4027050 4h 35m ago
确实能动就不要搞,吃力不讨好,除非你有明确的性能优化指标,重构后可以提升 xx 倍,然后指望他升职加薪
|
26
uCharles 4h 34m ago
怎么说呢,这种事有两个极端,有可能是想重用你也有可能是想干掉你
|
27
chutianyao 4h 31m ago 存量数据同步->增量双写->job 兜底比对/修复异常数据->开关控制读流量切到新库->开关控制停写老库->下线清理
大概就这么个流程, 我之前迁移线上 0 级系统 |
28
qiaoqiao881100 OP @chutianyao 你写的字我都认识,但是看不懂。俺之前干前端的。😭
|
29
SURA907 4h 26m ago
感觉什么都没说清楚
1. 业务重构干嘛动数据库? 2. 所谓数据库迁移又是哪种迁移? > - 更换数据库( mysql -> pg )? > - 还是单纯挪个窝? |
30
qiaoqiao881100 OP @SURA907 最终目的是替换 c#这套东西,用 go 重构,所以想先把业务上的 sql server 数据库迁移到 mysql, 然后再把我负责的业务用 go 重构 解耦。
|
31
qiaoqiao881100 OP @SURA907 现在我才发现我是不懂后端被 cto 忽悠了。cto 可能也想找个垫背的
|
32
qiaoqiao881100 OP @SURA907 确实你这几个问题真是灵魂拷问, 现在只是现有系统某些业务性能不好 , 现有系统很多做法很龊,所以重构,但是还在跑。迁移数据库是 sql server 到 mysql
|
33
ntdll 4h 20m ago 任何公司
任何项目 任何理由 重构 = 自杀 |
34
SURA907 4h 15m ago
@qiaoqiao881100 这种重构巨危险,而且工期以年为单位,除非到了不彻底重构就会爆炸的程度,否则不建议碰
我之前有彻底重写过一个很边缘的小服务,没有碰数据库,即使如此也花了半年多 这个服务经过几手,被改的乱七八糟,经常搞出来脏数据,频繁去生产数据库清理脏数据不是什么好事,拖了很久拖不下去了,与其缝缝补补不如彻底重写 PS:这种细活不要太相信 AI |
35
yuyoung 4h 2m ago
前端重构都容易炸飞,涉及到数据就更容易炸飞了,而且炸飞的后果更大,重构需要的不止是勇气,还要有理由,大多数重构也没法创造可观的 KPI 。
|
36
nolynfeng 3h 52m ago
真是胆子大,不仅是数据库想迁移,代码也要一起改,我只能说牛,佩服佩服
|
37
Akuikkk 3h 47m ago
重构过多个项目,我的经验是必炸。
你应该做好向上管理,明确告诉老板风险很大。真炸了你也打好预防针了。 |
38
loading 3h 44m ago
> 这个 cto 每次问他问题都说让我掌控这个项目,说什么对我技术能力认可的,我 tm 才刚入职 2 月而已。
这是 PUA 话术,op 没感觉出来? |
39
zdjohn001 3h 44m ago
做前端的搞数据库重构,感觉有点离谱,数据库里面道道还挺多的,迁移数据不少坑要填,一旦有问题可能很难恢复
|
40
cando 3h 44m ago
|
41
tommyshelbyV2 3h 35m ago
绝对不要迁移,老的就不要动,直接双写到新数据库。缓慢的过渡业务。
|
43
qiaoqiao881100 OP @loading 我肯定感觉出来了啊,都说 2,3 遍了,就是 pua 我呗,没办法,刚入职,又不好找工作。
|
44
Ayanokouji 3h 32m ago
我自己写的,我熟悉业务的,我都不敢随便重构。虽然我有更好的设计,但是生产上依旧是缝缝补补。
|
45
longaiwp 3h 32m ago
看了看,还要搞什么 Go ,不要看到什么都想搞点新的技术栈进来。
|
46
qiaoqiao881100 OP @longaiwp 哈哈哈是的, 现在项目是.net5 的 abp
|
47
qiaoqiao881100 OP @yuyoung 这个老板不懂技术,估计是被这个 CTO 忽悠了可以搞重构优化性能, 又知道 go 的性能好。然后他可能有承诺了老板重构,没办法只能向下施压向上管理了
|
48
superrichman 3h 29m ago
这 CTO 真会画饼
|
49
qiaoqiao881100 OP @Ayanokouji 看起来就是个火坑
|
50
minibear2021 3h 21m ago
token 管够,我能给你重构一个核电站出来。
|
51
jackwang123 3h 19m ago
重构,迁移这种活,搞好了没有增加收益,一不小心干砸了,你就得背锅。而且很容易出岔子。这就是典型的脏活累活
|
52
rxswift 3h 17m ago
用 go 重构业务,不动数据库,是不是就容易了?
|
53
qiaoqiao881100 OP @minibear2021 token 确实管够,100 刀的 codex 开着,现在主要是我没啥思路, 现在主要都是参照 AI 一步一步来的。也不知道哪里会出岔子
|
54
shannn 3h 8m ago
招你来背锅,你一个新来的也不了解业务,测试要是不全面就无了
|
55
wu00 3h 6m ago
干!
事教人,一次就会 |
56
Akuikkk 3h 1m ago
@qiaoqiao881100 我还以为是 framework 。.net 5 abp 我感觉问题不大啊,技术上没有迁移的必要啊,无论是可维护性还是性能上。 不是说 go 就一定比 c#性能好的。
|
57
xiaomushen 3h 0m ago
没关系,有 AI ,很好搞定的
|
58
qiaoqiao881100 OP @xiaomushen 到你这里就很 easy 了?
|
59
TypeErrorNone 2h 36m ago
前端仔还是没经验
|
60
webfamer 2h 31m ago
你这和我发帖询问能不能去的那个工作有的一拼😅
|
61
newtype0092 2h 6m ago
有资深的 DBA 看着问题不大,但是复杂数据出问题难免的,运气好的话有时间慢慢修复还好,运气不好可能得连着好几个通宵。
我说的前提是对整个技术架构和业务流程完全熟悉的人都在场指挥的情况下,业务没完全搞透上来就动手基本就是个炸。 |
62
AutumnVerse 2h 4m ago
@qiaoqiao881100 100 刀刀 codex 就敢说管够了?太小看上下文爆炸后的 token 消耗了吧
1 、你都不懂后端,没深入的经验,这种重构,没个十年八年的屎山开发经验,这你敢动手? 2 、sql server 迁移 mysql 不是脑子有包吗,sql server 迁移 pg 都能说得通,迁移 mysql 不是负优化吗? 3 、c#+sql server 这个技术栈没有任何问题,抛开不好招人的问题,go+mysql 还不如前者 4 、mysql 的 sql 语句有很多方言,不是标准 sql ,迁移成本远大于重写 综上所述,必炸,就算顶着 n 次故障,弄完上线了,也没任何收益啊,系统垃圾是代码问题,不是 c#+sql server 的问题,这一套架构没有任何问题。 顺带一提,你们都用 c#+sql server 这一套了,直接打电话给微软呗,只要钱给够,微软的服务绝对包你满意,上门服务,各种性能问题给你查得明明白白,怎么迁移怎么升级,都给你安排的舒舒服服的 |
63
micolore 2h 2m ago
有过几次迁移的经验,只要给够时间,想怎么迁移都行。
|
64
liuliuliuliu PRO 不是,别的先不说
数据库能不选 mysql 就不要 mysql 啊,所有数据库里最差的就是 mysql 了,排除 access 和 sqlite…… |
65
memos 1h 53m ago
巨坑,现在公司就在做信创的改造,oracle 迁移到国产数据库,不仅数据库迁移,整体项目都重构,准备跑路了已经,幸亏在试用期
|
66
lujiaosama 1h 47m ago
重构最大的成本是测试验证。再烂的代码只要能在生产环境稳定跑起来那就是经过检验的合格的。业务陪你这么一通折腾有收益吗?仅仅是为了代码看起来漂亮?
|
67
AIIsHallucFree 1h 27m ago
你没说清楚是哪种类型的迁移啊,是从 mysql 数据库迁移到其它关系数据库吗?
|
68
slowgen PRO 从 CTO 角度来说难度可能不大,比如用绞杀者模式逐步替换 API ,结合流量镜像方案把生产流量同时导入测试环境的新老系统看数据对比来验证防止翻车等,手段很多。
如果是从培养你角度让你直接参考 https://typescript-is-like-csharp.chrlschn.dev/pages/intro-and-motivation.html 这种方便 TypeScript 熟练工快速学习 C# 的文档两天就能上手读懂项目,渐进式重构问题也不大。 但是选择的方案这么激进,对你来说难度就很大了,起码出一个风险应对方案来,除非业务规模很小,项目也不大。 同样是选择 AI 方案,还不如先让 AI 把当前系统优化好。 |
69
itechify PRO 重构个鸡毛啊,又不是不能跑😆
|
70
Plating 37 mins ago
刚毕业到国企的时候,一个内部商密系统重构,出了两次事故,最后分部研发领导和一半研发被干掉了
|
71
xubeiyou 34 mins ago
看重构可以带来什么
|
72
Paii 31 mins ago
一般来说非常大,而且实际迁移进度可能跟规划排期有很大出入
|
73
nuII 30 mins ago
如果是项目负责人、技术负责人牵头的,也就是有人背锅的,那就干。否则,千万别干。
|
74
PopRain 14 mins ago
sql server 的系统,迁移到 my sql ???? 一个查询估计就把系统干趴下了,my sql 复杂查询太烂太烂
|
75
night98 12 mins ago
我是后端佬,还算经验比较足的,你这个锅我都不敢接,这种重构就跟楼上说的一样都是以年起的,最佳的方案实际上是老的系统不管,新需求在新架构上开发,需要老系统的再迁移对应功能到新系统慢慢蚂蚁搬家。
|