背景:1k 人左右的外包公司内部系统:erp 、hrm 、项目管理系统 开发的时候没做什么架构设计
erp 是基于网上的开源框架 jeesite,经过刚毕业的缺经验的 3 、4 波人改了,写代码充斥着 copy,堆业务完全没有顶层设计,几个子系统也是并行开发的
后面强行整合 比如离职状态需要各个系统晚上同步、出报表时从各个系统抽数据、后面要命的开始在方法层面整合:也没搞分布式事务、也没有统一的调用规范、http 接口、直连数据库、触发求、定时任务...
各个系统都是单节点,经常不说一声就重启或挂掉
请问如何保证数据一致性?暂时想到的方法
1.需要事务 方法级的业务耦合:好像只能引入分布式事务、成本太高、打算留给后人解决了
2.无需事务 比如填了加班日志、自动往加班申请模块插入数据 这种就反复重试比如 guava retryer 但重试任务还得持久化又是一问题
ps:组里开发 3 人,都是做的小项目、组长是毕业编码 2 年就转管理岗的,项目经验就是老掉牙的这个项目,改框架、定标准基本没戏,而且所谓也不敢动 代码不可考
这种工作是不是得跑了,3 年没任何成长,工资也低
1
saulshao 2021-02-19 11:50:24 +08:00
这种情况还是尽快撤退吧。
|
2
devld 2021-02-19 12:00:35 +08:00 via Android
和我们好像,也是做内部系统的。所有系统给我的感觉就是,能用就行。
|
3
swulling 2021-02-19 12:04:49 +08:00
先提高可用性,再说什么一致性之类的事情。
服务可用性是简单最有效提高幸福度的事情了 |
4
bthulu 2021-02-19 12:12:44 +08:00
看你们是能用就行, 还是愿意花大力气来一点一点的重构
|
7
carity 2021-02-19 14:42:17 +08:00
得重构才能彻底解决问题,我司初期项目也是这样,花了一年,全公司主要项目都重构了一遍,不过我司开发团队有上百人
|
8
dengji85 OP @carity 哈哈,你这是财大气粗的公司 我们开发人员也有几百,随便组个的项目组都不至于这样,内部系统不打算投钱而已
|
9
Joker123456789 2021-02-19 16:40:28 +08:00
你如果是决策者,那你可以这么干: 现在的这套系统先让他跑着,让别人有东西用。
然后另起一条线,重新开发一个,好好设计。等开发完了,就把老的替换掉。 如果感觉重新开发成本太高,那你可以采用渐进式,一个模块一个模块的重新改写,慢慢升级。 如果你是不决策者,你可以向上级反映,如果上级执意要这样耗着,那你可以跑路了,赶紧换一家吧。 |
11
swulling 2021-02-20 09:02:17 +08:00
|
12
dany813 2021-02-20 11:46:01 +08:00
小公司不就是这样吗
|
13
SkyLine7 2021-02-22 10:38:16 +08:00
太真实了 小公司能用就行
|